Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,11 @@ export function GeocodingConfigFields({
}
};

// Include previous options that are no longer in the data source column defs, so they can be removed
const allOptions = Array.from(
new Set(locationColumnOptions.map((c) => c.label).concat(columns)),
);

return (
<>
<CustomSelect
Expand All @@ -114,7 +119,7 @@ export function GeocodingConfigFields({
<CustomMultiSelect
id="config-location-columns-multi"
label="Location columns"
allOptions={dataSource?.columnDefs.map((cd) => cd.name)}
allOptions={allOptions}
selectedOptions={columns}
onChange={onDropdownChange}
/>
Expand Down
9 changes: 5 additions & 4 deletions src/server/mapping/geocode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -191,10 +191,11 @@ const geocodeRecordByAddress = async (
) => {
const dataRecordJson = dataRecord.json;
const { columns: addressColumns } = geocodingConfig;
for (const addressColumn of addressColumns) {
if (!(addressColumn in dataRecordJson)) {
throw new Error(`Missing area column "${addressColumn}" in row`);
}
const hasColumn = addressColumns.some((c) => c in dataRecordJson);
if (!hasColumn) {
throw new Error(
`Missing address columns "${addressColumns.join(", ")}" in row`,
);
}

// TODO: remove UK when other countries are supported
Expand Down