diff --git a/.changeset/calm-walls-wave.md b/.changeset/calm-walls-wave.md new file mode 100644 index 000000000..c46d8875f --- /dev/null +++ b/.changeset/calm-walls-wave.md @@ -0,0 +1,5 @@ +--- +'@getodk/web-forms': patch +--- + +Fixes load submission data in maps diff --git a/packages/web-forms/src/components/common/map/AsyncMap.vue b/packages/web-forms/src/components/common/map/AsyncMap.vue index bcec021d1..74344d7d6 100644 --- a/packages/web-forms/src/components/common/map/AsyncMap.vue +++ b/packages/web-forms/src/components/common/map/AsyncMap.vue @@ -25,7 +25,7 @@ interface AsyncMapProps { disabled: boolean; singleFeatureType?: SingleFeatureType; mode: Mode; - savedFeatureValue: string | undefined; + savedFeatureValue: SelectItem | string | undefined; } const props = defineProps(); diff --git a/packages/web-forms/src/components/common/map/geojson-parsers.ts b/packages/web-forms/src/components/common/map/geojson-parsers.ts index 757dd2c1c..88fd1f760 100644 --- a/packages/web-forms/src/components/common/map/geojson-parsers.ts +++ b/packages/web-forms/src/components/common/map/geojson-parsers.ts @@ -124,7 +124,7 @@ const normalizeODKFeature = (odkFeature: SelectItem | string) => { }; export const createFeatureCollectionAndProps = ( - odkFeatures: readonly SelectItem[] | readonly string[] | undefined + odkFeatures: ReadonlyArray | undefined ) => { const orderedExtraPropsMap = new Map>(); const features: Feature[] = []; diff --git a/packages/web-forms/src/components/form-elements/select/Select1Control.vue b/packages/web-forms/src/components/form-elements/select/Select1Control.vue index 185d4871b..71f1d5669 100644 --- a/packages/web-forms/src/components/form-elements/select/Select1Control.vue +++ b/packages/web-forms/src/components/form-elements/select/Select1Control.vue @@ -24,9 +24,9 @@ const savedFeatureValue = computed(() => { if (!props.question.appearances.map) { return ''; } + const value = props.question.currentState.value?.[0]; - const item = props.question.currentState.valueOptions.find((option) => option.value === value); - return item?.properties.find(([key = '']) => key === 'geometry')?.[1] ?? ''; + return props.question.currentState.valueOptions.find((option) => option.value === value); }); watchEffect(() => {