{"version":3,"file":"CheckboxConfirmation.mjs","sources":["../../../admin/src/components/CheckboxConfirmation.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Checkbox, Dialog, Field, Flex, Typography } from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTranslation } from '../utils/getTranslation';\n\nconst TextAlignTypography = styled(Typography)`\n  text-align: center;\n`;\n\ninterface IntlMessage extends MessageDescriptor {\n  values: object;\n}\n\ninterface CheckboxConfirmationProps {\n  description: IntlMessage;\n  intlLabel: IntlMessage;\n  isCreating?: boolean;\n  name: string;\n  onChange: (event: { target: { name: string; value: boolean; type: string } }) => void;\n  value: boolean;\n}\n\nconst CheckboxConfirmation = ({\n  description,\n  isCreating = false,\n  intlLabel,\n  name,\n  onChange,\n  value,\n}: CheckboxConfirmationProps) => {\n  const { formatMessage } = useIntl();\n  const [isOpen, setIsOpen] = React.useState(false);\n\n  const handleChange = (value: boolean) => {\n    if (isCreating || value) {\n      return onChange({ target: { name, value, type: 'checkbox' } });\n    }\n\n    if (!value) {\n      return setIsOpen(true);\n    }\n\n    return null;\n  };\n\n  const handleConfirm = () => {\n    onChange({ target: { name, value: false, type: 'checkbox' } });\n  };\n\n  const label = intlLabel.id\n    ? formatMessage(\n        { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n        { ...intlLabel.values }\n      )\n    : name;\n\n  const hint = description\n    ? formatMessage(\n        { id: description.id, defaultMessage: description.defaultMessage },\n        { ...description.values }\n      )\n    : '';\n\n  return (\n    <Dialog.Root open={isOpen} onOpenChange={setIsOpen}>\n      <Field.Root hint={hint} name={name}>\n        <Checkbox onCheckedChange={handleChange} checked={value}>\n          {label}\n        </Checkbox>\n        <Field.Hint />\n      </Field.Root>\n      <Dialog.Content>\n        <Dialog.Header>\n          {formatMessage({\n            id: getTranslation('CheckboxConfirmation.Modal.title'),\n            defaultMessage: 'Disable localization',\n          })}\n        </Dialog.Header>\n        <Dialog.Body icon={<WarningCircle />}>\n          <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n            <Flex justifyContent=\"center\">\n              <TextAlignTypography>\n                {formatMessage({\n                  id: getTranslation('CheckboxConfirmation.Modal.content'),\n                  defaultMessage:\n                    'Disabling localization will engender the deletion of all your content but the one associated to your default locale (if existing).',\n                })}\n              </TextAlignTypography>\n            </Flex>\n            <Flex justifyContent=\"center\">\n              <Typography fontWeight=\"semiBold\">\n                {formatMessage({\n                  id: getTranslation('CheckboxConfirmation.Modal.body'),\n                  defaultMessage: 'Do you want to disable it?',\n                })}\n              </Typography>\n            </Flex>\n          </Flex>\n        </Dialog.Body>\n        <Dialog.Footer>\n          <Dialog.Cancel>\n            <Button variant=\"tertiary\">\n              {formatMessage({\n                id: 'components.popUpWarning.button.cancel',\n                defaultMessage: 'No, cancel',\n              })}\n            </Button>\n          </Dialog.Cancel>\n          <Dialog.Action>\n            <Button variant=\"danger-light\" onClick={handleConfirm}>\n              {formatMessage({\n                id: getTranslation('CheckboxConfirmation.Modal.button-confirm'),\n                defaultMessage: 'Yes, disable',\n              })}\n            </Button>\n          </Dialog.Action>\n        </Dialog.Footer>\n      </Dialog.Content>\n    </Dialog.Root>\n  );\n};\n\nexport { CheckboxConfirmation };\n"],"names":["TextAlignTypography","styled","Typography","CheckboxConfirmation","description","isCreating","intlLabel","name","onChange","value","formatMessage","useIntl","isOpen","setIsOpen","React","useState","handleChange","target","type","handleConfirm","label","id","defaultMessage","values","hint","_jsxs","Dialog","Root","open","onOpenChange","Field","_jsx","Checkbox","onCheckedChange","checked","Hint","Content","Header","getTranslation","Body","icon","WarningCircle","Flex","direction","alignItems","gap","justifyContent","fontWeight","Footer","Cancel","Button","variant","Action","onClick"],"mappings":"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"}