@strapi/i18n 5.23.3 → 5.23.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -103,7 +103,7 @@ const CreateModal = ({ onClose })=>{
103
103
  type: 'success',
104
104
  message: formatMessage({
105
105
  id: getTranslation.getTranslation('Settings.locales.modal.create.success'),
106
- defaultMessage: 'Created locale'
106
+ defaultMessage: 'Locale successfully added'
107
107
  })
108
108
  });
109
109
  refetchPermissions();
@@ -1 +1 @@
1
- {"version":3,"file":"CreateLocale.js","sources":["../../../admin/src/components/CreateLocale.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Form,\n type InputProps,\n InputRenderer,\n useField,\n type FormHelpers,\n useForm,\n useAPIErrorHandler,\n useNotification,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n ButtonProps,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\n SingleSelect,\n SingleSelectOption,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Check, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { CreateLocale } from '../../../shared/contracts/locales';\nimport { useCreateLocaleMutation, useGetDefaultLocalesQuery } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\n/* -------------------------------------------------------------------------------------------------\n * CreateLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateLocaleProps extends Pick<ButtonProps, 'disabled' | 'variant'> {}\n\nconst CreateLocale = ({ disabled, variant = 'default' }: CreateLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <Modal.Root open={visible} onOpenChange={setVisible}>\n <Modal.Trigger>\n <Button\n variant={variant}\n disabled={disabled}\n startIcon={<Plus />}\n onClick={() => setVisible(true)}\n size=\"S\"\n >\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Button>\n </Modal.Trigger>\n <CreateModal onClose={() => setVisible(false)} />\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst LOCALE_SCHEMA = yup.object().shape({\n code: yup.string().nullable().required({\n id: 'Settings.locales.modal.create.code.error',\n defaultMessage: 'Please select a locale',\n }),\n name: yup\n .string()\n .nullable()\n .max(50, {\n id: 'Settings.locales.modal.create.name.error.min',\n defaultMessage: 'The locale display name can only be less than 50 characters.',\n })\n .required({\n id: 'Settings.locales.modal.create.name.error.required',\n defaultMessage: 'Please give the locale a display name',\n }),\n isDefault: yup.boolean(),\n});\n\ntype FormValues = CreateLocale.Request['body'];\n\nconst initialFormValues = {\n code: '',\n name: '',\n isDefault: false,\n} satisfies FormValues;\n\ntype ModalCreateProps = {\n onClose: () => void;\n};\n\nconst CreateModal = ({ onClose }: ModalCreateProps) => {\n const titleId = useId();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [createLocale] = useCreateLocaleMutation();\n const { formatMessage } = useIntl();\n const refetchPermissions = useAuth('CreateModal', (state) => state.refetchPermissions);\n\n const handleSubmit = async (values: FormValues, helpers: FormHelpers<FormValues>) => {\n try {\n const res = await createLocale(values);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.create.success'),\n defaultMessage: 'Created locale',\n }),\n });\n\n refetchPermissions();\n onClose();\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Content>\n <Form\n method=\"POST\"\n initialValues={initialFormValues}\n validationSchema={LOCALE_SCHEMA}\n onSubmit={handleSubmit}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n\n <Divider />\n\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubmitButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SubmitButton = () => {\n const { formatMessage } = useIntl();\n const isSubmitting = useForm('SubmitButton', (state) => state.isSubmitting);\n const modified = useForm('SubmitButton', (state) => state.modified);\n\n return (\n <Button type=\"submit\" startIcon={<Check />} disabled={isSubmitting || !modified}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BaseForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseFormProps {\n mode?: 'create' | 'edit';\n}\n\nconst BaseForm = ({ mode = 'create' }: BaseFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data: defaultLocales, error } = useGetDefaultLocalesQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (!Array.isArray(defaultLocales)) {\n return null;\n }\n\n const options = defaultLocales.map((locale) => ({\n label: locale.name,\n value: locale.code,\n }));\n\n const translatedForm = [\n {\n disabled: mode !== 'create',\n label: {\n id: getTranslation('Settings.locales.modal.create.code.label'),\n defaultMessage: 'Locales',\n },\n name: 'code',\n options,\n placeholder: {\n id: 'components.placeholder.select',\n defaultMessage: 'Select',\n },\n required: true,\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: {\n id: getTranslation('Settings.locales.modal.create.name.label.description'),\n defaultMessage: 'Locale will be displayed under that name in the administration panel',\n },\n label: {\n id: getTranslation('Settings.locales.modal.create.name.label'),\n defaultMessage: 'Locale display name',\n },\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined,\n }));\n\n return (\n <Grid.Root gap={4}>\n {translatedForm.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdvancedForm\n * -----------------------------------------------------------------------------------------------*/\n\ntype AdvancedFormProps = {\n isDefaultLocale?: boolean;\n};\n\nconst AdvancedForm = ({ isDefaultLocale }: AdvancedFormProps) => {\n const { formatMessage } = useIntl();\n\n const form = [\n {\n disabled: isDefaultLocale,\n hint: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),\n defaultMessage: 'One default locale is required, change it by selecting another one',\n },\n label: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault'),\n defaultMessage: 'Set as default locale',\n },\n name: 'isDefault',\n size: 6,\n type: 'boolean' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n })) satisfies InputProps[];\n\n return (\n <Grid.Root gap={4}>\n {form.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormRenderer = (field: InputProps) => {\n switch (field.type) {\n /**\n * This will override the default input renderer\n * choice for `enumeration`.\n */\n case 'enumeration':\n return <EnumerationInput {...field} />;\n default:\n return <InputRenderer {...field} />;\n }\n};\n\nconst EnumerationInput = ({\n disabled,\n hint,\n label,\n name,\n options,\n placeholder,\n required,\n}: Extract<InputProps, { type: 'enumeration' }>) => {\n const { value, error, onChange } = useField(name);\n const { data: defaultLocales = [] } = useGetDefaultLocalesQuery();\n\n const handleChange = (value: string) => {\n if (Array.isArray(defaultLocales)) {\n // We know it exists because the options are created from the list of default locales\n const locale = defaultLocales.find((locale) => locale.code === value)!;\n\n onChange(name, value);\n // This lets us automatically fill the name field with the locale name\n onChange('name', locale.name);\n } else {\n onChange(name, value);\n }\n };\n\n return (\n <Field.Root error={error} hint={hint} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n >\n {options.map((option) => (\n <SingleSelectOption value={option.value} key={option.value}>\n {option.label}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n"],"names":["CreateLocale","disabled","variant","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","startIcon","Plus","onClick","size","id","getTranslation","defaultMessage","CreateModal","onClose","LOCALE_SCHEMA","yup","object","shape","code","string","nullable","required","name","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","isBaseQueryError","error","setErrors","type","message","err","Content","Form","method","initialValues","validationSchema","onSubmit","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","value","Divider","Box","paddingTop","paddingBottom","BaseForm","AdvancedForm","Footer","Close","SubmitButton","isSubmitting","useForm","modified","Check","mode","data","defaultLocales","useGetDefaultLocalesQuery","useEffect","Array","isArray","options","map","locale","label","translatedForm","placeholder","hint","field","undefined","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","SingleSelect","option","SingleSelectOption","Error","Hint"],"mappings":"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"}
1
+ {"version":3,"file":"CreateLocale.js","sources":["../../../admin/src/components/CreateLocale.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Form,\n type InputProps,\n InputRenderer,\n useField,\n type FormHelpers,\n useForm,\n useAPIErrorHandler,\n useNotification,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n ButtonProps,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\n SingleSelect,\n SingleSelectOption,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Check, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { CreateLocale } from '../../../shared/contracts/locales';\nimport { useCreateLocaleMutation, useGetDefaultLocalesQuery } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\n/* -------------------------------------------------------------------------------------------------\n * CreateLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateLocaleProps extends Pick<ButtonProps, 'disabled' | 'variant'> {}\n\nconst CreateLocale = ({ disabled, variant = 'default' }: CreateLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <Modal.Root open={visible} onOpenChange={setVisible}>\n <Modal.Trigger>\n <Button\n variant={variant}\n disabled={disabled}\n startIcon={<Plus />}\n onClick={() => setVisible(true)}\n size=\"S\"\n >\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Button>\n </Modal.Trigger>\n <CreateModal onClose={() => setVisible(false)} />\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst LOCALE_SCHEMA = yup.object().shape({\n code: yup.string().nullable().required({\n id: 'Settings.locales.modal.create.code.error',\n defaultMessage: 'Please select a locale',\n }),\n name: yup\n .string()\n .nullable()\n .max(50, {\n id: 'Settings.locales.modal.create.name.error.min',\n defaultMessage: 'The locale display name can only be less than 50 characters.',\n })\n .required({\n id: 'Settings.locales.modal.create.name.error.required',\n defaultMessage: 'Please give the locale a display name',\n }),\n isDefault: yup.boolean(),\n});\n\ntype FormValues = CreateLocale.Request['body'];\n\nconst initialFormValues = {\n code: '',\n name: '',\n isDefault: false,\n} satisfies FormValues;\n\ntype ModalCreateProps = {\n onClose: () => void;\n};\n\nconst CreateModal = ({ onClose }: ModalCreateProps) => {\n const titleId = useId();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [createLocale] = useCreateLocaleMutation();\n const { formatMessage } = useIntl();\n const refetchPermissions = useAuth('CreateModal', (state) => state.refetchPermissions);\n\n const handleSubmit = async (values: FormValues, helpers: FormHelpers<FormValues>) => {\n try {\n const res = await createLocale(values);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.create.success'),\n defaultMessage: 'Locale successfully added',\n }),\n });\n\n refetchPermissions();\n onClose();\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Content>\n <Form\n method=\"POST\"\n initialValues={initialFormValues}\n validationSchema={LOCALE_SCHEMA}\n onSubmit={handleSubmit}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n\n <Divider />\n\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubmitButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SubmitButton = () => {\n const { formatMessage } = useIntl();\n const isSubmitting = useForm('SubmitButton', (state) => state.isSubmitting);\n const modified = useForm('SubmitButton', (state) => state.modified);\n\n return (\n <Button type=\"submit\" startIcon={<Check />} disabled={isSubmitting || !modified}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BaseForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseFormProps {\n mode?: 'create' | 'edit';\n}\n\nconst BaseForm = ({ mode = 'create' }: BaseFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data: defaultLocales, error } = useGetDefaultLocalesQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (!Array.isArray(defaultLocales)) {\n return null;\n }\n\n const options = defaultLocales.map((locale) => ({\n label: locale.name,\n value: locale.code,\n }));\n\n const translatedForm = [\n {\n disabled: mode !== 'create',\n label: {\n id: getTranslation('Settings.locales.modal.create.code.label'),\n defaultMessage: 'Locales',\n },\n name: 'code',\n options,\n placeholder: {\n id: 'components.placeholder.select',\n defaultMessage: 'Select',\n },\n required: true,\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: {\n id: getTranslation('Settings.locales.modal.create.name.label.description'),\n defaultMessage: 'Locale will be displayed under that name in the administration panel',\n },\n label: {\n id: getTranslation('Settings.locales.modal.create.name.label'),\n defaultMessage: 'Locale display name',\n },\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined,\n }));\n\n return (\n <Grid.Root gap={4}>\n {translatedForm.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdvancedForm\n * -----------------------------------------------------------------------------------------------*/\n\ntype AdvancedFormProps = {\n isDefaultLocale?: boolean;\n};\n\nconst AdvancedForm = ({ isDefaultLocale }: AdvancedFormProps) => {\n const { formatMessage } = useIntl();\n\n const form = [\n {\n disabled: isDefaultLocale,\n hint: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),\n defaultMessage: 'One default locale is required, change it by selecting another one',\n },\n label: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault'),\n defaultMessage: 'Set as default locale',\n },\n name: 'isDefault',\n size: 6,\n type: 'boolean' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n })) satisfies InputProps[];\n\n return (\n <Grid.Root gap={4}>\n {form.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormRenderer = (field: InputProps) => {\n switch (field.type) {\n /**\n * This will override the default input renderer\n * choice for `enumeration`.\n */\n case 'enumeration':\n return <EnumerationInput {...field} />;\n default:\n return <InputRenderer {...field} />;\n }\n};\n\nconst EnumerationInput = ({\n disabled,\n hint,\n label,\n name,\n options,\n placeholder,\n required,\n}: Extract<InputProps, { type: 'enumeration' }>) => {\n const { value, error, onChange } = useField(name);\n const { data: defaultLocales = [] } = useGetDefaultLocalesQuery();\n\n const handleChange = (value: string) => {\n if (Array.isArray(defaultLocales)) {\n // We know it exists because the options are created from the list of default locales\n const locale = defaultLocales.find((locale) => locale.code === value)!;\n\n onChange(name, value);\n // This lets us automatically fill the name field with the locale name\n onChange('name', locale.name);\n } else {\n onChange(name, value);\n }\n };\n\n return (\n <Field.Root error={error} hint={hint} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n >\n {options.map((option) => (\n <SingleSelectOption value={option.value} key={option.value}>\n {option.label}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n"],"names":["CreateLocale","disabled","variant","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","startIcon","Plus","onClick","size","id","getTranslation","defaultMessage","CreateModal","onClose","LOCALE_SCHEMA","yup","object","shape","code","string","nullable","required","name","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","isBaseQueryError","error","setErrors","type","message","err","Content","Form","method","initialValues","validationSchema","onSubmit","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","value","Divider","Box","paddingTop","paddingBottom","BaseForm","AdvancedForm","Footer","Close","SubmitButton","isSubmitting","useForm","modified","Check","mode","data","defaultLocales","useGetDefaultLocalesQuery","useEffect","Array","isArray","options","map","locale","label","translatedForm","placeholder","hint","field","undefined","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","SingleSelect","option","SingleSelectOption","Error","Hint"],"mappings":"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"}
@@ -81,7 +81,7 @@ const CreateModal = ({ onClose })=>{
81
81
  type: 'success',
82
82
  message: formatMessage({
83
83
  id: getTranslation('Settings.locales.modal.create.success'),
84
- defaultMessage: 'Created locale'
84
+ defaultMessage: 'Locale successfully added'
85
85
  })
86
86
  });
