{"version":3,"file":"LocaleTable.mjs","sources":["../../../admin/src/components/LocaleTable.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n  Flex,\n  Table,\n  Tbody,\n  Td,\n  Th,\n  Thead,\n  Tr,\n  Typography,\n  VisuallyHidden,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nimport { DeleteLocale } from './DeleteLocale';\nimport { EditLocale, EditModal } from './EditLocale';\n\nimport type { Locale } from '../../../shared/contracts/locales';\n\n/* -------------------------------------------------------------------------------------------------\n * LocaleTable\n * -----------------------------------------------------------------------------------------------*/\n\ntype LocaleTableProps = {\n  locales?: Locale[];\n  canDelete?: boolean;\n  canUpdate?: boolean;\n  onDeleteLocale?: (locale: Locale) => void;\n  onEditLocale?: (locale: Locale) => void;\n};\n\nconst LocaleTable = ({ locales = [], canDelete, canUpdate }: LocaleTableProps) => {\n  const [editLocaleId, setEditLocaleId] = React.useState<Locale['id']>();\n  const { formatMessage } = useIntl();\n\n  const handleClick = (localeId: Locale['id']) => () => {\n    if (canUpdate) {\n      setEditLocaleId(localeId);\n    }\n  };\n\n  return (\n    <Table colCount={4} rowCount={locales.length + 1}>\n      <Thead>\n        <Tr>\n          <Th>\n            <Typography variant=\"sigma\" textColor=\"neutral600\">\n              {formatMessage({\n                id: getTranslation('Settings.locales.row.id'),\n                defaultMessage: 'ID',\n              })}\n            </Typography>\n          </Th>\n          <Th>\n            <Typography variant=\"sigma\" textColor=\"neutral600\">\n              {formatMessage({\n                id: getTranslation('Settings.locales.row.displayName'),\n                defaultMessage: 'Display name',\n              })}\n            </Typography>\n          </Th>\n          <Th>\n            <Typography variant=\"sigma\" textColor=\"neutral600\">\n              {formatMessage({\n                id: getTranslation('Settings.locales.row.default-locale'),\n                defaultMessage: 'Default locale',\n              })}\n            </Typography>\n          </Th>\n          <Th>\n            <VisuallyHidden>Actions</VisuallyHidden>\n          </Th>\n        </Tr>\n      </Thead>\n      <Tbody>\n        {locales.map((locale) => (\n          <React.Fragment key={locale.id}>\n            <Tr\n              onClick={handleClick(locale.id)}\n              style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n            >\n              <Td>\n                <Typography textColor=\"neutral800\">{locale.id}</Typography>\n              </Td>\n              <Td>\n                <Typography textColor=\"neutral800\">{locale.name}</Typography>\n              </Td>\n              <Td>\n                <Typography textColor=\"neutral800\">\n                  {locale.isDefault\n                    ? formatMessage({\n                        id: getTranslation('Settings.locales.default'),\n                        defaultMessage: 'Default',\n                      })\n                    : null}\n                </Typography>\n              </Td>\n              <Td>\n                <Flex gap={1} justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n                  {canUpdate && <EditLocale {...locale} />}\n                  {canDelete && !locale.isDefault && <DeleteLocale {...locale} />}\n                </Flex>\n              </Td>\n            </Tr>\n            <EditModal\n              {...locale}\n              onOpenChange={() => setEditLocaleId(undefined)}\n              open={editLocaleId === locale.id}\n            />\n          </React.Fragment>\n        ))}\n      </Tbody>\n    </Table>\n  );\n};\n\nexport { LocaleTable };\nexport type { LocaleTableProps };\n"],"names":["LocaleTable","locales","canDelete","canUpdate","editLocaleId","setEditLocaleId","React","useState","formatMessage","useIntl","handleClick","localeId","_jsxs","Table","colCount","rowCount","length","_jsx","Thead","Tr","Th","Typography","variant","textColor","id","getTranslation","defaultMessage","VisuallyHidden","Tbody","map","locale","Fragment","onClick","style","cursor","Td","name","isDefault","Flex","gap","justifyContent","e","stopPropagation","EditLocale","DeleteLocale","EditModal","onOpenChange","undefined","open"],"mappings":"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"}