diff --git a/web/eslint.config.ts b/web/eslint.config.ts
index 1869046a..4ce4da23 100644
--- a/web/eslint.config.ts
+++ b/web/eslint.config.ts
@@ -20,9 +20,6 @@ export default defineConfigWithVueTs(
"vue/valid-v-slot": ["error", { allowModifiers: true }],
// `any` is used everywhere and will be difficult to eliminate
"@typescript-eslint/no-explicit-any": "off",
- // Temporary ignores until rules can be fixed
- "vue/require-v-for-key": "off",
- "vue/valid-v-for": "off",
},
},
skipFormatting,
diff --git a/web/src/components/ControlsBar.vue b/web/src/components/ControlsBar.vue
index 8c7d3615..6562e5ca 100644
--- a/web/src/components/ControlsBar.vue
+++ b/web/src/components/ControlsBar.vue
@@ -570,7 +570,9 @@ watch(newBasemapStyleJSON, debounce(createNewBasemapPreview, 1000));
-
Error: {{ err.message }}
+
+ Error: {{ err.message }}
+
Map Preview:
-
+
{{ layer.name }}
@@ -211,6 +216,7 @@ function submitDelete() {
diff --git a/web/src/components/projects/DatasetUpload.vue b/web/src/components/projects/DatasetUpload.vue
index 30f63fc0..8a76e326 100644
--- a/web/src/components/projects/DatasetUpload.vue
+++ b/web/src/components/projects/DatasetUpload.vue
@@ -224,6 +224,7 @@ watch(open, () => {
Similar Existing Datasets:
{{ dataset.name }}
diff --git a/web/src/components/projects/ProjectConfig.vue b/web/src/components/projects/ProjectConfig.vue
index b1f3e92a..0e0e64f0 100644
--- a/web/src/components/projects/ProjectConfig.vue
+++ b/web/src/components/projects/ProjectConfig.vue
@@ -387,6 +387,7 @@ watch(
selectProject(project)"
diff --git a/web/src/components/sidebars/ColormapEditor.vue b/web/src/components/sidebars/ColormapEditor.vue
index 17037b75..a0b6eb06 100644
--- a/web/src/components/sidebars/ColormapEditor.vue
+++ b/web/src/components/sidebars/ColormapEditor.vue
@@ -277,7 +277,11 @@ onMounted(init);
-
+
-
+
c.name === currentGroups['color'],
)"
+ :key="group.name"
>
| Band |
@@ -1171,6 +1172,7 @@ onMounted(resetCurrentStyle);
v-for="group in currentStyleSpec.colors.filter(
(c) => c.name === currentGroups['color'],
)"
+ :key="group.name"
>
| Feature Type |
@@ -1639,6 +1641,7 @@ onMounted(resetCurrentStyle);
v-for="group in currentStyleSpec.sizes.filter(
(c) => c.name === currentGroups['size'],
)"
+ :key="group.name"
>
| Size Choice |
diff --git a/web/src/components/sidebars/LayersPanel.vue b/web/src/components/sidebars/LayersPanel.vue
index 21beae4e..0cc88d5c 100644
--- a/web/src/components/sidebars/LayersPanel.vue
+++ b/web/src/components/sidebars/LayersPanel.vue
@@ -231,6 +231,7 @@ function setLayerActive(layer: Layer, active: boolean) {
/>
Frame: {{ frame.name }}
diff --git a/web/src/components/sidebars/LegendPanel.vue b/web/src/components/sidebars/LegendPanel.vue
index 712eeb36..aac655c7 100644
--- a/web/src/components/sidebars/LegendPanel.vue
+++ b/web/src/components/sidebars/LegendPanel.vue
@@ -131,6 +131,7 @@ function getColorPropsCoverage(layer: Layer) {
{{ layer.name }}
@@ -171,7 +172,10 @@ function getColorPropsCoverage(layer: Layer) {
/>
-
+
p.closeable,
)"
+ :key="item.id"
@click="togglePanelVisibility(item.id)"
>