87
87
  refetchPermissions();
@@ -1 +1 @@
1
- {"version":3,"file":"CreateLocale.mjs","sources":["../../../admin/src/components/CreateLocale.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Form,\n type InputProps,\n InputRenderer,\n useField,\n type FormHelpers,\n useForm,\n useAPIErrorHandler,\n useNotification,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n ButtonProps,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\n SingleSelect,\n SingleSelectOption,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Check, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { CreateLocale } from '../../../shared/contracts/locales';\nimport { useCreateLocaleMutation, useGetDefaultLocalesQuery } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\n/* -------------------------------------------------------------------------------------------------\n * CreateLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateLocaleProps extends Pick<ButtonProps, 'disabled' | 'variant'> {}\n\nconst CreateLocale = ({ disabled, variant = 'default' }: CreateLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <Modal.Root open={visible} onOpenChange={setVisible}>\n <Modal.Trigger>\n <Button\n variant={variant}\n disabled={disabled}\n startIcon={<Plus />}\n onClick={() => setVisible(true)}\n size=\"S\"\n >\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Button>\n </Modal.Trigger>\n <CreateModal onClose={() => setVisible(false)} />\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst LOCALE_SCHEMA = yup.object().shape({\n code: yup.string().nullable().required({\n id: 'Settings.locales.modal.create.code.error',\n defaultMessage: 'Please select a locale',\n }),\n name: yup\n .string()\n .nullable()\n .max(50, {\n id: 'Settings.locales.modal.create.name.error.min',\n defaultMessage: 'The locale display name can only be less than 50 characters.',\n })\n .required({\n id: 'Settings.locales.modal.create.name.error.required',\n defaultMessage: 'Please give the locale a display name',\n }),\n isDefault: yup.boolean(),\n});\n\ntype FormValues = CreateLocale.Request['body'];\n\nconst initialFormValues = {\n code: '',\n name: '',\n isDefault: false,\n} satisfies FormValues;\n\ntype ModalCreateProps = {\n onClose: () => void;\n};\n\nconst CreateModal = ({ onClose }: ModalCreateProps) => {\n const titleId = useId();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [createLocale] = useCreateLocaleMutation();\n const { formatMessage } = useIntl();\n const refetchPermissions = useAuth('CreateModal', (state) => state.refetchPermissions);\n\n const handleSubmit = async (values: FormValues, helpers: FormHelpers<FormValues>) => {\n try {\n const res = await createLocale(values);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.create.success'),\n defaultMessage: 'Created locale',\n }),\n });\n\n refetchPermissions();\n onClose();\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Content>\n <Form\n method=\"POST\"\n initialValues={initialFormValues}\n validationSchema={LOCALE_SCHEMA}\n onSubmit={handleSubmit}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n\n <Divider />\n\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubmitButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SubmitButton = () => {\n const { formatMessage } = useIntl();\n const isSubmitting = useForm('SubmitButton', (state) => state.isSubmitting);\n const modified = useForm('SubmitButton', (state) => state.modified);\n\n return (\n <Button type=\"submit\" startIcon={<Check />} disabled={isSubmitting || !modified}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BaseForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseFormProps {\n mode?: 'create' | 'edit';\n}\n\nconst BaseForm = ({ mode = 'create' }: BaseFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data: defaultLocales, error } = useGetDefaultLocalesQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (!Array.isArray(defaultLocales)) {\n return null;\n }\n\n const options = defaultLocales.map((locale) => ({\n label: locale.name,\n value: locale.code,\n }));\n\n const translatedForm = [\n {\n disabled: mode !== 'create',\n label: {\n id: getTranslation('Settings.locales.modal.create.code.label'),\n defaultMessage: 'Locales',\n },\n name: 'code',\n options,\n placeholder: {\n id: 'components.placeholder.select',\n defaultMessage: 'Select',\n },\n required: true,\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: {\n id: getTranslation('Settings.locales.modal.create.name.label.description'),\n defaultMessage: 'Locale will be displayed under that name in the administration panel',\n },\n label: {\n id: getTranslation('Settings.locales.modal.create.name.label'),\n defaultMessage: 'Locale display name',\n },\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined,\n }));\n\n return (\n <Grid.Root gap={4}>\n {translatedForm.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdvancedForm\n * -----------------------------------------------------------------------------------------------*/\n\ntype AdvancedFormProps = {\n isDefaultLocale?: boolean;\n};\n\nconst AdvancedForm = ({ isDefaultLocale }: AdvancedFormProps) => {\n const { formatMessage } = useIntl();\n\n const form = [\n {\n disabled: isDefaultLocale,\n hint: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),\n defaultMessage: 'One default locale is required, change it by selecting another one',\n },\n label: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault'),\n defaultMessage: 'Set as default locale',\n },\n name: 'isDefault',\n size: 6,\n type: 'boolean' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n })) satisfies InputProps[];\n\n return (\n <Grid.Root gap={4}>\n {form.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormRenderer = (field: InputProps) => {\n switch (field.type) {\n /**\n * This will override the default input renderer\n * choice for `enumeration`.\n */\n case 'enumeration':\n return <EnumerationInput {...field} />;\n default:\n return <InputRenderer {...field} />;\n }\n};\n\nconst EnumerationInput = ({\n disabled,\n hint,\n label,\n name,\n options,\n placeholder,\n required,\n}: Extract<InputProps, { type: 'enumeration' }>) => {\n const { value, error, onChange } = useField(name);\n const { data: defaultLocales = [] } = useGetDefaultLocalesQuery();\n\n const handleChange = (value: string) => {\n if (Array.isArray(defaultLocales)) {\n // We know it exists because the options are created from the list of default locales\n const locale = defaultLocales.find((locale) => locale.code === value)!;\n\n onChange(name, value);\n // This lets us automatically fill the name field with the locale name\n onChange('name', locale.name);\n } else {\n onChange(name, value);\n }\n };\n\n return (\n <Field.Root error={error} hint={hint} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n >\n {options.map((option) => (\n <SingleSelectOption value={option.value} key={option.value}>\n {option.label}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n"],"names":["CreateLocale","disabled","variant","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","startIcon","Plus","onClick","size","id","getTranslation","defaultMessage","CreateModal","onClose","LOCALE_SCHEMA","yup","object","shape","code","string","nullable","required","name","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","isBaseQueryError","error","setErrors","type","message","err","Content","Form","method","initialValues","validationSchema","onSubmit","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","value","Divider","Box","paddingTop","paddingBottom","BaseForm","AdvancedForm","Footer","Close","SubmitButton","isSubmitting","useForm","modified","Check","mode","data","defaultLocales","useGetDefaultLocalesQuery","useEffect","Array","isArray","options","map","locale","label","translatedForm","placeholder","hint","field","undefined","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","SingleSelect","option","SingleSelectOption","Error","Hint"],"mappings":";;;;;;;;;;;AA2CA,MAAMA,eAAe,CAAC,EAAEC,QAAQ,EAAEC,OAAAA,GAAU,SAAS,EAAqB,GAAA;IACxE,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IAE7C,qBACEC,IAAA,CAACC,MAAMC,IAAI,EAAA;QAACC,IAAMP,EAAAA,OAAAA;QAASQ,YAAcP,EAAAA,UAAAA;;AACvC,0BAAAQ,GAAA,CAACJ,MAAMK,OAAO,EAAA;AACZ,gBAAA,QAAA,gBAAAD,GAACE,CAAAA,MAAAA,EAAAA;oBACCd,OAASA,EAAAA,OAAAA;oBACTD,QAAUA,EAAAA,QAAAA;AACVgB,oBAAAA,SAAAA,gBAAWH,GAACI,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;AACZC,oBAAAA,OAAAA,EAAS,IAAMb,UAAW,CAAA,IAAA,CAAA;oBAC1Bc,IAAK,EAAA,GAAA;8BAEJjB,aAAc,CAAA;AACbkB,wBAAAA,EAAAA,EAAIC,cAAe,CAAA,2BAAA,CAAA;wBACnBC,cAAgB,EAAA;AAClB,qBAAA;;;0BAGJT,GAACU,CAAAA,WAAAA,EAAAA;AAAYC,gBAAAA,OAAAA,EAAS,IAAMnB,UAAW,CAAA,KAAA;;;;AAG7C;AAEA;;AAEkG,2GAE5FoB,aAAgBC,GAAAA,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACvCC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA,CAAGC,QAAQ,CAAC;QACrCZ,EAAI,EAAA,0CAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA;AACAW,IAAAA,IAAAA,EAAMP,IACHI,MAAM,EAAA,CACNC,QAAQ,EACRG,CAAAA,GAAG,CAAC,EAAI,EAAA;QACPd,EAAI,EAAA,8CAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA,CACCU,QAAQ,CAAC;QACRZ,EAAI,EAAA,mDAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA;AACFa,IAAAA,SAAAA,EAAWT,IAAIU,OAAO;AACxB,CAAA;AAIA,MAAMC,iBAAoB,GAAA;IACxBR,IAAM,EAAA,EAAA;IACNI,IAAM,EAAA,EAAA;IACNE,SAAW,EAAA;AACb,CAAA;AAMA,MAAMZ,WAAc,GAAA,CAAC,EAAEC,OAAO,EAAoB,GAAA;AAChD,IAAA,MAAMc,OAAUC,GAAAA,KAAAA,EAAAA;IAChB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,kBAAAA,EAAAA;IACJ,MAAM,CAACC,aAAa,GAAGC,uBAAAA,EAAAA;IACvB,MAAM,EAAE9C,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM8C,qBAAqBC,OAAQ,CAAA,aAAA,EAAe,CAACC,KAAAA,GAAUA,MAAMF,kBAAkB,CAAA;IAErF,MAAMG,YAAAA,GAAe,OAAOC,MAAoBC,EAAAA,OAAAA,GAAAA;QAC9C,IAAI;YACF,MAAMC,GAAAA,GAAM,MAAMR,YAAaM,CAAAA,MAAAA,CAAAA;AAE/B,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClB,IAAIC,gBAAAA,CAAiBD,IAAIE,KAAK,CAAA,IAAKF,IAAIE,KAAK,CAACxB,IAAI,KAAK,iBAAmB,EAAA;AACvEqB,oBAAAA,OAAAA,CAAQI,SAAS,CAACb,sBAAuBU,CAAAA,GAAAA,CAAIE,KAAK,CAAA,CAAA;iBAC7C,MAAA;oBACLjB,kBAAmB,CAAA;wBAAEmB,IAAM,EAAA,QAAA;wBAAUC,OAASjB,EAAAA,cAAAA,CAAeY,IAAIE,KAAK;AAAE,qBAAA,CAAA;AAC1E;AAEA,gBAAA;AACF;YAEAjB,kBAAmB,CAAA;gBACjBmB,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAS1D,aAAc,CAAA;AACrBkB,oBAAAA,EAAAA,EAAIC,cAAe,CAAA,uCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA2B,YAAAA,kBAAAA,EAAAA;AACAzB,YAAAA,OAAAA,EAAAA;AACF,SAAA,CAAE,OAAOqC,GAAK,EAAA;YACZrB,kBAAmB,CAAA;gBACjBmB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAAS1D,aAAc,CAAA;oBACrBkB,EAAI,EAAA,oBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;IAEA,qBACET,GAAA,CAACJ,MAAMqD,OAAO,EAAA;AACZ,QAAA,QAAA,gBAAAtD,IAACuD,CAAAA,IAAAA,EAAAA;YACCC,MAAO,EAAA,MAAA;YACPC,aAAe5B,EAAAA,iBAAAA;YACf6B,gBAAkBzC,EAAAA,aAAAA;YAClB0C,QAAUf,EAAAA,YAAAA;;AAEV,8BAAAvC,GAAA,CAACJ,MAAM2D,MAAM,EAAA;4CACXvD,GAAA,CAACJ,MAAM4D,KAAK,EAAA;kCACTnE,aAAc,CAAA;AACbkB,4BAAAA,EAAAA,EAAIC,cAAe,CAAA,2BAAA,CAAA;4BACnBC,cAAgB,EAAA;AAClB,yBAAA;;;AAGJ,8BAAAT,GAAA,CAACJ,MAAM6D,IAAI,EAAA;4CACT9D,IAAA,CAAC+D,KAAK7D,IAAI,EAAA;wBAACT,OAAQ,EAAA,QAAA;wBAASuE,YAAa,EAAA,OAAA;;0CACvChE,IAACiE,CAAAA,IAAAA,EAAAA;gCAAKC,cAAe,EAAA,eAAA;;kDACnB7D,GAAC8D,CAAAA,UAAAA,EAAAA;wCAAWC,GAAI,EAAA,IAAA;wCAAK3E,OAAQ,EAAA,MAAA;wCAAOmB,EAAIkB,EAAAA,OAAAA;kDACrCpC,aAAc,CAAA;AACbkB,4CAAAA,EAAAA,EAAIC,cAAe,CAAA,8BAAA,CAAA;4CACnBC,cAAgB,EAAA;AAClB,yCAAA;;AAEF,kDAAAd,IAAA,CAAC+D,KAAKM,IAAI,EAAA;wCAACC,iBAAiBxC,EAAAA,OAAAA;;AAC1B,0DAAAzB,GAAA,CAAC0D,KAAKzD,OAAO,EAAA;gDAACiE,KAAM,EAAA,OAAA;0DACjB7E,aAAc,CAAA;AACbkB,oDAAAA,EAAAA,EAAIC,cAAe,CAAA,6BAAA,CAAA;oDACnBC,cAAgB,EAAA;AAClB,iDAAA;;AAEF,0DAAAT,GAAA,CAAC0D,KAAKzD,OAAO,EAAA;gDAACiE,KAAM,EAAA,UAAA;0DACjB7E,aAAc,CAAA;AACbkB,oDAAAA,EAAAA,EAAIC,cAAe,CAAA,iCAAA,CAAA;oDACnBC,cAAgB,EAAA;AAClB,iDAAA;;;;;;0CAKNT,GAACmE,CAAAA,OAAAA,EAAAA,EAAAA,CAAAA;0CAEDxE,IAACyE,CAAAA,GAAAA,EAAAA;gCAAIC,UAAY,EAAA,CAAA;gCAAGC,aAAe,EAAA,CAAA;;AACjC,kDAAAtE,GAAA,CAAC0D,KAAKT,OAAO,EAAA;wCAACiB,KAAM,EAAA,OAAA;AAClB,wCAAA,QAAA,gBAAAlE,GAACuE,CAAAA,QAAAA,EAAAA,EAAAA;;AAEH,kDAAAvE,GAAA,CAAC0D,KAAKT,OAAO,EAAA;wCAACiB,KAAM,EAAA,UAAA;AAClB,wCAAA,QAAA,gBAAAlE,GAACwE,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;;AAKT,8BAAA7E,IAAA,CAACC,MAAM6E,MAAM,EAAA;;AACX,sCAAAzE,GAAA,CAACJ,MAAM8E,KAAK,EAAA;AACV,4BAAA,QAAA,gBAAA1E,GAACE,CAAAA,MAAAA,EAAAA;gCAAOd,OAAQ,EAAA,UAAA;0CACbC,aAAc,CAAA;oCAAEkB,EAAI,EAAA,8BAAA;oCAAgCE,cAAgB,EAAA;AAAS,iCAAA;;;sCAGlFT,GAAC2E,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;AAKX,CAAA;AAEA;;AAEkG,2GAE5FA,YAAe,GAAA,IAAA;IACnB,MAAM,EAAEtF,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMsF,eAAeC,OAAQ,CAAA,cAAA,EAAgB,CAACvC,KAAAA,GAAUA,MAAMsC,YAAY,CAAA;AAC1E,IAAA,MAAME,WAAWD,OAAQ,CAAA,cAAA,EAAgB,CAACvC,KAAAA,GAAUA,MAAMwC,QAAQ,CAAA;AAElE,IAAA,qBACE9E,GAACE,CAAAA,MAAAA,EAAAA;QAAO4C,IAAK,EAAA,QAAA;AAAS3C,QAAAA,SAAAA,gBAAWH,GAAC+E,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;AAAU5F,QAAAA,QAAAA,EAAUyF,gBAAgB,CAACE,QAAAA;kBACpEzF,aAAc,CAAA;YAAEkB,EAAI,EAAA,aAAA;YAAeE,cAAgB,EAAA;AAAO,SAAA;;AAGjE;AAUA,MAAM8D,QAAW,GAAA,CAAC,EAAES,IAAAA,GAAO,QAAQ,EAAiB,GAAA;IAClD,MAAM,EAAE3F,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEqC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGG,kBAAAA,EAAAA;AAEpD,IAAA,MAAM,EAAEgD,IAAMC,EAAAA,cAAc,EAAEtC,KAAK,EAAE,GAAGuC,yBAAAA,EAAAA;AAExC1F,IAAAA,KAAAA,CAAM2F,SAAS,CAAC,IAAA;AACd,QAAA,IAAIxC,KAAO,EAAA;YACTjB,kBAAmB,CAAA;gBACjBmB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjB,cAAec,CAAAA,KAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAOd,QAAAA,cAAAA;AAAgBH,QAAAA;AAAmB,KAAA,CAAA;AAE9C,IAAA,IAAI,CAAC0D,KAAAA,CAAMC,OAAO,CAACJ,cAAiB,CAAA,EAAA;QAClC,OAAO,IAAA;AACT;AAEA,IAAA,MAAMK,UAAUL,cAAeM,CAAAA,GAAG,CAAC,CAACC,UAAY;AAC9CC,YAAAA,KAAAA,EAAOD,OAAOrE,IAAI;AAClB8C,YAAAA,KAAAA,EAAOuB,OAAOzE;SAChB,CAAA,CAAA;AAEA,IAAA,MAAM2E,cAAiB,GAAA;AACrB,QAAA;AACExG,YAAAA,QAAAA,EAAU6F,IAAS,KAAA,QAAA;YACnBU,KAAO,EAAA;AACLnF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,0CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAW,IAAM,EAAA,MAAA;AACNmE,YAAAA,OAAAA;YACAK,WAAa,EAAA;gBACXrF,EAAI,EAAA,+BAAA;gBACJE,cAAgB,EAAA;AAClB,aAAA;YACAU,QAAU,EAAA,IAAA;YACVb,IAAM,EAAA,CAAA;YACNwC,IAAM,EAAA;AACR,SAAA;AACA,QAAA;YACE+C,IAAM,EAAA;AACJtF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,sDAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAiF,KAAO,EAAA;AACLnF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,0CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAW,IAAM,EAAA,MAAA;YACND,QAAU,EAAA,IAAA;YACVb,IAAM,EAAA,CAAA;YACNwC,IAAM,EAAA;AACR;AACD,KAAA,CAAC0C,GAAG,CAAC,CAACM,KAAAA,IAAW;AAChB,YAAA,GAAGA,KAAK;AACRD,YAAAA,IAAAA,EAAMC,MAAMD,IAAI,GAAGxG,aAAcyG,CAAAA,KAAAA,CAAMD,IAAI,CAAIE,GAAAA,SAAAA;YAC/CL,KAAOrG,EAAAA,aAAAA,CAAcyG,MAAMJ,KAAK,CAAA;AAChCE,YAAAA,WAAAA,EAAaE,MAAMF,WAAW,GAAGvG,aAAcyG,CAAAA,KAAAA,CAAMF,WAAW,CAAIG,GAAAA;SACtE,CAAA,CAAA;IAEA,qBACE/F,GAAA,CAACgG,KAAKnG,IAAI,EAAA;QAACoG,GAAK,EAAA,CAAA;kBACbN,cAAeH,CAAAA,GAAG,CAAC,CAAC,EAAElF,IAAI,EAAE,GAAGwF,KAAO,EAAA,iBACrC9F,GAACgG,CAAAA,IAAAA,CAAKE,IAAI,EAAA;gBAAkBC,GAAK7F,EAAAA,IAAAA;gBAAM8F,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACnE,gBAAA,QAAA,gBAAArG,GAACsG,CAAAA,YAAAA,EAAAA;AAAc,oBAAA,GAAGR;;AADJA,aAAAA,EAAAA,KAAAA,CAAM1E,IAAI,CAAA;;AAMlC;AAUA,MAAMoD,YAAe,GAAA,CAAC,EAAE+B,eAAe,EAAqB,GAAA;IAC1D,MAAM,EAAElH,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMkH,IAAO,GAAA;AACX,QAAA;YACErH,QAAUoH,EAAAA,eAAAA;YACVV,IAAM,EAAA;AACJtF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,mDAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAiF,KAAO,EAAA;AACLnF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,8CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAW,IAAM,EAAA,WAAA;YACNd,IAAM,EAAA,CAAA;YACNwC,IAAM,EAAA;AACR;AACD,KAAA,CAAC0C,GAAG,CAAC,CAACM,KAAAA,IAAW;AAChB,YAAA,GAAGA,KAAK;AACRD,YAAAA,IAAAA,EAAMC,MAAMD,IAAI,GAAGxG,aAAcyG,CAAAA,KAAAA,CAAMD,IAAI,CAAIE,GAAAA,SAAAA;YAC/CL,KAAOrG,EAAAA,aAAAA,CAAcyG,MAAMJ,KAAK;SAClC,CAAA,CAAA;IAEA,qBACE1F,GAAA,CAACgG,KAAKnG,IAAI,EAAA;QAACoG,GAAK,EAAA,CAAA;kBACbO,IAAKhB,CAAAA,GAAG,CAAC,CAAC,EAAElF,IAAI,EAAE,GAAGwF,KAAO,EAAA,iBAC3B9F,GAACgG,CAAAA,IAAAA,CAAKE,IAAI,EAAA;gBAAkBC,GAAK7F,EAAAA,IAAAA;gBAAM8F,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACnE,gBAAA,QAAA,gBAAArG,GAACsG,CAAAA,YAAAA,EAAAA;AAAc,oBAAA,GAAGR;;AADJA,aAAAA,EAAAA,KAAAA,CAAM1E,IAAI,CAAA;;AAMlC;AAEA;;qGAIA,MAAMkF,eAAe,CAACR,KAAAA,GAAAA;AACpB,IAAA,OAAQA,MAAMhD,IAAI;AAChB;;;AAGC,QACD,KAAK,aAAA;AACH,YAAA,qBAAO9C,GAACyG,CAAAA,gBAAAA,EAAAA;AAAkB,gBAAA,GAAGX;;AAC/B,QAAA;AACE,YAAA,qBAAO9F,GAAC0G,CAAAA,aAAAA,EAAAA;AAAe,gBAAA,GAAGZ;;AAC9B;AACF,CAAA;AAEA,MAAMW,mBAAmB,CAAC,EACxBtH,QAAQ,EACR0G,IAAI,EACJH,KAAK,EACLtE,IAAI,EACJmE,OAAO,EACPK,WAAW,EACXzE,QAAQ,EACqC,GAAA;IAC7C,MAAM,EAAE+C,KAAK,EAAEtB,KAAK,EAAE+D,QAAQ,EAAE,GAAGC,QAASxF,CAAAA,IAAAA,CAAAA;AAC5C,IAAA,MAAM,EAAE6D,IAAAA,EAAMC,cAAiB,GAAA,EAAE,EAAE,GAAGC,yBAAAA,EAAAA;AAEtC,IAAA,MAAM0B,eAAe,CAAC3C,KAAAA,GAAAA;QACpB,IAAImB,KAAAA,CAAMC,OAAO,CAACJ,cAAiB,CAAA,EAAA;;YAEjC,MAAMO,MAAAA,GAASP,eAAe4B,IAAI,CAAC,CAACrB,MAAWA,GAAAA,MAAAA,CAAOzE,IAAI,KAAKkD,KAAAA,CAAAA;AAE/DyC,YAAAA,QAAAA,CAASvF,IAAM8C,EAAAA,KAAAA,CAAAA;;YAEfyC,QAAS,CAAA,MAAA,EAAQlB,OAAOrE,IAAI,CAAA;SACvB,MAAA;AACLuF,YAAAA,QAAAA,CAASvF,IAAM8C,EAAAA,KAAAA,CAAAA;AACjB;AACF,KAAA;IAEA,qBACEvE,IAAA,CAACoH,MAAMlH,IAAI,EAAA;QAAC+C,KAAOA,EAAAA,KAAAA;QAAOiD,IAAMA,EAAAA,IAAAA;QAAMzE,IAAMA,EAAAA,IAAAA;QAAMD,QAAUA,EAAAA,QAAAA;;AAC1D,0BAAAnB,GAAA,CAAC+G,MAAMC,KAAK,EAAA;AAAEtB,gBAAAA,QAAAA,EAAAA;;0BACd1F,GAACiH,CAAAA,YAAAA,EAAAA;gBACC9H,QAAUA,EAAAA,QAAAA;;gBAEVwH,QAAUE,EAAAA,YAAAA;gBACVjB,WAAaA,EAAAA,WAAAA;gBACb1B,KAAOA,EAAAA,KAAAA;AAENqB,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQC,GAAG,CAAC,CAAC0B,MAAAA,iBACZlH,GAACmH,CAAAA,kBAAAA,EAAAA;AAAmBjD,wBAAAA,KAAAA,EAAOgD,OAAOhD,KAAK;AACpCgD,wBAAAA,QAAAA,EAAAA,MAAAA,CAAOxB;AADoCwB,qBAAAA,EAAAA,MAAAA,CAAOhD,KAAK,CAAA;;AAK9D,0BAAAlE,GAAA,CAAC+G,MAAMK,KAAK,EAAA,EAAA,CAAA;AACZ,0BAAApH,GAAA,CAAC+G,MAAMM,IAAI,EAAA,EAAA;;;AAGjB,CAAA;;;;"}
1
+ {"version":3,"file":"CreateLocale.mjs","sources":["../../../admin/src/components/CreateLocale.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Form,\n type InputProps,\n InputRenderer,\n useField,\n type FormHelpers,\n useForm,\n useAPIErrorHandler,\n useNotification,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n ButtonProps,\n Divider,\n Field,\n Flex,\n Grid,\n Modal,\n SingleSelect,\n SingleSelectOption,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Check, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { CreateLocale } from '../../../shared/contracts/locales';\nimport { useCreateLocaleMutation, useGetDefaultLocalesQuery } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\n/* -------------------------------------------------------------------------------------------------\n * CreateLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateLocaleProps extends Pick<ButtonProps, 'disabled' | 'variant'> {}\n\nconst CreateLocale = ({ disabled, variant = 'default' }: CreateLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <Modal.Root open={visible} onOpenChange={setVisible}>\n <Modal.Trigger>\n <Button\n variant={variant}\n disabled={disabled}\n startIcon={<Plus />}\n onClick={() => setVisible(true)}\n size=\"S\"\n >\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Button>\n </Modal.Trigger>\n <CreateModal onClose={() => setVisible(false)} />\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CreateModal\n * -----------------------------------------------------------------------------------------------*/\n\nconst LOCALE_SCHEMA = yup.object().shape({\n code: yup.string().nullable().required({\n id: 'Settings.locales.modal.create.code.error',\n defaultMessage: 'Please select a locale',\n }),\n name: yup\n .string()\n .nullable()\n .max(50, {\n id: 'Settings.locales.modal.create.name.error.min',\n defaultMessage: 'The locale display name can only be less than 50 characters.',\n })\n .required({\n id: 'Settings.locales.modal.create.name.error.required',\n defaultMessage: 'Please give the locale a display name',\n }),\n isDefault: yup.boolean(),\n});\n\ntype FormValues = CreateLocale.Request['body'];\n\nconst initialFormValues = {\n code: '',\n name: '',\n isDefault: false,\n} satisfies FormValues;\n\ntype ModalCreateProps = {\n onClose: () => void;\n};\n\nconst CreateModal = ({ onClose }: ModalCreateProps) => {\n const titleId = useId();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const [createLocale] = useCreateLocaleMutation();\n const { formatMessage } = useIntl();\n const refetchPermissions = useAuth('CreateModal', (state) => state.refetchPermissions);\n\n const handleSubmit = async (values: FormValues, helpers: FormHelpers<FormValues>) => {\n try {\n const res = await createLocale(values);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.create.success'),\n defaultMessage: 'Locale successfully added',\n }),\n });\n\n refetchPermissions();\n onClose();\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Content>\n <Form\n method=\"POST\"\n initialValues={initialFormValues}\n validationSchema={LOCALE_SCHEMA}\n onSubmit={handleSubmit}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTranslation('Settings.list.actions.add'),\n defaultMessage: 'Add new locale',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n\n <Divider />\n\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SubmitButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst SubmitButton = () => {\n const { formatMessage } = useIntl();\n const isSubmitting = useForm('SubmitButton', (state) => state.isSubmitting);\n const modified = useForm('SubmitButton', (state) => state.modified);\n\n return (\n <Button type=\"submit\" startIcon={<Check />} disabled={isSubmitting || !modified}>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * BaseForm\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseFormProps {\n mode?: 'create' | 'edit';\n}\n\nconst BaseForm = ({ mode = 'create' }: BaseFormProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data: defaultLocales, error } = useGetDefaultLocalesQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (!Array.isArray(defaultLocales)) {\n return null;\n }\n\n const options = defaultLocales.map((locale) => ({\n label: locale.name,\n value: locale.code,\n }));\n\n const translatedForm = [\n {\n disabled: mode !== 'create',\n label: {\n id: getTranslation('Settings.locales.modal.create.code.label'),\n defaultMessage: 'Locales',\n },\n name: 'code',\n options,\n placeholder: {\n id: 'components.placeholder.select',\n defaultMessage: 'Select',\n },\n required: true,\n size: 6,\n type: 'enumeration' as const,\n },\n {\n hint: {\n id: getTranslation('Settings.locales.modal.create.name.label.description'),\n defaultMessage: 'Locale will be displayed under that name in the administration panel',\n },\n label: {\n id: getTranslation('Settings.locales.modal.create.name.label'),\n defaultMessage: 'Locale display name',\n },\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n placeholder: field.placeholder ? formatMessage(field.placeholder) : undefined,\n }));\n\n return (\n <Grid.Root gap={4}>\n {translatedForm.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdvancedForm\n * -----------------------------------------------------------------------------------------------*/\n\ntype AdvancedFormProps = {\n isDefaultLocale?: boolean;\n};\n\nconst AdvancedForm = ({ isDefaultLocale }: AdvancedFormProps) => {\n const { formatMessage } = useIntl();\n\n const form = [\n {\n disabled: isDefaultLocale,\n hint: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault.hint'),\n defaultMessage: 'One default locale is required, change it by selecting another one',\n },\n label: {\n id: getTranslation('Settings.locales.modal.advanced.setAsDefault'),\n defaultMessage: 'Set as default locale',\n },\n name: 'isDefault',\n size: 6,\n type: 'boolean' as const,\n },\n ].map((field) => ({\n ...field,\n hint: field.hint ? formatMessage(field.hint) : undefined,\n label: formatMessage(field.label),\n })) satisfies InputProps[];\n\n return (\n <Grid.Root gap={4}>\n {form.map(({ size, ...field }) => (\n <Grid.Item key={field.name} col={size} direction=\"column\" alignItems=\"stretch\">\n <FormRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FormRenderer\n * -----------------------------------------------------------------------------------------------*/\n\nconst FormRenderer = (field: InputProps) => {\n switch (field.type) {\n /**\n * This will override the default input renderer\n * choice for `enumeration`.\n */\n case 'enumeration':\n return <EnumerationInput {...field} />;\n default:\n return <InputRenderer {...field} />;\n }\n};\n\nconst EnumerationInput = ({\n disabled,\n hint,\n label,\n name,\n options,\n placeholder,\n required,\n}: Extract<InputProps, { type: 'enumeration' }>) => {\n const { value, error, onChange } = useField(name);\n const { data: defaultLocales = [] } = useGetDefaultLocalesQuery();\n\n const handleChange = (value: string) => {\n if (Array.isArray(defaultLocales)) {\n // We know it exists because the options are created from the list of default locales\n const locale = defaultLocales.find((locale) => locale.code === value)!;\n\n onChange(name, value);\n // This lets us automatically fill the name field with the locale name\n onChange('name', locale.name);\n } else {\n onChange(name, value);\n }\n };\n\n return (\n <Field.Root error={error} hint={hint} name={name} required={required}>\n <Field.Label>{label}</Field.Label>\n <SingleSelect\n disabled={disabled}\n // @ts-expect-error – This will dissapear when the DS removes support for numbers to be returned by SingleSelect.\n onChange={handleChange}\n placeholder={placeholder}\n value={value}\n >\n {options.map((option) => (\n <SingleSelectOption value={option.value} key={option.value}>\n {option.label}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\nexport { CreateLocale, BaseForm, AdvancedForm, SubmitButton, LOCALE_SCHEMA };\n"],"names":["CreateLocale","disabled","variant","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","Modal","Root","open","onOpenChange","_jsx","Trigger","Button","startIcon","Plus","onClick","size","id","getTranslation","defaultMessage","CreateModal","onClose","LOCALE_SCHEMA","yup","object","shape","code","string","nullable","required","name","max","isDefault","boolean","initialFormValues","titleId","useId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","createLocale","useCreateLocaleMutation","refetchPermissions","useAuth","state","handleSubmit","values","helpers","res","isBaseQueryError","error","setErrors","type","message","err","Content","Form","method","initialValues","validationSchema","onSubmit","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","value","Divider","Box","paddingTop","paddingBottom","BaseForm","AdvancedForm","Footer","Close","SubmitButton","isSubmitting","useForm","modified","Check","mode","data","defaultLocales","useGetDefaultLocalesQuery","useEffect","Array","isArray","options","map","locale","label","translatedForm","placeholder","hint","field","undefined","Grid","gap","Item","col","direction","alignItems","FormRenderer","isDefaultLocale","form","EnumerationInput","InputRenderer","onChange","useField","handleChange","find","Field","Label","SingleSelect","option","SingleSelectOption","Error","Hint"],"mappings":";;;;;;;;;;;AA2CA,MAAMA,eAAe,CAAC,EAAEC,QAAQ,EAAEC,OAAAA,GAAU,SAAS,EAAqB,GAAA;IACxE,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IAE7C,qBACEC,IAAA,CAACC,MAAMC,IAAI,EAAA;QAACC,IAAMP,EAAAA,OAAAA;QAASQ,YAAcP,EAAAA,UAAAA;;AACvC,0BAAAQ,GAAA,CAACJ,MAAMK,OAAO,EAAA;AACZ,gBAAA,QAAA,gBAAAD,GAACE,CAAAA,MAAAA,EAAAA;oBACCd,OAASA,EAAAA,OAAAA;oBACTD,QAAUA,EAAAA,QAAAA;AACVgB,oBAAAA,SAAAA,gBAAWH,GAACI,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;AACZC,oBAAAA,OAAAA,EAAS,IAAMb,UAAW,CAAA,IAAA,CAAA;oBAC1Bc,IAAK,EAAA,GAAA;8BAEJjB,aAAc,CAAA;AACbkB,wBAAAA,EAAAA,EAAIC,cAAe,CAAA,2BAAA,CAAA;wBACnBC,cAAgB,EAAA;AAClB,qBAAA;;;0BAGJT,GAACU,CAAAA,WAAAA,EAAAA;AAAYC,gBAAAA,OAAAA,EAAS,IAAMnB,UAAW,CAAA,KAAA;;;;AAG7C;AAEA;;AAEkG,2GAE5FoB,aAAgBC,GAAAA,GAAAA,CAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACvCC,IAAAA,IAAAA,EAAMH,IAAII,MAAM,EAAA,CAAGC,QAAQ,EAAA,CAAGC,QAAQ,CAAC;QACrCZ,EAAI,EAAA,0CAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA;AACAW,IAAAA,IAAAA,EAAMP,IACHI,MAAM,EAAA,CACNC,QAAQ,EACRG,CAAAA,GAAG,CAAC,EAAI,EAAA;QACPd,EAAI,EAAA,8CAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA,CACCU,QAAQ,CAAC;QACRZ,EAAI,EAAA,mDAAA;QACJE,cAAgB,EAAA;AAClB,KAAA,CAAA;AACFa,IAAAA,SAAAA,EAAWT,IAAIU,OAAO;AACxB,CAAA;AAIA,MAAMC,iBAAoB,GAAA;IACxBR,IAAM,EAAA,EAAA;IACNI,IAAM,EAAA,EAAA;IACNE,SAAW,EAAA;AACb,CAAA;AAMA,MAAMZ,WAAc,GAAA,CAAC,EAAEC,OAAO,EAAoB,GAAA;AAChD,IAAA,MAAMc,OAAUC,GAAAA,KAAAA,EAAAA;IAChB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,kBAAAA,EAAAA;IACJ,MAAM,CAACC,aAAa,GAAGC,uBAAAA,EAAAA;IACvB,MAAM,EAAE9C,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM8C,qBAAqBC,OAAQ,CAAA,aAAA,EAAe,CAACC,KAAAA,GAAUA,MAAMF,kBAAkB,CAAA;IAErF,MAAMG,YAAAA,GAAe,OAAOC,MAAoBC,EAAAA,OAAAA,GAAAA;QAC9C,IAAI;YACF,MAAMC,GAAAA,GAAM,MAAMR,YAAaM,CAAAA,MAAAA,CAAAA;AAE/B,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClB,IAAIC,gBAAAA,CAAiBD,IAAIE,KAAK,CAAA,IAAKF,IAAIE,KAAK,CAACxB,IAAI,KAAK,iBAAmB,EAAA;AACvEqB,oBAAAA,OAAAA,CAAQI,SAAS,CAACb,sBAAuBU,CAAAA,GAAAA,CAAIE,KAAK,CAAA,CAAA;iBAC7C,MAAA;oBACLjB,kBAAmB,CAAA;wBAAEmB,IAAM,EAAA,QAAA;wBAAUC,OAASjB,EAAAA,cAAAA,CAAeY,IAAIE,KAAK;AAAE,qBAAA,CAAA;AAC1E;AAEA,gBAAA;AACF;YAEAjB,kBAAmB,CAAA;gBACjBmB,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAS1D,aAAc,CAAA;AACrBkB,oBAAAA,EAAAA,EAAIC,cAAe,CAAA,uCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEA2B,YAAAA,kBAAAA,EAAAA;AACAzB,YAAAA,OAAAA,EAAAA;AACF,SAAA,CAAE,OAAOqC,GAAK,EAAA;YACZrB,kBAAmB,CAAA;gBACjBmB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAAS1D,aAAc,CAAA;oBACrBkB,EAAI,EAAA,oBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;IAEA,qBACET,GAAA,CAACJ,MAAMqD,OAAO,EAAA;AACZ,QAAA,QAAA,gBAAAtD,IAACuD,CAAAA,IAAAA,EAAAA;YACCC,MAAO,EAAA,MAAA;YACPC,aAAe5B,EAAAA,iBAAAA;YACf6B,gBAAkBzC,EAAAA,aAAAA;YAClB0C,QAAUf,EAAAA,YAAAA;;AAEV,8BAAAvC,GAAA,CAACJ,MAAM2D,MAAM,EAAA;4CACXvD,GAAA,CAACJ,MAAM4D,KAAK,EAAA;kCACTnE,aAAc,CAAA;AACbkB,4BAAAA,EAAAA,EAAIC,cAAe,CAAA,2BAAA,CAAA;4BACnBC,cAAgB,EAAA;AAClB,yBAAA;;;AAGJ,8BAAAT,GAAA,CAACJ,MAAM6D,IAAI,EAAA;4CACT9D,IAAA,CAAC+D,KAAK7D,IAAI,EAAA;wBAACT,OAAQ,EAAA,QAAA;wBAASuE,YAAa,EAAA,OAAA;;0CACvChE,IAACiE,CAAAA,IAAAA,EAAAA;gCAAKC,cAAe,EAAA,eAAA;;kDACnB7D,GAAC8D,CAAAA,UAAAA,EAAAA;wCAAWC,GAAI,EAAA,IAAA;wCAAK3E,OAAQ,EAAA,MAAA;wCAAOmB,EAAIkB,EAAAA,OAAAA;kDACrCpC,aAAc,CAAA;AACbkB,4CAAAA,EAAAA,EAAIC,cAAe,CAAA,8BAAA,CAAA;4CACnBC,cAAgB,EAAA;AAClB,yCAAA;;AAEF,kDAAAd,IAAA,CAAC+D,KAAKM,IAAI,EAAA;wCAACC,iBAAiBxC,EAAAA,OAAAA;;AAC1B,0DAAAzB,GAAA,CAAC0D,KAAKzD,OAAO,EAAA;gDAACiE,KAAM,EAAA,OAAA;0DACjB7E,aAAc,CAAA;AACbkB,oDAAAA,EAAAA,EAAIC,cAAe,CAAA,6BAAA,CAAA;oDACnBC,cAAgB,EAAA;AAClB,iDAAA;;AAEF,0DAAAT,GAAA,CAAC0D,KAAKzD,OAAO,EAAA;gDAACiE,KAAM,EAAA,UAAA;0DACjB7E,aAAc,CAAA;AACbkB,oDAAAA,EAAAA,EAAIC,cAAe,CAAA,iCAAA,CAAA;oDACnBC,cAAgB,EAAA;AAClB,iDAAA;;;;;;0CAKNT,GAACmE,CAAAA,OAAAA,EAAAA,EAAAA,CAAAA;0CAEDxE,IAACyE,CAAAA,GAAAA,EAAAA;gCAAIC,UAAY,EAAA,CAAA;gCAAGC,aAAe,EAAA,CAAA;;AACjC,kDAAAtE,GAAA,CAAC0D,KAAKT,OAAO,EAAA;wCAACiB,KAAM,EAAA,OAAA;AAClB,wCAAA,QAAA,gBAAAlE,GAACuE,CAAAA,QAAAA,EAAAA,EAAAA;;AAEH,kDAAAvE,GAAA,CAAC0D,KAAKT,OAAO,EAAA;wCAACiB,KAAM,EAAA,UAAA;AAClB,wCAAA,QAAA,gBAAAlE,GAACwE,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;;AAKT,8BAAA7E,IAAA,CAACC,MAAM6E,MAAM,EAAA;;AACX,sCAAAzE,GAAA,CAACJ,MAAM8E,KAAK,EAAA;AACV,4BAAA,QAAA,gBAAA1E,GAACE,CAAAA,MAAAA,EAAAA;gCAAOd,OAAQ,EAAA,UAAA;0CACbC,aAAc,CAAA;oCAAEkB,EAAI,EAAA,8BAAA;oCAAgCE,cAAgB,EAAA;AAAS,iCAAA;;;sCAGlFT,GAAC2E,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;AAKX,CAAA;AAEA;;AAEkG,2GAE5FA,YAAe,GAAA,IAAA;IACnB,MAAM,EAAEtF,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMsF,eAAeC,OAAQ,CAAA,cAAA,EAAgB,CAACvC,KAAAA,GAAUA,MAAMsC,YAAY,CAAA;AAC1E,IAAA,MAAME,WAAWD,OAAQ,CAAA,cAAA,EAAgB,CAACvC,KAAAA,GAAUA,MAAMwC,QAAQ,CAAA;AAElE,IAAA,qBACE9E,GAACE,CAAAA,MAAAA,EAAAA;QAAO4C,IAAK,EAAA,QAAA;AAAS3C,QAAAA,SAAAA,gBAAWH,GAAC+E,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;AAAU5F,QAAAA,QAAAA,EAAUyF,gBAAgB,CAACE,QAAAA;kBACpEzF,aAAc,CAAA;YAAEkB,EAAI,EAAA,aAAA;YAAeE,cAAgB,EAAA;AAAO,SAAA;;AAGjE;AAUA,MAAM8D,QAAW,GAAA,CAAC,EAAES,IAAAA,GAAO,QAAQ,EAAiB,GAAA;IAClD,MAAM,EAAE3F,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEqC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGG,kBAAAA,EAAAA;AAEpD,IAAA,MAAM,EAAEgD,IAAMC,EAAAA,cAAc,EAAEtC,KAAK,EAAE,GAAGuC,yBAAAA,EAAAA;AAExC1F,IAAAA,KAAAA,CAAM2F,SAAS,CAAC,IAAA;AACd,QAAA,IAAIxC,KAAO,EAAA;YACTjB,kBAAmB,CAAA;gBACjBmB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASjB,cAAec,CAAAA,KAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAOd,QAAAA,cAAAA;AAAgBH,QAAAA;AAAmB,KAAA,CAAA;AAE9C,IAAA,IAAI,CAAC0D,KAAAA,CAAMC,OAAO,CAACJ,cAAiB,CAAA,EAAA;QAClC,OAAO,IAAA;AACT;AAEA,IAAA,MAAMK,UAAUL,cAAeM,CAAAA,GAAG,CAAC,CAACC,UAAY;AAC9CC,YAAAA,KAAAA,EAAOD,OAAOrE,IAAI;AAClB8C,YAAAA,KAAAA,EAAOuB,OAAOzE;SAChB,CAAA,CAAA;AAEA,IAAA,MAAM2E,cAAiB,GAAA;AACrB,QAAA;AACExG,YAAAA,QAAAA,EAAU6F,IAAS,KAAA,QAAA;YACnBU,KAAO,EAAA;AACLnF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,0CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAW,IAAM,EAAA,MAAA;AACNmE,YAAAA,OAAAA;YACAK,WAAa,EAAA;gBACXrF,EAAI,EAAA,+BAAA;gBACJE,cAAgB,EAAA;AAClB,aAAA;YACAU,QAAU,EAAA,IAAA;YACVb,IAAM,EAAA,CAAA;YACNwC,IAAM,EAAA;AACR,SAAA;AACA,QAAA;YACE+C,IAAM,EAAA;AACJtF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,sDAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAiF,KAAO,EAAA;AACLnF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,0CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAW,IAAM,EAAA,MAAA;YACND,QAAU,EAAA,IAAA;YACVb,IAAM,EAAA,CAAA;YACNwC,IAAM,EAAA;AACR;AACD,KAAA,CAAC0C,GAAG,CAAC,CAACM,KAAAA,IAAW;AAChB,YAAA,GAAGA,KAAK;AACRD,YAAAA,IAAAA,EAAMC,MAAMD,IAAI,GAAGxG,aAAcyG,CAAAA,KAAAA,CAAMD,IAAI,CAAIE,GAAAA,SAAAA;YAC/CL,KAAOrG,EAAAA,aAAAA,CAAcyG,MAAMJ,KAAK,CAAA;AAChCE,YAAAA,WAAAA,EAAaE,MAAMF,WAAW,GAAGvG,aAAcyG,CAAAA,KAAAA,CAAMF,WAAW,CAAIG,GAAAA;SACtE,CAAA,CAAA;IAEA,qBACE/F,GAAA,CAACgG,KAAKnG,IAAI,EAAA;QAACoG,GAAK,EAAA,CAAA;kBACbN,cAAeH,CAAAA,GAAG,CAAC,CAAC,EAAElF,IAAI,EAAE,GAAGwF,KAAO,EAAA,iBACrC9F,GAACgG,CAAAA,IAAAA,CAAKE,IAAI,EAAA;gBAAkBC,GAAK7F,EAAAA,IAAAA;gBAAM8F,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACnE,gBAAA,QAAA,gBAAArG,GAACsG,CAAAA,YAAAA,EAAAA;AAAc,oBAAA,GAAGR;;AADJA,aAAAA,EAAAA,KAAAA,CAAM1E,IAAI,CAAA;;AAMlC;AAUA,MAAMoD,YAAe,GAAA,CAAC,EAAE+B,eAAe,EAAqB,GAAA;IAC1D,MAAM,EAAElH,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMkH,IAAO,GAAA;AACX,QAAA;YACErH,QAAUoH,EAAAA,eAAAA;YACVV,IAAM,EAAA;AACJtF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,mDAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAiF,KAAO,EAAA;AACLnF,gBAAAA,EAAAA,EAAIC,cAAe,CAAA,8CAAA,CAAA;gBACnBC,cAAgB,EAAA;AAClB,aAAA;YACAW,IAAM,EAAA,WAAA;YACNd,IAAM,EAAA,CAAA;YACNwC,IAAM,EAAA;AACR;AACD,KAAA,CAAC0C,GAAG,CAAC,CAACM,KAAAA,IAAW;AAChB,YAAA,GAAGA,KAAK;AACRD,YAAAA,IAAAA,EAAMC,MAAMD,IAAI,GAAGxG,aAAcyG,CAAAA,KAAAA,CAAMD,IAAI,CAAIE,GAAAA,SAAAA;YAC/CL,KAAOrG,EAAAA,aAAAA,CAAcyG,MAAMJ,KAAK;SAClC,CAAA,CAAA;IAEA,qBACE1F,GAAA,CAACgG,KAAKnG,IAAI,EAAA;QAACoG,GAAK,EAAA,CAAA;kBACbO,IAAKhB,CAAAA,GAAG,CAAC,CAAC,EAAElF,IAAI,EAAE,GAAGwF,KAAO,EAAA,iBAC3B9F,GAACgG,CAAAA,IAAAA,CAAKE,IAAI,EAAA;gBAAkBC,GAAK7F,EAAAA,IAAAA;gBAAM8F,SAAU,EAAA,QAAA;gBAASC,UAAW,EAAA,SAAA;AACnE,gBAAA,QAAA,gBAAArG,GAACsG,CAAAA,YAAAA,EAAAA;AAAc,oBAAA,GAAGR;;AADJA,aAAAA,EAAAA,KAAAA,CAAM1E,IAAI,CAAA;;AAMlC;AAEA;;qGAIA,MAAMkF,eAAe,CAACR,KAAAA,GAAAA;AACpB,IAAA,OAAQA,MAAMhD,IAAI;AAChB;;;AAGC,QACD,KAAK,aAAA;AACH,YAAA,qBAAO9C,GAACyG,CAAAA,gBAAAA,EAAAA;AAAkB,gBAAA,GAAGX;;AAC/B,QAAA;AACE,YAAA,qBAAO9F,GAAC0G,CAAAA,aAAAA,EAAAA;AAAe,gBAAA,GAAGZ;;AAC9B;AACF,CAAA;AAEA,MAAMW,mBAAmB,CAAC,EACxBtH,QAAQ,EACR0G,IAAI,EACJH,KAAK,EACLtE,IAAI,EACJmE,OAAO,EACPK,WAAW,EACXzE,QAAQ,EACqC,GAAA;IAC7C,MAAM,EAAE+C,KAAK,EAAEtB,KAAK,EAAE+D,QAAQ,EAAE,GAAGC,QAASxF,CAAAA,IAAAA,CAAAA;AAC5C,IAAA,MAAM,EAAE6D,IAAAA,EAAMC,cAAiB,GAAA,EAAE,EAAE,GAAGC,yBAAAA,EAAAA;AAEtC,IAAA,MAAM0B,eAAe,CAAC3C,KAAAA,GAAAA;QACpB,IAAImB,KAAAA,CAAMC,OAAO,CAACJ,cAAiB,CAAA,EAAA;;YAEjC,MAAMO,MAAAA,GAASP,eAAe4B,IAAI,CAAC,CAACrB,MAAWA,GAAAA,MAAAA,CAAOzE,IAAI,KAAKkD,KAAAA,CAAAA;AAE/DyC,YAAAA,QAAAA,CAASvF,IAAM8C,EAAAA,KAAAA,CAAAA;;YAEfyC,QAAS,CAAA,MAAA,EAAQlB,OAAOrE,IAAI,CAAA;SACvB,MAAA;AACLuF,YAAAA,QAAAA,CAASvF,IAAM8C,EAAAA,KAAAA,CAAAA;AACjB;AACF,KAAA;IAEA,qBACEvE,IAAA,CAACoH,MAAMlH,IAAI,EAAA;QAAC+C,KAAOA,EAAAA,KAAAA;QAAOiD,IAAMA,EAAAA,IAAAA;QAAMzE,IAAMA,EAAAA,IAAAA;QAAMD,QAAUA,EAAAA,QAAAA;;AAC1D,0BAAAnB,GAAA,CAAC+G,MAAMC,KAAK,EAAA;AAAEtB,gBAAAA,QAAAA,EAAAA;;0BACd1F,GAACiH,CAAAA,YAAAA,EAAAA;gBACC9H,QAAUA,EAAAA,QAAAA;;gBAEVwH,QAAUE,EAAAA,YAAAA;gBACVjB,WAAaA,EAAAA,WAAAA;gBACb1B,KAAOA,EAAAA,KAAAA;AAENqB,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQC,GAAG,CAAC,CAAC0B,MAAAA,iBACZlH,GAACmH,CAAAA,kBAAAA,EAAAA;AAAmBjD,wBAAAA,KAAAA,EAAOgD,OAAOhD,KAAK;AACpCgD,wBAAAA,QAAAA,EAAAA,MAAAA,CAAOxB;AADoCwB,qBAAAA,EAAAA,MAAAA,CAAOhD,KAAK,CAAA;;AAK9D,0BAAAlE,GAAA,CAAC+G,MAAMK,KAAK,EAAA,EAAA,CAAA;AACZ,0BAAApH,GAAA,CAAC+G,MAAMM,IAAI,EAAA,EAAA;;;AAGjB,CAAA;;;;"}
@@ -88,7 +88,7 @@ const EditLocale = (props)=>{
88
88
  type: 'success',
89
89
  message: formatMessage({
90
90
  id: getTranslation.getTranslation('Settings.locales.modal.edit.success'),
91
- defaultMessage: 'Updated locale'
91
+ defaultMessage: 'Locale successfully edited'
92
92
  })
93
93
  });
