diff --git a/src/components/Common/RoleOrgSelector.tsx b/src/components/Common/RoleOrgSelector.tsx index 87e829069a0..db4903de654 100644 --- a/src/components/Common/RoleOrgSelector.tsx +++ b/src/components/Common/RoleOrgSelector.tsx @@ -44,7 +44,7 @@ export default function RoleOrgSelector(props: RoleOrgSelectorProps) { const [selectedOrganizations, setSelectedOrganizations] = useState< Organization[] - >([]); + >(currentOrganizations || []); const [currentSelection, setCurrentSelection] = useState( null, ); diff --git a/src/pages/Admin/TagConfig/TagConfigForm.tsx b/src/pages/Admin/TagConfig/TagConfigForm.tsx index 28e2e6b2153..1e3c19a96d9 100644 --- a/src/pages/Admin/TagConfig/TagConfigForm.tsx +++ b/src/pages/Admin/TagConfig/TagConfigForm.tsx @@ -74,8 +74,8 @@ export default function TagConfigForm({ resource: z.nativeEnum(TagResource, { required_error: t("field_required"), }), - facility_organization: z.string().optional(), - organization: z.string().optional(), + facility_organization: z.string().nullable(), + organization: z.string().nullable(), }); type TagConfigFormValues = z.infer; @@ -99,8 +99,8 @@ export default function TagConfigForm({ priority: parentTag?.priority || 100, status: TagStatus.ACTIVE, resource: parentTag?.resource || TagResource.PATIENT, - facility_organization: undefined, - organization: undefined, + facility_organization: null, + organization: null, }, }); @@ -124,8 +124,8 @@ export default function TagConfigForm({ priority: existingConfig.priority, status: existingConfig.status, resource: existingConfig.resource, - facility_organization: existingConfig.facility_organization?.id, - organization: existingConfig.organization?.id, + facility_organization: existingConfig.facility_organization?.id ?? null, + organization: existingConfig.organization?.id ?? null, }); } }, [existingConfig, isEditing, form]); @@ -140,8 +140,8 @@ export default function TagConfigForm({ priority: parentTag.priority, status: TagStatus.ACTIVE, resource: parentTag.resource, - facility_organization: undefined, - organization: undefined, + facility_organization: null, + organization: null, }); } }, [parentTag, isCreatingChild, form]); @@ -184,12 +184,8 @@ export default function TagConfigForm({ resource: data.resource, ...(parentId && { parent: parentId }), ...(facilityId && { facility: facilityId }), - ...(data.facility_organization && { - facility_organization: data.facility_organization, - }), - ...(data.organization && { - organization: data.organization, - }), + facility_organization: data.facility_organization, + organization: data.organization, }; if (isEditing) { diff --git a/src/pages/Admin/TagConfig/TagConfigView.tsx b/src/pages/Admin/TagConfig/TagConfigView.tsx index 0ee4889443e..f436be6eb92 100644 --- a/src/pages/Admin/TagConfig/TagConfigView.tsx +++ b/src/pages/Admin/TagConfig/TagConfigView.tsx @@ -81,6 +81,8 @@ export default function TagConfigView({ priority: childData.priority, status: TagStatus.ARCHIVED, resource: childData.resource, + facility_organization: childData.facility_organization?.id ?? null, + organization: childData.organization?.id ?? null, parent: childData.parent && typeof childData.parent === "object" && diff --git a/src/pages/Facility/settings/organizations/components/FacilityOrganizationSelector.tsx b/src/pages/Facility/settings/organizations/components/FacilityOrganizationSelector.tsx index 650e9f4ac60..ceba0cbee97 100644 --- a/src/pages/Facility/settings/organizations/components/FacilityOrganizationSelector.tsx +++ b/src/pages/Facility/settings/organizations/components/FacilityOrganizationSelector.tsx @@ -187,7 +187,7 @@ export default function FacilityOrganizationSelector( const handleConfirmSelection = useCallback( (org: FacilityOrganizationRead) => { - if (!selectedOrganizations.includes(org)) { + if (!selectedOrganizations.find((o) => o.id === org.id)) { const newSelection = singleSelection ? [org] : [...selectedOrganizations, org]; @@ -302,7 +302,7 @@ export default function FacilityOrganizationSelector( // Reset the auto-select flag when value is cleared (e.g., form reset) // setHasAutoSelectedPreferred(false); } - }, [value, currentOrganizations, showAllOrgs]); + }, [value, currentOrganizations]); // Auto-select preferred departments useEffect(() => { diff --git a/src/types/emr/tagConfig/tagConfig.ts b/src/types/emr/tagConfig/tagConfig.ts index aa9c5f489c2..f2ec82c1bbc 100644 --- a/src/types/emr/tagConfig/tagConfig.ts +++ b/src/types/emr/tagConfig/tagConfig.ts @@ -75,9 +75,9 @@ export interface TagConfigRequest { status: TagStatus; parent?: string | null; resource: TagResource; - organization?: string; + organization: string | null; facility?: string; - facility_organization?: string; + facility_organization: string | null; } export function getTagHierarchyDisplay(