diff --git a/public/locales/de/translations.json b/public/locales/de/translations.json index a3a58ba0..be776768 100644 --- a/public/locales/de/translations.json +++ b/public/locales/de/translations.json @@ -1029,6 +1029,7 @@ "refugeeNumber": "Geflüchtetennummer", "refugeeName": "Name des Geflüchteten", "languageToTranslate": "Zu übersetzende Sprache", + "refugeeLanguage": "Flüchtlingssprache", "cancel": "Abbrechen", "saveChanges": "Änderungen speichern", "saveSuccess": "Begleitdetails erfolgreich aktualisiert", diff --git a/public/locales/en/translations.json b/public/locales/en/translations.json index 01a4133d..6840f397 100644 --- a/public/locales/en/translations.json +++ b/public/locales/en/translations.json @@ -1028,6 +1028,7 @@ "refugeeNumber": "Refugee number", "refugeeName": "Refugee name", "languageToTranslate": "Language to translate", + "refugeeLanguage": "Refugee language", "cancel": "Cancel", "saveChanges": "Save changes", "saveSuccess": "Accompanying details updated successfully", diff --git a/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetails.tsx b/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetails.tsx index a565978b..31f08bb0 100644 --- a/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetails.tsx +++ b/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetails.tsx @@ -77,7 +77,7 @@ export const AccompanyingDetails = forwardRef(functio appointmentTime: values.appointmentTime || undefined, refugeeNumber: values.refugeeNumber, refugeeName: values.refugeeName, - languagesToTranslate: values.languageToTranslate ? [values.languageToTranslate] : [], + languagesToTranslate: values.languagesToTranslate ?? [], }, }, { @@ -104,7 +104,7 @@ export const AccompanyingDetails = forwardRef(functio ); } - const languageLabel = keyToLabel[formValues.languageToTranslate || ""] || formValues.languageToTranslate || ""; + const languageLabel = (formValues.languagesToTranslate ?? []).map((id) => keyToLabel[id] || id).join(", "); return ( diff --git a/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetailsDisplay.tsx b/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetailsDisplay.tsx index 64e9d9fd..b33ad8e7 100644 --- a/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetailsDisplay.tsx +++ b/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetailsDisplay.tsx @@ -51,11 +51,10 @@ export const AccompanyingDetailsDisplay = ({ values, languageLabel }: Props) => {}} - options={[]} /> ); diff --git a/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetailsEdit.tsx b/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetailsEdit.tsx index bcff065b..58ece7c7 100644 --- a/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetailsEdit.tsx +++ b/src/components/Dashboard/Profile/sections/AccompanyingDetails/AccompanyingDetailsEdit.tsx @@ -98,9 +98,7 @@ export const AccompanyingDetailsEdit = ({ /> {errors.appointmentTime && ( - {t( - `dashboard.opportunityProfile.accompanyingDetails.validation.${errors.appointmentTime.message}`, - )} + {t(`dashboard.opportunityProfile.accompanyingDetails.validation.${errors.appointmentTime.message}`)} )} @@ -139,20 +137,24 @@ export const AccompanyingDetailsEdit = ({ /> }) => ( + render={({ + field, + }: { + field: ControllerRenderProps; + }) => ( keyToLabel[id] || id)} setValue={(value) => { - const label = Array.isArray(value) ? value[0] : value; - field.onChange(labelToKey[label] || label); + const labels = Array.isArray(value) ? value : [value]; + field.onChange(labels.map((label) => labelToKey[label] || label)); }} options={languageOptions} - errorMessage={errors.languageToTranslate?.message} + errorMessage={errors.languagesToTranslate?.message} /> )} /> diff --git a/src/components/Dashboard/Profile/sections/AccompanyingDetails/accompanyingDetailsSchema.ts b/src/components/Dashboard/Profile/sections/AccompanyingDetails/accompanyingDetailsSchema.ts index f36c634c..656dd465 100644 --- a/src/components/Dashboard/Profile/sections/AccompanyingDetails/accompanyingDetailsSchema.ts +++ b/src/components/Dashboard/Profile/sections/AccompanyingDetails/accompanyingDetailsSchema.ts @@ -13,7 +13,7 @@ export const accompanyingDetailsSchema = z.object({ }), refugeeNumber: z.string().optional(), refugeeName: z.string().optional(), - languageToTranslate: z.string().optional(), + languagesToTranslate: z.array(z.string()).optional(), }); export type AccompanyingDetailsFormData = z.infer; diff --git a/src/components/Dashboard/Profile/sections/AccompanyingDetails/helpers.ts b/src/components/Dashboard/Profile/sections/AccompanyingDetails/helpers.ts index 26c76c85..cdd652db 100644 --- a/src/components/Dashboard/Profile/sections/AccompanyingDetails/helpers.ts +++ b/src/components/Dashboard/Profile/sections/AccompanyingDetails/helpers.ts @@ -42,5 +42,5 @@ export const getInitialFormValues = ( appointmentTime: parseTime(details?.appointmentTime), refugeeNumber: details?.refugeeNumber || "", refugeeName: details?.refugeeName || "", - languageToTranslate: details?.languageToTranslate?.toString() ?? "", + languagesToTranslate: details?.languageToTranslate !== undefined ? [details.languageToTranslate.toString()] : [], });