94
94
  refetchPermissions();
@@ -1 +1 @@
1
- {"version":3,"file":"EditLocale.js","sources":["../../../admin/src/components/EditLocale.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n Form,\n FormHelpers,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Modal,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale, UpdateLocale } from '../../../shared/contracts/locales';\nimport { useUpdateLocaleMutation } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { AdvancedForm, BaseForm, LOCALE_SCHEMA, SubmitButton } from './CreateLocale';\n\n/* -------------------------------------------------------------------------------------------------\n * EditLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditLocaleProps extends Omit<EditModalProps, 'open' | 'onOpenChange'> {}\n\nconst EditLocale = (props: EditLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: props.name,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n <EditModal {...props} open={visible} onOpenChange={setVisible} />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditModalProps extends Pick<Locale, 'id' | 'isDefault' | 'name' | 'code'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\ntype FormValues = UpdateLocale.Request['body'] & { code: string };\n\n/**\n * @internal\n * @description Exported to be used when someone clicks on a table row.\n */\nconst EditModal = ({ id, code, isDefault, name, open, onOpenChange }: EditModalProps) => {\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const refetchPermissions = useAuth('EditModal', (state) => state.refetchPermissions);\n const { formatMessage } = useIntl();\n const titleId = useId();\n\n const [updateLocale] = useUpdateLocaleMutation();\n const handleSubmit = async (\n { code: _code, ...data }: FormValues,\n helpers: FormHelpers<FormValues>\n ) => {\n try {\n /**\n * We don't need to send the code, because the\n * code can never be changed.\n */\n const res = await updateLocale({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.edit.success'),\n defaultMessage: 'Updated locale',\n }),\n });\n\n refetchPermissions();\n onOpenChange(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Root open={open} onOpenChange={onOpenChange}>\n <Modal.Content>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={{\n code,\n name,\n isDefault,\n }}\n validationSchema={LOCALE_SCHEMA}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit a locale',\n },\n {\n name,\n }\n )}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider />\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm mode=\"edit\" />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm isDefaultLocale={isDefault} />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { EditLocale, EditModal };\n"],"names":["EditLocale","props","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","_Fragment","_jsx","IconButton","onClick","label","id","getTranslation","defaultMessage","name","variant","Pencil","EditModal","open","onOpenChange","code","isDefault","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","refetchPermissions","useAuth","state","titleId","useId","updateLocale","useUpdateLocaleMutation","handleSubmit","_code","data","helpers","res","isBaseQueryError","error","setErrors","type","message","err","Modal","Root","Content","Form","method","onSubmit","initialValues","validationSchema","LOCALE_SCHEMA","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","Trigger","value","Divider","Box","paddingTop","paddingBottom","BaseForm","mode","AdvancedForm","isDefaultLocale","Footer","Close","Button","SubmitButton"],"mappings":"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"}
1
+ {"version":3,"file":"EditLocale.js","sources":["../../../admin/src/components/EditLocale.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n Form,\n FormHelpers,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Modal,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale, UpdateLocale } from '../../../shared/contracts/locales';\nimport { useUpdateLocaleMutation } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { AdvancedForm, BaseForm, LOCALE_SCHEMA, SubmitButton } from './CreateLocale';\n\n/* -------------------------------------------------------------------------------------------------\n * EditLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditLocaleProps extends Omit<EditModalProps, 'open' | 'onOpenChange'> {}\n\nconst EditLocale = (props: EditLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: props.name,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n <EditModal {...props} open={visible} onOpenChange={setVisible} />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditModalProps extends Pick<Locale, 'id' | 'isDefault' | 'name' | 'code'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\ntype FormValues = UpdateLocale.Request['body'] & { code: string };\n\n/**\n * @internal\n * @description Exported to be used when someone clicks on a table row.\n */\nconst EditModal = ({ id, code, isDefault, name, open, onOpenChange }: EditModalProps) => {\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const refetchPermissions = useAuth('EditModal', (state) => state.refetchPermissions);\n const { formatMessage } = useIntl();\n const titleId = useId();\n\n const [updateLocale] = useUpdateLocaleMutation();\n const handleSubmit = async (\n { code: _code, ...data }: FormValues,\n helpers: FormHelpers<FormValues>\n ) => {\n try {\n /**\n * We don't need to send the code, because the\n * code can never be changed.\n */\n const res = await updateLocale({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.edit.success'),\n defaultMessage: 'Locale successfully edited',\n }),\n });\n\n refetchPermissions();\n onOpenChange(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Root open={open} onOpenChange={onOpenChange}>\n <Modal.Content>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={{\n code,\n name,\n isDefault,\n }}\n validationSchema={LOCALE_SCHEMA}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit a locale',\n },\n {\n name,\n }\n )}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider />\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm mode=\"edit\" />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm isDefaultLocale={isDefault} />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { EditLocale, EditModal };\n"],"names":["EditLocale","props","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","_Fragment","_jsx","IconButton","onClick","label","id","getTranslation","defaultMessage","name","variant","Pencil","EditModal","open","onOpenChange","code","isDefault","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","refetchPermissions","useAuth","state","titleId","useId","updateLocale","useUpdateLocaleMutation","handleSubmit","_code","data","helpers","res","isBaseQueryError","error","setErrors","type","message","err","Modal","Root","Content","Form","method","onSubmit","initialValues","validationSchema","LOCALE_SCHEMA","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","Trigger","value","Divider","Box","paddingTop","paddingBottom","BaseForm","mode","AdvancedForm","isDefaultLocale","Footer","Close","Button","SubmitButton"],"mappings":"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"}
@@ -67,7 +67,7 @@ const EditLocale = (props)=>{
67
67
  type: 'success',
68
68
  message: formatMessage({
69
69
  id: getTranslation('Settings.locales.modal.edit.success'),
70
- defaultMessage: 'Updated locale'
70
+ defaultMessage: 'Locale successfully edited'
71
71
  })
72
72
  });
