diff --git a/ui/src/components/filtering/utils.ts b/ui/src/components/filtering/utils.ts index 82ce2f9a3..c22942cec 100644 --- a/ui/src/components/filtering/utils.ts +++ b/ui/src/components/filtering/utils.ts @@ -13,7 +13,7 @@ export const stringToBoolean = (string?: string) => { } export const booleanToString = (value?: boolean) => - value !== undefined ? `${value}` : '' + value !== undefined && value !== null ? `${value}` : '' // Help function to decide if a filter section should be open or not on page load export const someActive = ( diff --git a/ui/src/data-services/hooks/deployments/utils.ts b/ui/src/data-services/hooks/deployments/utils.ts index 8fd9c7d36..5c19b59a0 100644 --- a/ui/src/data-services/hooks/deployments/utils.ts +++ b/ui/src/data-services/hooks/deployments/utils.ts @@ -15,7 +15,8 @@ export const convertToFormData = (fieldValues: DeploymentFieldValues) => { research_site_id: fieldValues.siteId, }).forEach(([key, value]) => { if (value !== undefined) { - data.append(key, `${value}`) + // Convert null to empty string to signal "clear this field" (matches image field pattern) + data.append(key, value === null ? '' : `${value}`) } }) diff --git a/ui/src/data-services/models/deployment-details.ts b/ui/src/data-services/models/deployment-details.ts index 85fd75770..8137c8562 100644 --- a/ui/src/data-services/models/deployment-details.ts +++ b/ui/src/data-services/models/deployment-details.ts @@ -11,8 +11,8 @@ export type ServerNestedCapture = { export interface DeploymentFieldValues { dataSourceId?: string - dataSourceSubdir?: string - dataSourceRegex?: string + dataSourceSubdir?: string | null + dataSourceRegex?: string | null description: string deviceId?: string name: string @@ -68,11 +68,11 @@ export class DeploymentDetails extends Deployment { } } - get dataSourceSubdir(): string { + get dataSourceSubdir(): string | null { return this._deployment.data_source_subdir } - get dataSourceRegex(): string { + get dataSourceRegex(): string | null { return this._deployment.data_source_regex } diff --git a/ui/src/pages/deployment-details/deployment-details-form/section-source-images/section-source-images.tsx b/ui/src/pages/deployment-details/deployment-details-form/section-source-images/section-source-images.tsx index 2d6c17bf0..1b6d8763b 100644 --- a/ui/src/pages/deployment-details/deployment-details-form/section-source-images/section-source-images.tsx +++ b/ui/src/pages/deployment-details/deployment-details-form/section-source-images/section-source-images.tsx @@ -91,7 +91,7 @@ export const SectionSourceImages = ({ diff --git a/ui/src/utils/getAppRoute.ts b/ui/src/utils/getAppRoute.ts index 2bb12d398..db9ee534e 100644 --- a/ui/src/utils/getAppRoute.ts +++ b/ui/src/utils/getAppRoute.ts @@ -26,7 +26,7 @@ export const getAppRoute = ({ keepSearchParams ? window.location.search : undefined ) Object.entries(filters).forEach(([name, value]) => { - if (value !== undefined) { + if (value !== undefined && value !== null) { searchParams.set(name, value) } })