import React, { useRef } from 'react'; import PropTypes from 'prop-types'; import { Form } from '@strapi/helper-plugin'; import { useIntl } from 'react-intl'; import { Formik } from 'formik'; import CheckIcon from '@strapi/icons/CheckIcon'; import { ModalLayout, ModalHeader, ModalBody, ModalFooter } from '@strapi/parts/ModalLayout'; import { TabGroup, Tabs, Tab, TabPanels, TabPanel } from '@strapi/parts/Tabs'; import { Row } from '@strapi/parts/Row'; import { Box } from '@strapi/parts/Box'; import { Button } from '@strapi/parts/Button'; import { Divider } from '@strapi/parts/Divider'; import { ButtonText, H2 } from '@strapi/parts/Text'; import localeFormSchema from '../../schemas'; import useEditLocale from '../../hooks/useEditLocale'; import { getTrad } from '../../utils'; import BaseForm from './BaseForm'; import AdvancedForm from './AdvancedForm'; const ModalEdit = ({ locale, onClose }) => { const { isEditing, editLocale } = useEditLocale(); const shouldUpdateMenu = useRef(false); const { formatMessage } = useIntl(); const handleSubmit = ({ displayName, isDefault }) => { const id = locale.id; const name = displayName || locale.code; return editLocale(id, { name, isDefault }) .then(() => { shouldUpdateMenu.current = true; }) .then(onClose); }; return ( {({ handleSubmit }) => (
{formatMessage({ id: getTrad('Settings.list.actions.edit') })}

{formatMessage({ id: getTrad('Settings.locales.modal.title'), })}

{formatMessage({ id: getTrad('Settings.locales.modal.base'), })} {formatMessage({ id: getTrad('Settings.locales.modal.advanced'), })}
{formatMessage({ id: 'app.components.Button.cancel' })} } endActions={ } /> )}
); }; ModalEdit.defaultProps = { locale: undefined, }; ModalEdit.propTypes = { locale: PropTypes.shape({ id: PropTypes.number.isRequired, name: PropTypes.string.isRequired, code: PropTypes.string.isRequired, isDefault: PropTypes.bool.isRequired, }), onClose: PropTypes.func.isRequired, }; export default ModalEdit;