73
73
  refetchPermissions();
@@ -1 +1 @@
1
- {"version":3,"file":"EditLocale.mjs","sources":["../../../admin/src/components/EditLocale.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n Form,\n FormHelpers,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Modal,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale, UpdateLocale } from '../../../shared/contracts/locales';\nimport { useUpdateLocaleMutation } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { AdvancedForm, BaseForm, LOCALE_SCHEMA, SubmitButton } from './CreateLocale';\n\n/* -------------------------------------------------------------------------------------------------\n * EditLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditLocaleProps extends Omit<EditModalProps, 'open' | 'onOpenChange'> {}\n\nconst EditLocale = (props: EditLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: props.name,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n <EditModal {...props} open={visible} onOpenChange={setVisible} />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditModalProps extends Pick<Locale, 'id' | 'isDefault' | 'name' | 'code'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\ntype FormValues = UpdateLocale.Request['body'] & { code: string };\n\n/**\n * @internal\n * @description Exported to be used when someone clicks on a table row.\n */\nconst EditModal = ({ id, code, isDefault, name, open, onOpenChange }: EditModalProps) => {\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const refetchPermissions = useAuth('EditModal', (state) => state.refetchPermissions);\n const { formatMessage } = useIntl();\n const titleId = useId();\n\n const [updateLocale] = useUpdateLocaleMutation();\n const handleSubmit = async (\n { code: _code, ...data }: FormValues,\n helpers: FormHelpers<FormValues>\n ) => {\n try {\n /**\n * We don't need to send the code, because the\n * code can never be changed.\n */\n const res = await updateLocale({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.edit.success'),\n defaultMessage: 'Updated locale',\n }),\n });\n\n refetchPermissions();\n onOpenChange(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Root open={open} onOpenChange={onOpenChange}>\n <Modal.Content>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={{\n code,\n name,\n isDefault,\n }}\n validationSchema={LOCALE_SCHEMA}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit a locale',\n },\n {\n name,\n }\n )}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider />\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm mode=\"edit\" />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm isDefaultLocale={isDefault} />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { EditLocale, EditModal };\n"],"names":["EditLocale","props","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","_Fragment","_jsx","IconButton","onClick","label","id","getTranslation","defaultMessage","name","variant","Pencil","EditModal","open","onOpenChange","code","isDefault","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","refetchPermissions","useAuth","state","titleId","useId","updateLocale","useUpdateLocaleMutation","handleSubmit","_code","data","helpers","res","isBaseQueryError","error","setErrors","type","message","err","Modal","Root","Content","Form","method","onSubmit","initialValues","validationSchema","LOCALE_SCHEMA","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","Trigger","value","Divider","Box","paddingTop","paddingBottom","BaseForm","mode","AdvancedForm","isDefaultLocale","Footer","Close","Button","SubmitButton"],"mappings":";;;;;;;;;;;AAoCA,MAAMA,aAAa,CAACC,KAAAA,GAAAA;IAClB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IAE7C,qBACEC,IAAA,CAAAC,QAAA,EAAA;;0BACEC,GAACC,CAAAA,UAAAA,EAAAA;AACCC,gBAAAA,OAAAA,EAAS,IAAMP,UAAW,CAAA,IAAA,CAAA;AAC1BQ,gBAAAA,KAAAA,EAAOX,aACL,CAAA;AACEY,oBAAAA,EAAAA,EAAIC,cAAe,CAAA,4BAAA,CAAA;oBACnBC,cAAgB,EAAA;iBAElB,EAAA;AACEC,oBAAAA,IAAAA,EAAMhB,MAAMgB;AACd,iBAAA,CAAA;gBAEFC,OAAQ,EAAA,OAAA;AAER,gBAAA,QAAA,gBAAAR,GAACS,CAAAA,MAAAA,EAAAA,EAAAA;;0BAEHT,GAACU,CAAAA,SAAAA,EAAAA;AAAW,gBAAA,GAAGnB,KAAK;gBAAEoB,IAAMjB,EAAAA,OAAAA;gBAASkB,YAAcjB,EAAAA;;;;AAGzD;AAaA;;;AAGC,IACKe,MAAAA,SAAAA,GAAY,CAAC,EAAEN,EAAE,EAAES,IAAI,EAAEC,SAAS,EAAEP,IAAI,EAAEI,IAAI,EAAEC,YAAY,EAAkB,GAAA;IAClF,MAAM,EAAEG,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EACJC,uBAAyBC,EAAAA,cAAc,EACvCC,+BAAiCC,EAAAA,sBAAsB,EACxD,GAAGC,kBAAAA,EAAAA;AACJ,IAAA,MAAMC,qBAAqBC,OAAQ,CAAA,WAAA,EAAa,CAACC,KAAAA,GAAUA,MAAMF,kBAAkB,CAAA;IACnF,MAAM,EAAE9B,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAMgC,OAAUC,GAAAA,KAAAA,EAAAA;IAEhB,MAAM,CAACC,aAAa,GAAGC,uBAAAA,EAAAA;IACvB,MAAMC,YAAAA,GAAe,OACnB,EAAEhB,IAAAA,EAAMiB,KAAK,EAAE,GAAGC,MAAkB,EACpCC,OAAAA,GAAAA;QAEA,IAAI;AACF;;;UAIA,MAAMC,GAAM,GAAA,MAAMN,YAAa,CAAA;AAC7BvB,gBAAAA,EAAAA;AACA,gBAAA,GAAG2B;AACL,aAAA,CAAA;AAEA,YAAA,IAAI,WAAWE,GAAK,EAAA;gBAClB,IAAIC,gBAAAA,CAAiBD,IAAIE,KAAK,CAAA,IAAKF,IAAIE,KAAK,CAAC5B,IAAI,KAAK,iBAAmB,EAAA;AACvEyB,oBAAAA,OAAAA,CAAQI,SAAS,CAAChB,sBAAuBa,CAAAA,GAAAA,CAAIE,KAAK,CAAA,CAAA;iBAC7C,MAAA;oBACLpB,kBAAmB,CAAA;wBAAEsB,IAAM,EAAA,QAAA;wBAAUC,OAASpB,EAAAA,cAAAA,CAAee,IAAIE,KAAK;AAAE,qBAAA,CAAA;AAC1E;AAEA,gBAAA;AACF;YAEApB,kBAAmB,CAAA;gBACjBsB,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAS9C,aAAc,CAAA;AACrBY,oBAAAA,EAAAA,EAAIC,cAAe,CAAA,qCAAA,CAAA;oBACnBC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AAEAgB,YAAAA,kBAAAA,EAAAA;YACAV,YAAa,CAAA,KAAA,CAAA;AACf,SAAA,CAAE,OAAO2B,GAAK,EAAA;YACZxB,kBAAmB,CAAA;gBACjBsB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAAS9C,aAAc,CAAA;oBACrBY,EAAI,EAAA,oBAAA;oBACJE,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;AACF;AACF,KAAA;IAEA,qBACEN,GAAA,CAACwC,MAAMC,IAAI,EAAA;QAAC9B,IAAMA,EAAAA,IAAAA;QAAMC,YAAcA,EAAAA,YAAAA;gCACpCZ,GAAA,CAACwC,MAAME,OAAO,EAAA;AACZ,YAAA,QAAA,gBAAA5C,IAAC6C,CAAAA,IAAAA,EAAAA;gBACCC,MAAO,EAAA,KAAA;gBACPC,QAAUhB,EAAAA,YAAAA;gBACViB,aAAe,EAAA;AACbjC,oBAAAA,IAAAA;AACAN,oBAAAA,IAAAA;AACAO,oBAAAA;AACF,iBAAA;gBACAiC,gBAAkBC,EAAAA,aAAAA;;AAElB,kCAAAhD,GAAA,CAACwC,MAAMS,MAAM,EAAA;gDACXjD,GAAA,CAACwC,MAAMU,KAAK,EAAA;sCACT1D,aACC,CAAA;AACEY,gCAAAA,EAAAA,EAAIC,cAAe,CAAA,4BAAA,CAAA;gCACnBC,cAAgB,EAAA;6BAElB,EAAA;AACEC,gCAAAA;AACF,6BAAA;;;AAIN,kCAAAP,GAAA,CAACwC,MAAMW,IAAI,EAAA;gDACTrD,IAAA,CAACsD,KAAKX,IAAI,EAAA;4BAACjC,OAAQ,EAAA,QAAA;4BAAS6C,YAAa,EAAA,OAAA;;8CACvCvD,IAACwD,CAAAA,IAAAA,EAAAA;oCAAKC,cAAe,EAAA,eAAA;;sDACnBvD,GAACwD,CAAAA,UAAAA,EAAAA;4CAAWC,GAAI,EAAA,IAAA;4CAAKjD,OAAQ,EAAA,MAAA;4CAAOJ,EAAIqB,EAAAA,OAAAA;sDACrCjC,aAAc,CAAA;AACbY,gDAAAA,EAAAA,EAAIC,cAAe,CAAA,8BAAA,CAAA;gDACnBC,cAAgB,EAAA;AAClB,6CAAA;;AAEF,sDAAAR,IAAA,CAACsD,KAAKM,IAAI,EAAA;4CAACC,iBAAiBlC,EAAAA,OAAAA;;AAC1B,8DAAAzB,GAAA,CAACoD,KAAKQ,OAAO,EAAA;oDAACC,KAAM,EAAA,OAAA;8DACjBrE,aAAc,CAAA;AACbY,wDAAAA,EAAAA,EAAIC,cAAe,CAAA,6BAAA,CAAA;wDACnBC,cAAgB,EAAA;AAClB,qDAAA;;AAEF,8DAAAN,GAAA,CAACoD,KAAKQ,OAAO,EAAA;oDAACC,KAAM,EAAA,UAAA;8DACjBrE,aAAc,CAAA;AACbY,wDAAAA,EAAAA,EAAIC,cAAe,CAAA,iCAAA,CAAA;wDACnBC,cAAgB,EAAA;AAClB,qDAAA;;;;;;8CAINN,GAAC8D,CAAAA,OAAAA,EAAAA,EAAAA,CAAAA;8CACDhE,IAACiE,CAAAA,GAAAA,EAAAA;oCAAIC,UAAY,EAAA,CAAA;oCAAGC,aAAe,EAAA,CAAA;;AACjC,sDAAAjE,GAAA,CAACoD,KAAKV,OAAO,EAAA;4CAACmB,KAAM,EAAA,OAAA;AAClB,4CAAA,QAAA,gBAAA7D,GAACkE,CAAAA,QAAAA,EAAAA;gDAASC,IAAK,EAAA;;;AAEjB,sDAAAnE,GAAA,CAACoD,KAAKV,OAAO,EAAA;4CAACmB,KAAM,EAAA,UAAA;AAClB,4CAAA,QAAA,gBAAA7D,GAACoE,CAAAA,YAAAA,EAAAA;gDAAaC,eAAiBvD,EAAAA;;;;;;;;AAKvC,kCAAAhB,IAAA,CAAC0C,MAAM8B,MAAM,EAAA;;AACX,0CAAAtE,GAAA,CAACwC,MAAM+B,KAAK,EAAA;AACV,gCAAA,QAAA,gBAAAvE,GAACwE,CAAAA,MAAAA,EAAAA;oCAAOhE,OAAQ,EAAA,UAAA;8CACbhB,aAAc,CAAA;wCAAEY,EAAI,EAAA,8BAAA;wCAAgCE,cAAgB,EAAA;AAAS,qCAAA;;;0CAGlFN,GAACyE,CAAAA,YAAAA,EAAAA,EAAAA;;;;;;;AAMb;;;;"}
1
+ {"version":3,"file":"EditLocale.mjs","sources":["../../../admin/src/components/EditLocale.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n Form,\n FormHelpers,\n useAuth,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Modal,\n Tabs,\n Typography,\n useId,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Locale, UpdateLocale } from '../../../shared/contracts/locales';\nimport { useUpdateLocaleMutation } from '../services/locales';\nimport { isBaseQueryError } from '../utils/baseQuery';\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { AdvancedForm, BaseForm, LOCALE_SCHEMA, SubmitButton } from './CreateLocale';\n\n/* -------------------------------------------------------------------------------------------------\n * EditLocale\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditLocaleProps extends Omit<EditModalProps, 'open' | 'onOpenChange'> {}\n\nconst EditLocale = (props: EditLocaleProps) => {\n const { formatMessage } = useIntl();\n const [visible, setVisible] = React.useState(false);\n\n return (\n <>\n <IconButton\n onClick={() => setVisible(true)}\n label={formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit {name} locale',\n },\n {\n name: props.name,\n }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n <EditModal {...props} open={visible} onOpenChange={setVisible} />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EditModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface EditModalProps extends Pick<Locale, 'id' | 'isDefault' | 'name' | 'code'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\ntype FormValues = UpdateLocale.Request['body'] & { code: string };\n\n/**\n * @internal\n * @description Exported to be used when someone clicks on a table row.\n */\nconst EditModal = ({ id, code, isDefault, name, open, onOpenChange }: EditModalProps) => {\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const refetchPermissions = useAuth('EditModal', (state) => state.refetchPermissions);\n const { formatMessage } = useIntl();\n const titleId = useId();\n\n const [updateLocale] = useUpdateLocaleMutation();\n const handleSubmit = async (\n { code: _code, ...data }: FormValues,\n helpers: FormHelpers<FormValues>\n ) => {\n try {\n /**\n * We don't need to send the code, because the\n * code can never be changed.\n */\n const res = await updateLocale({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n helpers.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({ type: 'danger', message: formatAPIError(res.error) });\n }\n\n return;\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: getTranslation('Settings.locales.modal.edit.success'),\n defaultMessage: 'Locale successfully edited',\n }),\n });\n\n refetchPermissions();\n onOpenChange(false);\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred, please try again',\n }),\n });\n }\n };\n\n return (\n <Modal.Root open={open} onOpenChange={onOpenChange}>\n <Modal.Content>\n <Form\n method=\"PUT\"\n onSubmit={handleSubmit}\n initialValues={{\n code,\n name,\n isDefault,\n }}\n validationSchema={LOCALE_SCHEMA}\n >\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n {\n id: getTranslation('Settings.list.actions.edit'),\n defaultMessage: 'Edit a locale',\n },\n {\n name,\n }\n )}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Tabs.Root variant=\"simple\" defaultValue=\"basic\">\n <Flex justifyContent=\"space-between\">\n <Typography tag=\"h2\" variant=\"beta\" id={titleId}>\n {formatMessage({\n id: getTranslation('Settings.locales.modal.title'),\n defaultMessage: 'Configuration',\n })}\n </Typography>\n <Tabs.List aria-labelledby={titleId}>\n <Tabs.Trigger value=\"basic\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.base'),\n defaultMessage: 'Basic settings',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"advanced\">\n {formatMessage({\n id: getTranslation('Settings.locales.modal.advanced'),\n defaultMessage: 'Advanced settings',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Flex>\n <Divider />\n <Box paddingTop={7} paddingBottom={7}>\n <Tabs.Content value=\"basic\">\n <BaseForm mode=\"edit\" />\n </Tabs.Content>\n <Tabs.Content value=\"advanced\">\n <AdvancedForm isDefaultLocale={isDefault} />\n </Tabs.Content>\n </Box>\n </Tabs.Root>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Close>\n <SubmitButton />\n </Modal.Footer>\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nexport { EditLocale, EditModal };\n"],"names":["EditLocale","props","formatMessage","useIntl","visible","setVisible","React","useState","_jsxs","_Fragment","_jsx","IconButton","onClick","label","id","getTranslation","defaultMessage","name","variant","Pencil","EditModal","open","onOpenChange","code","isDefault","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","refetchPermissions","useAuth","state","titleId","useId","updateLocale","useUpdateLocaleMutation","handleSubmit","_code","data","helpers","res","isBaseQueryError","error","setErrors","type","message","err","Modal","Root","Content","Form","method","onSubmit","initialValues","validationSchema","LOCALE_SCHEMA","Header","Title","Body","Tabs","defaultValue","Flex","justifyContent","Typography","tag","List","aria-labelledby","Trigger","value","Divider","Box","paddingTop","paddingBottom","BaseForm","mode","AdvancedForm","isDefaultLocale","Footer","Close","Button","SubmitButton"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/i18n",
3
- "version": "5.23.3",
3
+ "version": "5.23.5",
4
4
  "description": "Create read and update content in different languages, both from the Admin Panel and from the API",
5
5
  "repository": {
6
6
  "type": "git",
@@ -59,7 +59,7 @@
59
59
  "@reduxjs/toolkit": "1.9.7",
60
60
  "@strapi/design-system": "2.0.0-rc.29",
61
61
  "@strapi/icons": "2.0.0-rc.29",
62
- "@strapi/utils": "5.23.3",
62
+ "@strapi/utils": "5.23.5",
63
63
  "lodash": "4.17.21",
64
64
  "qs": "6.11.1",
65
65
  "react-intl": "6.6.2",
@@ -68,10 +68,10 @@
68
68
  "zod": "3.25.67"
69
69
  },
70
70
  "devDependencies": {
71
- "@strapi/admin": "5.23.3",
72
- "@strapi/admin-test-utils": "5.23.3",
73
- "@strapi/content-manager": "5.23.3",
74
- "@strapi/types": "5.23.3",
71
+ "@strapi/admin": "5.23.5",
72
+ "@strapi/admin-test-utils": "5.23.5",
73
+ "@strapi/content-manager": "5.23.5",
74
+ "@strapi/types": "5.23.5",
75
75
  "@testing-library/react": "15.0.7",
76
76
  "@testing-library/user-event": "14.5.2",
77
77
  "msw": "1.3.0",