diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 1bc73e8..1b0deab 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -409,7 +409,7 @@ const LocaleRoute: FC = () => { void i18n.changeLanguage (activeLocale) }, [activeLocale, i18n]) - const redirect = legacyLocalePath (location) + const redirect = legacyLocalePath (location, pathname => resolvePageRoute (pathname) != null) if (!(isLocaleCode (locale)) && redirect == null) return if (isError && data == null) diff --git a/frontend/src/components/counts/CountsAdditionalConditions.tsx b/frontend/src/components/counts/CountsAdditionalConditions.tsx index 61f2487..9f58347 100644 --- a/frontend/src/components/counts/CountsAdditionalConditions.tsx +++ b/frontend/src/components/counts/CountsAdditionalConditions.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react' +import { useEffect, useState } from 'react' import DateTimeField from '@/components/common/DateTimeField' import { Button } from '@/components/ui/button' @@ -9,18 +9,25 @@ import useDialogue from '@/lib/dialogues/useDialogue' import { inputClass } from '@/lib/utils' import { useUITranslation } from '@/lib/useUITranslation' +import type { DialogueFormControls } from '@/lib/dialogues/useDialogue' import type { CountsCondition, CountsDefinition } from '@/lib/countsDefinitions' -const ConditionEditor = ({ definition, initial, save }: { - definition: CountsDefinition; initial?: CountsCondition - save: (condition: CountsCondition) => void }, +const ConditionEditor = ( + { definition, initial, controls, save }: { + definition: CountsDefinition; initial?: CountsCondition + controls: DialogueFormControls + save: (condition: CountsCondition) => void }, ) => { const { label, message } = useUITranslation ('counts') const fields = countsFilterFields (definition) const [field, setField] = useState (initial?.field ?? 'resource_id') const [operator, setOperator] = useState (initial?.operator ?? 'eq') const operators = definition.fields.find (item => item.key === field)?.operators ?? [] + useEffect (() => { + controls.setActions ([{ label: label (initial == null ? 'add' : 'shared:actions.edit'), + onSelect: () => save ({ ...initial, field, operator }) }]) + }, [controls, field, operator, initial, label, save]) return