@strapi/content-manager 5.33.4 → 5.35.0
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.
- package/dist/admin/components/ActionsDrawer.js +204 -0
- package/dist/admin/components/ActionsDrawer.js.map +1 -0
- package/dist/admin/components/ActionsDrawer.mjs +183 -0
- package/dist/admin/components/ActionsDrawer.mjs.map +1 -0
- package/dist/admin/components/LeftMenu.js +13 -8
- package/dist/admin/components/LeftMenu.js.map +1 -1
- package/dist/admin/components/LeftMenu.mjs +13 -8
- package/dist/admin/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/history/components/VersionContent.js +22 -9
- package/dist/admin/history/components/VersionContent.js.map +1 -1
- package/dist/admin/history/components/VersionContent.mjs +23 -10
- package/dist/admin/history/components/VersionContent.mjs.map +1 -1
- package/dist/admin/history/components/VersionHeader.js +1 -0
- package/dist/admin/history/components/VersionHeader.js.map +1 -1
- package/dist/admin/history/components/VersionHeader.mjs +1 -0
- package/dist/admin/history/components/VersionHeader.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +92 -63
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +95 -66
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +64 -48
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +67 -51
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js +63 -31
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js.map +1 -1
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs +64 -32
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.js +30 -6
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.mjs +30 -6
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Heading.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +20 -5
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +20 -5
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +22 -12
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +22 -12
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +6 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +7 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +151 -10
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +152 -11
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js +52 -5
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs +53 -6
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +6 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +6 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js +21 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.mjs +24 -4
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js +21 -9
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs +21 -9
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.js +4 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.mjs +4 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +30 -13
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +32 -16
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/Header.js +91 -44
- package/dist/admin/pages/EditView/components/Header.js.map +1 -1
- package/dist/admin/pages/EditView/components/Header.mjs +92 -45
- package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/Panels.js +67 -15
- package/dist/admin/pages/EditView/components/Panels.js.map +1 -1
- package/dist/admin/pages/EditView/components/Panels.mjs +67 -18
- package/dist/admin/pages/EditView/components/Panels.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +8 -6
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +8 -6
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/preview/index.js +9 -3
- package/dist/admin/preview/index.js.map +1 -1
- package/dist/admin/preview/index.mjs +9 -3
- package/dist/admin/preview/index.mjs.map +1 -1
- package/dist/admin/src/components/ActionsDrawer.d.ts +19 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.d.ts +7 -2
- package/dist/admin/src/pages/EditView/components/Panels.d.ts +14 -2
- package/dist/admin/translations/de.json.js +165 -32
- package/dist/admin/translations/de.json.js.map +1 -1
- package/dist/admin/translations/de.json.mjs +165 -32
- package/dist/admin/translations/de.json.mjs.map +1 -1
- package/dist/admin/translations/en.json.js +5 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +5 -1
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +3 -1
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +3 -1
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +3 -1
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +3 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/admin/translations/zh-Hans.json.js +0 -44
- package/dist/admin/translations/zh-Hans.json.js.map +1 -1
- package/dist/admin/translations/zh-Hans.json.mjs +0 -44
- package/dist/admin/translations/zh-Hans.json.mjs.map +1 -1
- package/dist/server/controllers/collection-types.js +16 -13
- package/dist/server/controllers/collection-types.js.map +1 -1
- package/dist/server/controllers/collection-types.mjs +16 -13
- package/dist/server/controllers/collection-types.mjs.map +1 -1
- package/dist/server/controllers/relations.js +5 -2
- package/dist/server/controllers/relations.js.map +1 -1
- package/dist/server/controllers/relations.mjs +5 -2
- package/dist/server/controllers/relations.mjs.map +1 -1
- package/dist/server/controllers/utils/document-status.js +28 -0
- package/dist/server/controllers/utils/document-status.js.map +1 -0
- package/dist/server/controllers/utils/document-status.mjs +26 -0
- package/dist/server/controllers/utils/document-status.mjs.map +1 -0
- package/dist/server/services/components.js +68 -20
- package/dist/server/services/components.js.map +1 -1
- package/dist/server/services/components.mjs +69 -21
- package/dist/server/services/components.mjs.map +1 -1
- package/dist/server/services/permission-checker.js +23 -0
- package/dist/server/services/permission-checker.js.map +1 -1
- package/dist/server/services/permission-checker.mjs +23 -0
- package/dist/server/services/permission-checker.mjs.map +1 -1
- package/dist/server/services/utils/store.js +51 -4
- package/dist/server/services/utils/store.js.map +1 -1
- package/dist/server/services/utils/store.mjs +51 -4
- package/dist/server/services/utils/store.mjs.map +1 -1
- package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
- package/dist/server/src/controllers/relations.d.ts.map +1 -1
- package/dist/server/src/controllers/utils/document-status.d.ts +10 -0
- package/dist/server/src/controllers/utils/document-status.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +1 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/components.d.ts +6 -0
- package/dist/server/src/services/components.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +1 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission-checker.d.ts +1 -0
- package/dist/server/src/services/permission-checker.d.ts.map +1 -1
- package/dist/server/src/services/utils/store.d.ts +5 -1
- package/dist/server/src/services/utils/store.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WysiwygNav.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Button,\n Flex,\n IconButton,\n IconButtonGroup,\n SingleSelectOption,\n SingleSelect,\n Field,\n Menu,\n} from '@strapi/design-system';\nimport {\n Bold,\n BulletList,\n Code,\n Italic,\n Link,\n NumberList,\n Image,\n Quotes,\n StrikeThrough,\n Underline,\n HeadingOne,\n HeadingTwo,\n HeadingThree,\n HeadingFour,\n HeadingFive,\n HeadingSix,\n} from '@strapi/icons';\nimport { EditorFromTextArea } from 'codemirror5';\nimport { useIntl } from 'react-intl';\n\nimport { EditorToolbarObserver, type ObservedComponent } from '../../EditorToolbarObserver';\n\nimport { listHandler, markdownHandler, quoteAndCodeHandler, titleHandler } from './utils/utils';\n\ninterface WysiwygNavProps {\n disabled?: boolean;\n editorRef: React.MutableRefObject<EditorFromTextArea>;\n isExpandMode?: boolean;\n isPreviewMode?: boolean;\n onToggleMediaLib: () => void;\n onTogglePreviewMode?: () => void;\n}\n\n/**\n * TODO: refactor this mess.\n */\nconst WysiwygNav = ({\n disabled,\n editorRef,\n isPreviewMode,\n onToggleMediaLib,\n onTogglePreviewMode,\n}: WysiwygNavProps) => {\n const { formatMessage } = useIntl();\n const isDisabled = disabled || isPreviewMode;\n\n const handleActionClick = (\n value: string,\n currentEditorRef: React.MutableRefObject<EditorFromTextArea>\n ) => {\n switch (value) {\n case 'Link': {\n markdownHandler(currentEditorRef, value);\n break;\n }\n case 'Code':\n case 'Quote': {\n quoteAndCodeHandler(currentEditorRef, value);\n break;\n }\n case 'Bold':\n case 'Italic':\n case 'Underline':\n case 'Strikethrough': {\n markdownHandler(currentEditorRef, value);\n break;\n }\n case 'BulletList':\n case 'NumberList': {\n listHandler(currentEditorRef, value);\n break;\n }\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6': {\n titleHandler(currentEditorRef, value);\n break;\n }\n default: {\n // Nothing\n }\n }\n };\n\n const observedComponents: ObservedComponent[] = [\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Bold', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n >\n <Bold />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Italic', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n >\n <Italic />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Underline', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n >\n <Underline />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Strikethrough', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n >\n <StrikeThrough />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<Bold fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Bold', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Italic fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Italic', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Underline fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Underline', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<StrikeThrough fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Strikethrough', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-1',\n },\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('BulletList', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.bulletList',\n defaultMessage: 'Bulleted list',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.bulletList',\n defaultMessage: 'Bulleted list',\n })}\n >\n <BulletList />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('NumberList', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.numberList',\n defaultMessage: 'Numbered list',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.numberList',\n defaultMessage: 'Numbered list',\n })}\n >\n <NumberList />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<BulletList fill=\"neutral500\" />}\n onSelect={() => handleActionClick('BulletList', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.unorderedList',\n defaultMessage: 'Bulleted list',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<NumberList fill=\"neutral500\" />}\n onSelect={() => handleActionClick('NumberList', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.orderedList',\n defaultMessage: 'Numbered list',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-2',\n },\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Code', editorRef)}\n label={formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n name={formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n >\n <Code />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => {\n onToggleMediaLib();\n }}\n label={formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n >\n <Image />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Link', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n name={formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n >\n <Link />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Quote', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n >\n <Quotes />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<Code fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Code', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Image fill=\"neutral500\" />}\n onSelect={() => {\n onToggleMediaLib();\n }}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Link fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Link', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Quotes fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Quote', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-3',\n },\n ];\n\n return (\n <Flex\n padding={2}\n background=\"neutral100\"\n justifyContent=\"space-between\"\n borderRadius=\"0.4rem 0.4rem 0 0\"\n width=\"100%\"\n gap={4}\n >\n <Field.Root>\n <SingleSelect\n disabled={isDisabled}\n placeholder={formatMessage({\n id: 'components.Wysiwyg.selectOptions.title',\n defaultMessage: 'Headings',\n })}\n aria-label={formatMessage({\n id: 'components.Wysiwyg.selectOptions.title',\n defaultMessage: 'Headings',\n })}\n // @ts-expect-error – DS v2 will only allow strings.\n onChange={(value) => handleActionClick(value, editorRef)}\n size=\"S\"\n >\n <SingleSelectOption value=\"h1\" startIcon={<HeadingOne fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H1',\n defaultMessage: 'Heading 1',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h2\" startIcon={<HeadingTwo fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H2',\n defaultMessage: 'Heading 2',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h3\" startIcon={<HeadingThree fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H3',\n defaultMessage: 'Heading 3',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h4\" startIcon={<HeadingFour fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H4',\n defaultMessage: 'Heading 4',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h5\" startIcon={<HeadingFive fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H5',\n defaultMessage: 'Heading 5',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h6\" startIcon={<HeadingSix fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H6',\n defaultMessage: 'Heading 6',\n })}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n <Flex width=\"100%\" justifyContent=\"space-between\" overflow=\"hidden\">\n <Flex gap={2} overflow=\"hidden\" width=\"100%\">\n <EditorToolbarObserver\n menuTriggerVariant=\"tertiary\"\n observedComponents={observedComponents}\n />\n </Flex>\n\n {onTogglePreviewMode && (\n <Button onClick={onTogglePreviewMode} variant=\"tertiary\" minWidth=\"132px\">\n {isPreviewMode\n ? formatMessage({\n id: 'components.Wysiwyg.ToggleMode.markdown-mode',\n defaultMessage: 'Markdown mode',\n })\n : formatMessage({\n id: 'components.Wysiwyg.ToggleMode.preview-mode',\n defaultMessage: 'Preview mode',\n })}\n </Button>\n )}\n </Flex>\n </Flex>\n );\n};\n\nexport { WysiwygNav };\nexport type { WysiwygNavProps };\n"],"names":["WysiwygNav","disabled","editorRef","isPreviewMode","onToggleMediaLib","onTogglePreviewMode","formatMessage","useIntl","isDisabled","handleActionClick","value","currentEditorRef","markdownHandler","quoteAndCodeHandler","listHandler","titleHandler","observedComponents","toolbar","_jsxs","IconButtonGroup","_jsx","IconButton","onClick","label","id","defaultMessage","name","Bold","Italic","Underline","StrikeThrough","menu","_Fragment","Menu","Separator","Item","startIcon","fill","onSelect","Flex","tag","gap","key","BulletList","NumberList","Code","Image","Link","Quotes","padding","background","justifyContent","borderRadius","width","Field","Root","SingleSelect","placeholder","aria-label","onChange","size","SingleSelectOption","HeadingOne","HeadingTwo","HeadingThree","HeadingFour","HeadingFive","HeadingSix","overflow","EditorToolbarObserver","menuTriggerVariant","Button","variant","minWidth"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WysiwygNav.mjs","sources":["../../../../../../../admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useIsMobile } from '@strapi/admin/strapi-admin';\nimport {\n Button,\n Flex,\n IconButton,\n IconButtonGroup,\n SingleSelectOption,\n SingleSelect,\n Field,\n Menu,\n} from '@strapi/design-system';\nimport {\n Bold,\n BulletList,\n Code,\n Italic,\n Link,\n NumberList,\n Image,\n Quotes,\n StrikeThrough,\n Underline,\n HeadingOne,\n HeadingTwo,\n HeadingThree,\n HeadingFour,\n HeadingFive,\n HeadingSix,\n} from '@strapi/icons';\nimport { EditorFromTextArea } from 'codemirror5';\nimport { useIntl } from 'react-intl';\n\nimport { EditorToolbarObserver, type ObservedComponent } from '../../EditorToolbarObserver';\n\nimport { listHandler, markdownHandler, quoteAndCodeHandler, titleHandler } from './utils/utils';\n\ninterface WysiwygNavProps {\n disabled?: boolean;\n editorRef: React.MutableRefObject<EditorFromTextArea>;\n isExpandMode?: boolean;\n isPreviewMode?: boolean;\n onToggleMediaLib: () => void;\n onTogglePreviewMode?: () => void;\n}\n\ninterface WysiwygPreviewToggleButtonProps {\n isPreviewMode?: boolean;\n onTogglePreviewMode: () => void;\n}\n\nconst WysiwygPreviewToggleButton = ({\n isPreviewMode,\n onTogglePreviewMode,\n}: WysiwygPreviewToggleButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onTogglePreviewMode} variant=\"tertiary\" minWidth=\"132px\">\n {isPreviewMode\n ? formatMessage({\n id: 'components.Wysiwyg.ToggleMode.markdown-mode',\n defaultMessage: 'Markdown mode',\n })\n : formatMessage({\n id: 'components.Wysiwyg.ToggleMode.preview-mode',\n defaultMessage: 'Preview mode',\n })}\n </Button>\n );\n};\n\n/**\n * TODO: refactor this mess.\n */\nconst WysiwygNav = ({\n disabled,\n editorRef,\n isPreviewMode,\n onToggleMediaLib,\n onTogglePreviewMode,\n}: WysiwygNavProps) => {\n const { formatMessage } = useIntl();\n const isMobile = useIsMobile();\n const isDisabled = disabled || isPreviewMode;\n\n const handleActionClick = (\n value: string,\n currentEditorRef: React.MutableRefObject<EditorFromTextArea>\n ) => {\n switch (value) {\n case 'Link': {\n markdownHandler(currentEditorRef, value);\n break;\n }\n case 'Code':\n case 'Quote': {\n quoteAndCodeHandler(currentEditorRef, value);\n break;\n }\n case 'Bold':\n case 'Italic':\n case 'Underline':\n case 'Strikethrough': {\n markdownHandler(currentEditorRef, value);\n break;\n }\n case 'BulletList':\n case 'NumberList': {\n listHandler(currentEditorRef, value);\n break;\n }\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6': {\n titleHandler(currentEditorRef, value);\n break;\n }\n default: {\n // Nothing\n }\n }\n };\n\n const observedComponents: ObservedComponent[] = [\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Bold', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n >\n <Bold />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Italic', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n >\n <Italic />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Underline', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n >\n <Underline />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Strikethrough', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n name={formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n >\n <StrikeThrough />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<Bold fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Bold', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.bold',\n defaultMessage: 'Bold',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Italic fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Italic', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.italic',\n defaultMessage: 'Italic',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Underline fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Underline', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.underline',\n defaultMessage: 'Underline',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<StrikeThrough fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Strikethrough', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.modifiers.strikethrough',\n defaultMessage: 'Strikethrough',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-1',\n },\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('BulletList', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.bulletList',\n defaultMessage: 'Bulleted list',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.bulletList',\n defaultMessage: 'Bulleted list',\n })}\n >\n <BulletList />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('NumberList', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.numberList',\n defaultMessage: 'Numbered list',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.numberList',\n defaultMessage: 'Numbered list',\n })}\n >\n <NumberList />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<BulletList fill=\"neutral500\" />}\n onSelect={() => handleActionClick('BulletList', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.unorderedList',\n defaultMessage: 'Bulleted list',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<NumberList fill=\"neutral500\" />}\n onSelect={() => handleActionClick('NumberList', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.orderedList',\n defaultMessage: 'Numbered list',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-2',\n },\n {\n toolbar: (\n <IconButtonGroup>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Code', editorRef)}\n label={formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n name={formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n >\n <Code />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => {\n onToggleMediaLib();\n }}\n label={formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n >\n <Image />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Link', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n name={formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n >\n <Link />\n </IconButton>\n <IconButton\n disabled={isDisabled}\n onClick={() => handleActionClick('Quote', editorRef)}\n label={formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n name={formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n >\n <Quotes />\n </IconButton>\n </IconButtonGroup>\n ),\n menu: (\n <>\n <Menu.Separator />\n <Menu.Item\n startIcon={<Code fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Code', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Wysiwyg.blocks.code',\n defaultMessage: 'Code',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Image fill=\"neutral500\" />}\n onSelect={() => {\n onToggleMediaLib();\n }}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.image',\n defaultMessage: 'Image',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Link fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Link', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.popover.link',\n defaultMessage: 'Link',\n })}\n </Flex>\n </Menu.Item>\n <Menu.Item\n startIcon={<Quotes fill=\"neutral500\" />}\n onSelect={() => handleActionClick('Quote', editorRef)}\n disabled={isDisabled}\n >\n <Flex tag=\"span\" gap={2}>\n {formatMessage({\n id: 'components.Blocks.blocks.quote',\n defaultMessage: 'Quote',\n })}\n </Flex>\n </Menu.Item>\n </>\n ),\n key: 'formatting-group-3',\n },\n ];\n\n return (\n <Flex\n padding={2}\n background=\"neutral100\"\n justifyContent=\"space-between\"\n borderRadius=\"0.4rem 0.4rem 0 0\"\n width=\"100%\"\n gap={{ initial: 3, medium: 4 }}\n >\n <Field.Root>\n <SingleSelect\n disabled={isDisabled}\n placeholder={formatMessage({\n id: 'components.Wysiwyg.selectOptions.title',\n defaultMessage: 'Headings',\n })}\n aria-label={formatMessage({\n id: 'components.Wysiwyg.selectOptions.title',\n defaultMessage: 'Headings',\n })}\n // @ts-expect-error – DS v2 will only allow strings.\n onChange={(value) => handleActionClick(value, editorRef)}\n size=\"S\"\n >\n <SingleSelectOption value=\"h1\" startIcon={<HeadingOne fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H1',\n defaultMessage: 'Heading 1',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h2\" startIcon={<HeadingTwo fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H2',\n defaultMessage: 'Heading 2',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h3\" startIcon={<HeadingThree fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H3',\n defaultMessage: 'Heading 3',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h4\" startIcon={<HeadingFour fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H4',\n defaultMessage: 'Heading 4',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h5\" startIcon={<HeadingFive fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H5',\n defaultMessage: 'Heading 5',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"h6\" startIcon={<HeadingSix fill=\"neutral500\" />}>\n {formatMessage({\n id: 'components.Wysiwyg.selectOptions.H6',\n defaultMessage: 'Heading 6',\n })}\n </SingleSelectOption>\n </SingleSelect>\n </Field.Root>\n <Flex width=\"100%\" justifyContent=\"space-between\" overflow=\"hidden\">\n <Flex\n gap={{ initial: 3, medium: 2 }}\n overflow=\"hidden\"\n width=\"100%\"\n data-hide-toolbar-separator=\"true\"\n >\n <EditorToolbarObserver\n menuTriggerVariant=\"tertiary\"\n observedComponents={observedComponents}\n />\n </Flex>\n\n {onTogglePreviewMode && !isMobile && (\n <WysiwygPreviewToggleButton\n isPreviewMode={isPreviewMode}\n onTogglePreviewMode={onTogglePreviewMode}\n />\n )}\n </Flex>\n </Flex>\n );\n};\n\nexport { WysiwygNav, WysiwygPreviewToggleButton };\nexport type { WysiwygNavProps, WysiwygPreviewToggleButtonProps };\n"],"names":["WysiwygPreviewToggleButton","isPreviewMode","onTogglePreviewMode","formatMessage","useIntl","_jsx","Button","onClick","variant","minWidth","id","defaultMessage","WysiwygNav","disabled","editorRef","onToggleMediaLib","isMobile","useIsMobile","isDisabled","handleActionClick","value","currentEditorRef","markdownHandler","quoteAndCodeHandler","listHandler","titleHandler","observedComponents","toolbar","_jsxs","IconButtonGroup","IconButton","label","name","Bold","Italic","Underline","StrikeThrough","menu","_Fragment","Menu","Separator","Item","startIcon","fill","onSelect","Flex","tag","gap","key","BulletList","NumberList","Code","Image","Link","Quotes","padding","background","justifyContent","borderRadius","width","initial","medium","Field","Root","SingleSelect","placeholder","aria-label","onChange","size","SingleSelectOption","HeadingOne","HeadingTwo","HeadingThree","HeadingFour","HeadingFive","HeadingSix","overflow","data-hide-toolbar-separator","EditorToolbarObserver","menuTriggerVariant"],"mappings":"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"}
|
|
@@ -40,7 +40,9 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
|
40
40
|
const Header = ({ isCreating, status, title: documentTitle = 'Untitled' })=>{
|
|
41
41
|
const { formatMessage } = reactIntl.useIntl();
|
|
42
42
|
const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
|
|
43
|
+
const isMobile = strapiAdmin.useIsMobile();
|
|
43
44
|
const params = reactRouterDom.useParams();
|
|
45
|
+
const [{ query: { status: activeTab = 'draft' } }] = strapiAdmin.useQueryParams();
|
|
44
46
|
const title = isCreating ? formatMessage({
|
|
45
47
|
id: 'content-manager.containers.edit.title.new',
|
|
46
48
|
defaultMessage: 'Create an entry'
|
|
@@ -48,17 +50,16 @@ const Header = ({ isCreating, status, title: documentTitle = 'Untitled' })=>{
|
|
|
48
50
|
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
49
51
|
direction: "column",
|
|
50
52
|
alignItems: "flex-start",
|
|
53
|
+
paddingLeft: strapiAdmin.RESPONSIVE_DEFAULT_SPACING,
|
|
54
|
+
paddingRight: strapiAdmin.RESPONSIVE_DEFAULT_SPACING,
|
|
51
55
|
paddingTop: {
|
|
52
56
|
initial: 4,
|
|
53
|
-
|
|
54
|
-
},
|
|
55
|
-
paddingBottom: {
|
|
56
|
-
initial: 0,
|
|
57
|
-
large: 4
|
|
57
|
+
medium: 6
|
|
58
58
|
},
|
|
59
|
+
paddingBottom: 4,
|
|
59
60
|
gap: 2,
|
|
60
61
|
children: [
|
|
61
|
-
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.BackButton, {
|
|
62
|
+
!isMobile && /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.BackButton, {
|
|
62
63
|
fallback: params.collectionType === collections.SINGLE_TYPES ? undefined : `../${collections.COLLECTION_TYPES}/${params.slug}`
|
|
63
64
|
}),
|
|
64
65
|
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
@@ -70,16 +71,50 @@ const Header = ({ isCreating, status, title: documentTitle = 'Untitled' })=>{
|
|
|
70
71
|
},
|
|
71
72
|
alignItems: "flex-start",
|
|
72
73
|
direction: {
|
|
73
|
-
initial: 'column',
|
|
74
|
+
initial: 'column-reverse',
|
|
74
75
|
medium: 'row'
|
|
75
76
|
},
|
|
76
77
|
children: [
|
|
77
|
-
/*#__PURE__*/ jsxRuntime.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
79
|
+
gap: 2,
|
|
80
|
+
justifyContent: "space-between",
|
|
81
|
+
alignItems: "flex-start",
|
|
82
|
+
width: "100%",
|
|
83
|
+
children: [
|
|
84
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
85
|
+
variant: "alpha",
|
|
86
|
+
tag: "h1",
|
|
87
|
+
children: title
|
|
88
|
+
}),
|
|
89
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
90
|
+
display: {
|
|
91
|
+
initial: 'block',
|
|
92
|
+
medium: 'none'
|
|
93
|
+
},
|
|
94
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(HeaderDocumentActions, {
|
|
95
|
+
activeTab: activeTab,
|
|
96
|
+
isCloning: isCloning
|
|
97
|
+
})
|
|
98
|
+
})
|
|
99
|
+
]
|
|
81
100
|
}),
|
|
82
|
-
/*#__PURE__*/ jsxRuntime.
|
|
101
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
102
|
+
width: {
|
|
103
|
+
initial: '100%',
|
|
104
|
+
medium: 'auto'
|
|
105
|
+
},
|
|
106
|
+
gap: 3,
|
|
107
|
+
justifyContent: "space-between",
|
|
108
|
+
children: [
|
|
109
|
+
isMobile && /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.BackButton, {
|
|
110
|
+
fallback: params.collectionType === collections.SINGLE_TYPES ? undefined : `../${collections.COLLECTION_TYPES}/${params.slug}`
|
|
111
|
+
}),
|
|
112
|
+
/*#__PURE__*/ jsxRuntime.jsx(HeaderToolbar, {
|
|
113
|
+
activeTab: activeTab,
|
|
114
|
+
isCloning: isCloning
|
|
115
|
+
})
|
|
116
|
+
]
|
|
117
|
+
})
|
|
83
118
|
]
|
|
84
119
|
}),
|
|
85
120
|
status ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
@@ -91,13 +126,44 @@ const Header = ({ isCreating, status, title: documentTitle = 'Untitled' })=>{
|
|
|
91
126
|
]
|
|
92
127
|
});
|
|
93
128
|
};
|
|
129
|
+
const HeaderDocumentActions = ({ activeTab, isCloning })=>{
|
|
130
|
+
const { model, id, document, meta, collectionType } = useDocument.useDoc();
|
|
131
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
132
|
+
const plugins = strapiAdmin.useStrapiApp('HeaderToolbar', (state)=>state.plugins);
|
|
133
|
+
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.DescriptionComponentRenderer, {
|
|
134
|
+
props: {
|
|
135
|
+
activeTab,
|
|
136
|
+
model,
|
|
137
|
+
documentId: id,
|
|
138
|
+
document: isCloning ? undefined : document,
|
|
139
|
+
meta: isCloning ? undefined : meta,
|
|
140
|
+
collectionType
|
|
141
|
+
},
|
|
142
|
+
descriptions: plugins['content-manager'].apis.getDocumentActions('header'),
|
|
143
|
+
children: (actions)=>{
|
|
144
|
+
const headerActions = actions.filter((action)=>{
|
|
145
|
+
const positions = Array.isArray(action.position) ? action.position : [
|
|
146
|
+
action.position
|
|
147
|
+
];
|
|
148
|
+
return positions.includes('header');
|
|
149
|
+
});
|
|
150
|
+
return /*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionsMenu, {
|
|
151
|
+
actions: headerActions,
|
|
152
|
+
label: formatMessage({
|
|
153
|
+
id: 'content-manager.containers.edit.header.more-actions',
|
|
154
|
+
defaultMessage: 'More actions'
|
|
155
|
+
}),
|
|
156
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Information, {
|
|
157
|
+
activeTab: activeTab
|
|
158
|
+
})
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
};
|
|
94
163
|
/**
|
|
95
164
|
* @description Contains the document actions that have `position: header`, if there are
|
|
96
165
|
* none we still render the menu because we render the information about the document there.
|
|
97
|
-
*/ const HeaderToolbar = ()=>{
|
|
98
|
-
const { formatMessage } = reactIntl.useIntl();
|
|
99
|
-
const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
|
|
100
|
-
const [{ query: { status = 'draft' } }] = strapiAdmin.useQueryParams();
|
|
166
|
+
*/ const HeaderToolbar = ({ activeTab, isCloning })=>{
|
|
101
167
|
const { model, id, document, meta, collectionType } = useDocument.useDoc();
|
|
102
168
|
const plugins = strapiAdmin.useStrapiApp('HeaderToolbar', (state)=>state.plugins);
|
|
103
169
|
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
@@ -105,7 +171,7 @@ const Header = ({ isCreating, status, title: documentTitle = 'Untitled' })=>{
|
|
|
105
171
|
children: [
|
|
106
172
|
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.DescriptionComponentRenderer, {
|
|
107
173
|
props: {
|
|
108
|
-
activeTab
|
|
174
|
+
activeTab,
|
|
109
175
|
model,
|
|
110
176
|
documentId: id,
|
|
111
177
|
document: isCloning ? undefined : document,
|
|
@@ -123,34 +189,15 @@ const Header = ({ isCreating, status, title: documentTitle = 'Untitled' })=>{
|
|
|
123
189
|
}
|
|
124
190
|
}
|
|
125
191
|
}),
|
|
126
|
-
/*#__PURE__*/ jsxRuntime.jsx(
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
documentId: id,
|
|
131
|
-
document: isCloning ? undefined : document,
|
|
132
|
-
meta: isCloning ? undefined : meta,
|
|
133
|
-
collectionType
|
|
192
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
193
|
+
display: {
|
|
194
|
+
initial: 'none',
|
|
195
|
+
medium: 'block'
|
|
134
196
|
},
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
action.position
|
|
140
|
-
];
|
|
141
|
-
return positions.includes('header');
|
|
142
|
-
});
|
|
143
|
-
return /*#__PURE__*/ jsxRuntime.jsx(DocumentActions.DocumentActionsMenu, {
|
|
144
|
-
actions: headerActions,
|
|
145
|
-
label: formatMessage({
|
|
146
|
-
id: 'content-manager.containers.edit.header.more-actions',
|
|
147
|
-
defaultMessage: 'More actions'
|
|
148
|
-
}),
|
|
149
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(Information, {
|
|
150
|
-
activeTab: status
|
|
151
|
-
})
|
|
152
|
-
});
|
|
153
|
-
}
|
|
197
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(HeaderDocumentActions, {
|
|
198
|
+
activeTab: activeTab,
|
|
199
|
+
isCloning: isCloning
|
|
200
|
+
})
|
|
154
201
|
})
|
|
155
202
|
]
|
|
156
203
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../../admin/src/pages/EditView/components/Header.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useForm,\n BackButton,\n useNotification,\n useStrapiApp,\n useQueryParams,\n useIsDesktop,\n useDebounce,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n SingleSelect,\n SingleSelectOption,\n Typography,\n IconButton,\n Dialog,\n Popover,\n} from '@strapi/design-system';\nimport { ListPlus, Pencil, Trash, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate, useParams } from 'react-router-dom';\n\nimport { RelativeTime } from '../../../components/RelativeTime';\nimport {\n CREATED_AT_ATTRIBUTE_NAME,\n CREATED_BY_ATTRIBUTE_NAME,\n PUBLISHED_AT_ATTRIBUTE_NAME,\n PUBLISHED_BY_ATTRIBUTE_NAME,\n UPDATED_AT_ATTRIBUTE_NAME,\n UPDATED_BY_ATTRIBUTE_NAME,\n} from '../../../constants/attributes';\nimport { COLLECTION_TYPES, SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../hooks/useDocumentActions';\nimport { CLONE_PATH, LIST_PATH } from '../../../router';\nimport { getDisplayName } from '../../../utils/users';\n\nimport { DocumentActionsMenu } from './DocumentActions';\nimport { DocumentStatus } from './DocumentStatus';\n\nimport type { ContentManagerPlugin, DocumentActionComponent } from '../../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n isCreating?: boolean;\n status?: 'draft' | 'published' | 'modified';\n title?: string;\n}\n\nconst Header = ({ isCreating, status, title: documentTitle = 'Untitled' }: HeaderProps) => {\n const { formatMessage } = useIntl();\n const isCloning = useMatch(CLONE_PATH) !== null;\n const params = useParams<{ collectionType: string; slug: string }>();\n\n const title = isCreating\n ? formatMessage({\n id: 'content-manager.containers.edit.title.new',\n defaultMessage: 'Create an entry',\n })\n : documentTitle;\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n paddingTop={{\n initial: 4,\n large: 6,\n }}\n paddingBottom={{\n initial: 0,\n large: 4,\n }}\n gap={2}\n >\n <BackButton\n fallback={\n params.collectionType === SINGLE_TYPES\n ? undefined\n : `../${COLLECTION_TYPES}/${params.slug}`\n }\n />\n <Flex\n width=\"100%\"\n justifyContent=\"space-between\"\n gap={{\n initial: 2,\n medium: '8rem',\n }}\n alignItems=\"flex-start\"\n direction={{\n initial: 'column',\n medium: 'row',\n }}\n >\n <Typography variant=\"alpha\" tag=\"h1\">\n {title}\n </Typography>\n <HeaderToolbar />\n </Flex>\n {status ? (\n <Box marginTop={1}>\n <DocumentStatus status={isCloning ? 'draft' : status} />\n </Box>\n ) : null}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderToolbar\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DialogOptions {\n type: 'dialog';\n title: string;\n content?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\ninterface HeaderActionDescription {\n disabled?: boolean;\n label: string;\n icon?: React.ReactNode;\n type?: 'icon' | 'default';\n onClick?: (event: React.SyntheticEvent) => Promise<boolean | void> | boolean | void;\n dialog?: DialogOptions;\n options?: Array<{\n disabled?: boolean;\n label: string;\n startIcon?: React.ReactNode;\n textValue?: string;\n value: string;\n /**\n * @internal\n * @description\n * Internal SelectOption renderer used to display the status of AI translation background jobs\n */\n _render?: () => React.ReactNode;\n }>;\n /**\n * @internal\n * @description\n * Internal document header action to display the status of AI translation background jobs\n */\n _status?: {\n message: React.ReactNode;\n tooltip?: React.ReactNode;\n };\n onSelect?: (value: string) => void;\n value?: string;\n customizeContent?: (value: string) => React.ReactNode;\n}\n\n/**\n * @description Contains the document actions that have `position: header`, if there are\n * none we still render the menu because we render the information about the document there.\n */\nconst HeaderToolbar = () => {\n const { formatMessage } = useIntl();\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('HeaderToolbar', (state) => state.plugins);\n\n return (\n <Flex gap={2}>\n <DescriptionComponentRenderer\n props={{\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getHeaderActions()}\n >\n {(actions) => {\n if (actions.length > 0) {\n return <HeaderActions actions={actions} />;\n } else {\n return null;\n }\n }}\n </DescriptionComponentRenderer>\n <DescriptionComponentRenderer\n props={{\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('header')}\n >\n {(actions) => {\n const headerActions = actions.filter((action) => {\n const positions = Array.isArray(action.position) ? action.position : [action.position];\n return positions.includes('header');\n });\n\n return (\n <DocumentActionsMenu\n actions={headerActions}\n label={formatMessage({\n id: 'content-manager.containers.edit.header.more-actions',\n defaultMessage: 'More actions',\n })}\n >\n <Information activeTab={status} />\n </DocumentActionsMenu>\n );\n }}\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\ninterface InformationProps {\n activeTab: 'draft' | 'published';\n}\n\nconst Information = ({ activeTab }: InformationProps) => {\n const { formatMessage } = useIntl();\n const { document, meta } = useDoc();\n\n if (!document || !document.id) {\n return null;\n }\n\n /**\n * Because in the backend separate entries are made for draft and published\n * documents, the creator fields are different for each of them. For example,\n * you could make your draft in January and then publish it for the first time\n * in Feb. This would make the createdAt value for the published entry in Feb\n * but really we want to show the document as a whole. The draft entry will also\n * never have the publishedAt values.\n *\n * So, we decipher which document to show the creator for based on the activeTab.\n */\n\n const createAndUpdateDocument =\n activeTab === 'draft'\n ? document\n : meta?.availableStatus.find((status) => status.publishedAt === null);\n\n const publishDocument =\n activeTab === 'published'\n ? document\n : meta?.availableStatus.find((status) => status.publishedAt !== null);\n\n const creator = createAndUpdateDocument?.[CREATED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(createAndUpdateDocument[CREATED_BY_ATTRIBUTE_NAME])\n : null;\n\n const updator = createAndUpdateDocument?.[UPDATED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(createAndUpdateDocument[UPDATED_BY_ATTRIBUTE_NAME])\n : null;\n\n const information: Array<{ isDisplayed?: boolean; label: string; value: React.ReactNode }> = [\n {\n isDisplayed: !!publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.last-published.label',\n defaultMessage: 'Published',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.last-published.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime timestamp={new Date(publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME])} />\n ),\n isAnonymous: !publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME],\n author: publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME])\n : null,\n }\n ),\n },\n {\n isDisplayed: !!createAndUpdateDocument?.[UPDATED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.last-draft.label',\n defaultMessage: 'Updated',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.last-draft.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime\n timestamp={new Date(createAndUpdateDocument?.[UPDATED_AT_ATTRIBUTE_NAME])}\n />\n ),\n isAnonymous: !updator,\n author: updator,\n }\n ),\n },\n {\n isDisplayed: !!createAndUpdateDocument?.[CREATED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.document.label',\n defaultMessage: 'Created',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.document.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime\n timestamp={new Date(createAndUpdateDocument?.[CREATED_AT_ATTRIBUTE_NAME])}\n />\n ),\n isAnonymous: !creator,\n author: creator,\n }\n ),\n },\n ].filter((info) => info.isDisplayed);\n\n return (\n <Flex\n borderWidth=\"1px 0 0 0\"\n borderStyle=\"solid\"\n borderColor=\"neutral150\"\n direction=\"column\"\n marginTop={2}\n tag=\"dl\"\n padding={5}\n gap={3}\n alignItems=\"flex-start\"\n /**\n * The menu content has a padding of 4px, but we want our divider (the border top applied) to\n * be flush with the menu content. So we need to adjust the margin & width to account for the padding.\n */\n marginLeft=\"-0.4rem\"\n marginRight=\"-0.4rem\"\n width=\"calc(100% + 8px)\"\n >\n {information.map((info) => (\n <Flex gap={1} direction=\"column\" alignItems=\"flex-start\" key={info.label}>\n <Typography tag=\"dt\" variant=\"pi\" fontWeight=\"bold\">\n {info.label}\n </Typography>\n <Typography tag=\"dd\" variant=\"pi\" textColor=\"neutral600\">\n {info.value}\n </Typography>\n </Flex>\n ))}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActions\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderActionsProps {\n actions: Array<HeaderActionDescription & { id: string }>;\n}\n\nconst HeaderActions = ({ actions }: HeaderActionsProps) => {\n const [dialogId, setDialogId] = React.useState<string | null>(null);\n\n const handleClick =\n (action: HeaderActionDescription & { id: string }) => async (e: React.MouseEvent) => {\n if (!('options' in action)) {\n const { onClick = () => false, dialog, id } = action;\n\n const muteDialog = await onClick(e);\n\n if (dialog && !muteDialog) {\n e.preventDefault();\n setDialogId(id);\n }\n }\n };\n\n const handleClose = () => {\n setDialogId(null);\n };\n\n return (\n <Flex gap={1}>\n {actions.map((action) => {\n if (action.options) {\n return (\n <SingleSelect\n key={action.id}\n size=\"S\"\n // @ts-expect-error – the DS will handle numbers, but we're not allowing the API.\n onChange={action.onSelect}\n aria-label={action.label}\n {...action}\n >\n {action.options.map(({ label, ...option }) => {\n if (option._render) {\n return option._render();\n }\n\n return (\n <SingleSelectOption key={option.value} {...option}>\n {label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n } else if (action._status) {\n return (\n <HeaderActionStatus tooltip={action._status?.tooltip} key={action.id}>\n {action._status.message}\n </HeaderActionStatus>\n );\n } else {\n return (\n <React.Fragment key={action.id}>\n <IconButton\n disabled={action.disabled}\n label={action.label}\n size=\"S\"\n onClick={handleClick(action)}\n >\n {action.icon}\n </IconButton>\n {action.dialog ? (\n <HeaderActionDialog\n {...action.dialog}\n isOpen={dialogId === action.id}\n onClose={handleClose}\n />\n ) : null}\n </React.Fragment>\n );\n }\n })}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActionStatus\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderActionStatusProps {\n tooltip: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst HeaderActionStatus = ({ tooltip, children }: HeaderActionStatusProps) => {\n const [open, setOpen] = React.useState(false);\n // Debounce the open/close so the user can hover over the popover content before it closes\n const debouncedOpen = useDebounce(open, 100);\n\n const handleMouseEnter = () => {\n if (tooltip) {\n setOpen(true);\n }\n };\n const handleMouseLeave = () => {\n if (tooltip) {\n setOpen(false);\n }\n };\n\n return (\n <Popover.Root open={debouncedOpen} onOpenChange={setOpen}>\n <Popover.Anchor\n style={{ alignSelf: 'stretch' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n aria-describedby=\"document-header-action-status\"\n >\n <Box height=\"100%\">{children}</Box>\n </Popover.Anchor>\n <Popover.Content\n role=\"tooltip\"\n id=\"document-header-action-status\"\n side=\"bottom\"\n align=\"center\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {tooltip}\n </Popover.Content>\n </Popover.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActionDialog\n * -----------------------------------------------------------------------------------------------*/\ninterface HeaderActionDialogProps {\n onClose: () => void;\n onCancel?: () => Promise<void>;\n title: string;\n content?: React.ReactNode | ((props: { onClose: () => void }) => React.ReactNode);\n isOpen: boolean;\n}\n\nconst HeaderActionDialog = ({\n onClose,\n onCancel,\n title,\n content: Content,\n isOpen,\n}: HeaderActionDialogProps) => {\n const handleClose = async () => {\n if (onCancel) {\n await onCancel();\n }\n\n onClose();\n };\n\n return (\n <Dialog.Root open={isOpen} onOpenChange={handleClose}>\n <Dialog.Content>\n <Dialog.Header>{title}</Dialog.Header>\n {typeof Content === 'function' ? <Content onClose={handleClose} /> : Content}\n </Dialog.Content>\n </Dialog.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DocumentActionComponents\n * -----------------------------------------------------------------------------------------------*/\n\nconst ConfigureTheViewAction: DocumentActionComponent = ({ collectionType, model }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return isDesktop\n ? {\n label: formatMessage({\n id: 'app.links.configure-view',\n defaultMessage: 'Configure the view',\n }),\n icon: <ListPlus />,\n onClick: () => {\n navigate(`../${collectionType}/${model}/configurations/edit`);\n },\n position: 'header',\n }\n : null;\n};\n\nConfigureTheViewAction.type = 'configure-the-view';\nConfigureTheViewAction.position = 'header';\n\nconst EditTheModelAction: DocumentActionComponent = ({ model }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return isDesktop\n ? {\n label: formatMessage({\n id: 'content-manager.link-to-ctb',\n defaultMessage: 'Edit the model',\n }),\n icon: <Pencil />,\n onClick: () => {\n navigate(`/plugins/content-type-builder/content-types/${model}`);\n },\n position: 'header',\n }\n : null;\n};\n\nEditTheModelAction.type = 'edit-the-model';\nEditTheModelAction.position = 'header';\n\nconst DeleteAction: DocumentActionComponent = ({ documentId, model, collectionType, document }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const listViewPathMatch = useMatch(LIST_PATH);\n const canDelete = useDocumentRBAC('DeleteAction', (state) => state.canDelete);\n const { delete: deleteAction, isLoading } = useDocumentActions();\n const { toggleNotification } = useNotification();\n const setSubmitting = useForm('DeleteAction', (state) => state.setSubmitting);\n const isLocalized = document?.locale != null;\n\n return {\n disabled: !canDelete || !document,\n label: formatMessage(\n {\n id: 'content-manager.actions.delete.label',\n defaultMessage: 'Delete entry{isLocalized, select, true { (all locales)} other {}}',\n },\n { isLocalized }\n ),\n icon: <Trash />,\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n content: (\n <Flex direction=\"column\" gap={2}>\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n <Typography tag=\"p\" variant=\"omega\" textAlign=\"center\">\n {formatMessage({\n id: 'content-manager.actions.delete.dialog.body',\n defaultMessage: 'Are you sure?',\n })}\n </Typography>\n </Flex>\n ),\n loading: isLoading,\n onConfirm: async () => {\n /**\n * If we have a match, we're in the list view\n * and therefore not in a form and shouldn't be\n * trying to set the submitting value.\n */\n if (!listViewPathMatch) {\n setSubmitting(true);\n }\n try {\n if (!documentId && collectionType !== SINGLE_TYPES) {\n console.error(\n \"You're trying to delete a document without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.delete.error',\n defaultMessage: 'An error occurred while trying to delete the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n const res = await deleteAction({\n documentId,\n model,\n collectionType,\n params: {\n locale: '*',\n },\n });\n\n if (!('error' in res)) {\n navigate({ pathname: `../${collectionType}/${model}` }, { replace: true });\n }\n } finally {\n if (!listViewPathMatch) {\n setSubmitting(false);\n }\n }\n },\n },\n variant: 'danger',\n position: ['header', 'table-row'],\n };\n};\n\nDeleteAction.type = 'delete';\nDeleteAction.position = ['header', 'table-row'];\n\nconst DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction];\n\nexport { Header, DEFAULT_HEADER_ACTIONS };\nexport type { HeaderProps, HeaderActionDescription };\n"],"names":["Header","isCreating","status","title","documentTitle","formatMessage","useIntl","isCloning","useMatch","CLONE_PATH","params","useParams","id","defaultMessage","_jsxs","Flex","direction","alignItems","paddingTop","initial","large","paddingBottom","gap","_jsx","BackButton","fallback","collectionType","SINGLE_TYPES","undefined","COLLECTION_TYPES","slug","width","justifyContent","medium","Typography","variant","tag","HeaderToolbar","Box","marginTop","DocumentStatus","query","useQueryParams","model","document","meta","useDoc","plugins","useStrapiApp","state","DescriptionComponentRenderer","props","activeTab","documentId","descriptions","apis","getHeaderActions","actions","length","HeaderActions","getDocumentActions","headerActions","filter","action","positions","Array","isArray","position","includes","DocumentActionsMenu","label","Information","createAndUpdateDocument","availableStatus","find","publishedAt","publishDocument","creator","CREATED_BY_ATTRIBUTE_NAME","getDisplayName","updator","UPDATED_BY_ATTRIBUTE_NAME","information","isDisplayed","PUBLISHED_AT_ATTRIBUTE_NAME","value","time","RelativeTime","timestamp","Date","isAnonymous","PUBLISHED_BY_ATTRIBUTE_NAME","author","UPDATED_AT_ATTRIBUTE_NAME","CREATED_AT_ATTRIBUTE_NAME","info","borderWidth","borderStyle","borderColor","padding","marginLeft","marginRight","map","fontWeight","textColor","dialogId","setDialogId","React","useState","handleClick","e","onClick","dialog","muteDialog","preventDefault","handleClose","options","SingleSelect","size","onChange","onSelect","aria-label","option","_render","SingleSelectOption","_status","HeaderActionStatus","tooltip","message","Fragment","IconButton","disabled","icon","HeaderActionDialog","isOpen","onClose","children","open","setOpen","debouncedOpen","useDebounce","handleMouseEnter","handleMouseLeave","Popover","Root","onOpenChange","Anchor","style","alignSelf","onMouseEnter","onMouseLeave","aria-describedby","height","Content","role","side","align","onCancel","content","Dialog","ConfigureTheViewAction","navigate","useNavigate","isDesktop","useIsDesktop","ListPlus","type","EditTheModelAction","Pencil","DeleteAction","listViewPathMatch","LIST_PATH","canDelete","useDocumentRBAC","delete","deleteAction","isLoading","useDocumentActions","toggleNotification","useNotification","setSubmitting","useForm","isLocalized","locale","Trash","WarningCircle","fill","textAlign","loading","onConfirm","console","error","res","pathname","replace","DEFAULT_HEADER_ACTIONS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../../admin/src/pages/EditView/components/Header.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n DescriptionComponentRenderer,\n useForm,\n BackButton,\n useNotification,\n useStrapiApp,\n useQueryParams,\n useIsDesktop,\n useDebounce,\n RESPONSIVE_DEFAULT_SPACING,\n useIsMobile,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n SingleSelect,\n SingleSelectOption,\n Typography,\n IconButton,\n Dialog,\n Popover,\n} from '@strapi/design-system';\nimport { ListPlus, Pencil, Trash, WarningCircle } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useMatch, useNavigate, useParams } from 'react-router-dom';\n\nimport { RelativeTime } from '../../../components/RelativeTime';\nimport {\n CREATED_AT_ATTRIBUTE_NAME,\n CREATED_BY_ATTRIBUTE_NAME,\n PUBLISHED_AT_ATTRIBUTE_NAME,\n PUBLISHED_BY_ATTRIBUTE_NAME,\n UPDATED_AT_ATTRIBUTE_NAME,\n UPDATED_BY_ATTRIBUTE_NAME,\n} from '../../../constants/attributes';\nimport { COLLECTION_TYPES, SINGLE_TYPES } from '../../../constants/collections';\nimport { useDocumentRBAC } from '../../../features/DocumentRBAC';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useDocumentActions } from '../../../hooks/useDocumentActions';\nimport { CLONE_PATH, LIST_PATH } from '../../../router';\nimport { getDisplayName } from '../../../utils/users';\n\nimport { DocumentActionsMenu } from './DocumentActions';\nimport { DocumentStatus } from './DocumentStatus';\n\nimport type { ContentManagerPlugin, DocumentActionComponent } from '../../../content-manager';\n\n/* -------------------------------------------------------------------------------------------------\n * Header\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderProps {\n isCreating?: boolean;\n status?: 'draft' | 'published' | 'modified';\n title?: string;\n}\n\nconst Header = ({ isCreating, status, title: documentTitle = 'Untitled' }: HeaderProps) => {\n const { formatMessage } = useIntl();\n const isCloning = useMatch(CLONE_PATH) !== null;\n const isMobile = useIsMobile();\n const params = useParams<{ collectionType: string; slug: string }>();\n const [\n {\n query: { status: activeTab = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n const title = isCreating\n ? formatMessage({\n id: 'content-manager.containers.edit.title.new',\n defaultMessage: 'Create an entry',\n })\n : documentTitle;\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n paddingTop={{\n initial: 4,\n medium: 6,\n }}\n paddingBottom={4}\n gap={2}\n >\n {!isMobile && (\n <BackButton\n fallback={\n params.collectionType === SINGLE_TYPES\n ? undefined\n : `../${COLLECTION_TYPES}/${params.slug}`\n }\n />\n )}\n <Flex\n width=\"100%\"\n justifyContent=\"space-between\"\n gap={{\n initial: 2,\n medium: '8rem',\n }}\n alignItems=\"flex-start\"\n direction={{\n initial: 'column-reverse',\n medium: 'row',\n }}\n >\n <Flex gap={2} justifyContent=\"space-between\" alignItems=\"flex-start\" width=\"100%\">\n <Typography variant=\"alpha\" tag=\"h1\">\n {title}\n </Typography>\n <Box display={{ initial: 'block', medium: 'none' }}>\n <HeaderDocumentActions activeTab={activeTab} isCloning={isCloning} />\n </Box>\n </Flex>\n <Flex width={{ initial: '100%', medium: 'auto' }} gap={3} justifyContent=\"space-between\">\n {isMobile && (\n <BackButton\n fallback={\n params.collectionType === SINGLE_TYPES\n ? undefined\n : `../${COLLECTION_TYPES}/${params.slug}`\n }\n />\n )}\n <HeaderToolbar activeTab={activeTab} isCloning={isCloning} />\n </Flex>\n </Flex>\n {status ? (\n <Box marginTop={1}>\n <DocumentStatus status={isCloning ? 'draft' : status} />\n </Box>\n ) : null}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderToolbar\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DialogOptions {\n type: 'dialog';\n title: string;\n content?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\ninterface HeaderActionDescription {\n disabled?: boolean;\n label: string;\n icon?: React.ReactNode;\n type?: 'icon' | 'default';\n onClick?: (event: React.SyntheticEvent) => Promise<boolean | void> | boolean | void;\n dialog?: DialogOptions;\n options?: Array<{\n disabled?: boolean;\n label: string;\n startIcon?: React.ReactNode;\n textValue?: string;\n value: string;\n /**\n * @internal\n * @description\n * Internal SelectOption renderer used to display the status of AI translation background jobs\n */\n _render?: () => React.ReactNode;\n }>;\n /**\n * @internal\n * @description\n * Internal document header action to display the status of AI translation background jobs\n */\n _status?: {\n message: React.ReactNode;\n tooltip?: React.ReactNode;\n };\n onSelect?: (value: string) => void;\n value?: string;\n customizeContent?: (value: string) => React.ReactNode;\n}\n\ninterface HeaderDocumentActionsProps {\n activeTab: 'draft' | 'published';\n isCloning: boolean;\n}\n\nconst HeaderDocumentActions = ({ activeTab, isCloning }: HeaderDocumentActionsProps) => {\n const { model, id, document, meta, collectionType } = useDoc();\n const { formatMessage } = useIntl();\n const plugins = useStrapiApp('HeaderToolbar', (state) => state.plugins);\n return (\n <DescriptionComponentRenderer\n props={{\n activeTab,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('header')}\n >\n {(actions) => {\n const headerActions = actions.filter((action) => {\n const positions = Array.isArray(action.position) ? action.position : [action.position];\n return positions.includes('header');\n });\n\n return (\n <DocumentActionsMenu\n actions={headerActions}\n label={formatMessage({\n id: 'content-manager.containers.edit.header.more-actions',\n defaultMessage: 'More actions',\n })}\n >\n <Information activeTab={activeTab} />\n </DocumentActionsMenu>\n );\n }}\n </DescriptionComponentRenderer>\n );\n};\n\n/**\n * @description Contains the document actions that have `position: header`, if there are\n * none we still render the menu because we render the information about the document there.\n */\nconst HeaderToolbar = ({ activeTab, isCloning }: HeaderDocumentActionsProps) => {\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('HeaderToolbar', (state) => state.plugins);\n\n return (\n <Flex gap={2}>\n <DescriptionComponentRenderer\n props={{\n activeTab,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n }}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getHeaderActions()}\n >\n {(actions) => {\n if (actions.length > 0) {\n return <HeaderActions actions={actions} />;\n } else {\n return null;\n }\n }}\n </DescriptionComponentRenderer>\n <Box display={{ initial: 'none', medium: 'block' }}>\n <HeaderDocumentActions activeTab={activeTab} isCloning={isCloning} />\n </Box>\n </Flex>\n );\n};\n\ninterface InformationProps {\n activeTab: 'draft' | 'published';\n}\n\nconst Information = ({ activeTab }: InformationProps) => {\n const { formatMessage } = useIntl();\n const { document, meta } = useDoc();\n\n if (!document || !document.id) {\n return null;\n }\n\n /**\n * Because in the backend separate entries are made for draft and published\n * documents, the creator fields are different for each of them. For example,\n * you could make your draft in January and then publish it for the first time\n * in Feb. This would make the createdAt value for the published entry in Feb\n * but really we want to show the document as a whole. The draft entry will also\n * never have the publishedAt values.\n *\n * So, we decipher which document to show the creator for based on the activeTab.\n */\n\n const createAndUpdateDocument =\n activeTab === 'draft'\n ? document\n : meta?.availableStatus.find((status) => status.publishedAt === null);\n\n const publishDocument =\n activeTab === 'published'\n ? document\n : meta?.availableStatus.find((status) => status.publishedAt !== null);\n\n const creator = createAndUpdateDocument?.[CREATED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(createAndUpdateDocument[CREATED_BY_ATTRIBUTE_NAME])\n : null;\n\n const updator = createAndUpdateDocument?.[UPDATED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(createAndUpdateDocument[UPDATED_BY_ATTRIBUTE_NAME])\n : null;\n\n const information: Array<{ isDisplayed?: boolean; label: string; value: React.ReactNode }> = [\n {\n isDisplayed: !!publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.last-published.label',\n defaultMessage: 'Published',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.last-published.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime timestamp={new Date(publishDocument?.[PUBLISHED_AT_ATTRIBUTE_NAME])} />\n ),\n isAnonymous: !publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME],\n author: publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME]\n ? getDisplayName(publishDocument?.[PUBLISHED_BY_ATTRIBUTE_NAME])\n : null,\n }\n ),\n },\n {\n isDisplayed: !!createAndUpdateDocument?.[UPDATED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.last-draft.label',\n defaultMessage: 'Updated',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.last-draft.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime\n timestamp={new Date(createAndUpdateDocument?.[UPDATED_AT_ATTRIBUTE_NAME])}\n />\n ),\n isAnonymous: !updator,\n author: updator,\n }\n ),\n },\n {\n isDisplayed: !!createAndUpdateDocument?.[CREATED_AT_ATTRIBUTE_NAME],\n label: formatMessage({\n id: 'content-manager.containers.edit.information.document.label',\n defaultMessage: 'Created',\n }),\n value: formatMessage(\n {\n id: 'content-manager.containers.edit.information.document.value',\n defaultMessage: `{time}{isAnonymous, select, true {} other { by {author}}}`,\n },\n {\n time: (\n <RelativeTime\n timestamp={new Date(createAndUpdateDocument?.[CREATED_AT_ATTRIBUTE_NAME])}\n />\n ),\n isAnonymous: !creator,\n author: creator,\n }\n ),\n },\n ].filter((info) => info.isDisplayed);\n\n return (\n <Flex\n borderWidth=\"1px 0 0 0\"\n borderStyle=\"solid\"\n borderColor=\"neutral150\"\n direction=\"column\"\n marginTop={2}\n tag=\"dl\"\n padding={5}\n gap={3}\n alignItems=\"flex-start\"\n /**\n * The menu content has a padding of 4px, but we want our divider (the border top applied) to\n * be flush with the menu content. So we need to adjust the margin & width to account for the padding.\n */\n marginLeft=\"-0.4rem\"\n marginRight=\"-0.4rem\"\n width=\"calc(100% + 8px)\"\n >\n {information.map((info) => (\n <Flex gap={1} direction=\"column\" alignItems=\"flex-start\" key={info.label}>\n <Typography tag=\"dt\" variant=\"pi\" fontWeight=\"bold\">\n {info.label}\n </Typography>\n <Typography tag=\"dd\" variant=\"pi\" textColor=\"neutral600\">\n {info.value}\n </Typography>\n </Flex>\n ))}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActions\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderActionsProps {\n actions: Array<HeaderActionDescription & { id: string }>;\n}\n\nconst HeaderActions = ({ actions }: HeaderActionsProps) => {\n const [dialogId, setDialogId] = React.useState<string | null>(null);\n\n const handleClick =\n (action: HeaderActionDescription & { id: string }) => async (e: React.MouseEvent) => {\n if (!('options' in action)) {\n const { onClick = () => false, dialog, id } = action;\n\n const muteDialog = await onClick(e);\n\n if (dialog && !muteDialog) {\n e.preventDefault();\n setDialogId(id);\n }\n }\n };\n\n const handleClose = () => {\n setDialogId(null);\n };\n\n return (\n <Flex gap={1}>\n {actions.map((action) => {\n if (action.options) {\n return (\n <SingleSelect\n key={action.id}\n size=\"S\"\n // @ts-expect-error – the DS will handle numbers, but we're not allowing the API.\n onChange={action.onSelect}\n aria-label={action.label}\n {...action}\n >\n {action.options.map(({ label, ...option }) => {\n if (option._render) {\n return option._render();\n }\n\n return (\n <SingleSelectOption key={option.value} {...option}>\n {label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n } else if (action._status) {\n return (\n <HeaderActionStatus tooltip={action._status?.tooltip} key={action.id}>\n {action._status.message}\n </HeaderActionStatus>\n );\n } else {\n return (\n <React.Fragment key={action.id}>\n <IconButton\n disabled={action.disabled}\n label={action.label}\n size=\"S\"\n onClick={handleClick(action)}\n >\n {action.icon}\n </IconButton>\n {action.dialog ? (\n <HeaderActionDialog\n {...action.dialog}\n isOpen={dialogId === action.id}\n onClose={handleClose}\n />\n ) : null}\n </React.Fragment>\n );\n }\n })}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActionStatus\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderActionStatusProps {\n tooltip: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst HeaderActionStatus = ({ tooltip, children }: HeaderActionStatusProps) => {\n const [open, setOpen] = React.useState(false);\n // Debounce the open/close so the user can hover over the popover content before it closes\n const debouncedOpen = useDebounce(open, 100);\n\n const handleMouseEnter = () => {\n if (tooltip) {\n setOpen(true);\n }\n };\n const handleMouseLeave = () => {\n if (tooltip) {\n setOpen(false);\n }\n };\n\n return (\n <Popover.Root open={debouncedOpen} onOpenChange={setOpen}>\n <Popover.Anchor\n style={{ alignSelf: 'stretch' }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n aria-describedby=\"document-header-action-status\"\n >\n <Box height=\"100%\">{children}</Box>\n </Popover.Anchor>\n <Popover.Content\n role=\"tooltip\"\n id=\"document-header-action-status\"\n side=\"bottom\"\n align=\"center\"\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {tooltip}\n </Popover.Content>\n </Popover.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderActionDialog\n * -----------------------------------------------------------------------------------------------*/\ninterface HeaderActionDialogProps {\n onClose: () => void;\n onCancel?: () => Promise<void>;\n title: string;\n content?: React.ReactNode | ((props: { onClose: () => void }) => React.ReactNode);\n isOpen: boolean;\n}\n\nconst HeaderActionDialog = ({\n onClose,\n onCancel,\n title,\n content: Content,\n isOpen,\n}: HeaderActionDialogProps) => {\n const handleClose = async () => {\n if (onCancel) {\n await onCancel();\n }\n\n onClose();\n };\n\n return (\n <Dialog.Root open={isOpen} onOpenChange={handleClose}>\n <Dialog.Content>\n <Dialog.Header>{title}</Dialog.Header>\n {typeof Content === 'function' ? <Content onClose={handleClose} /> : Content}\n </Dialog.Content>\n </Dialog.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DocumentActionComponents\n * -----------------------------------------------------------------------------------------------*/\n\nconst ConfigureTheViewAction: DocumentActionComponent = ({ collectionType, model }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return isDesktop\n ? {\n label: formatMessage({\n id: 'app.links.configure-view',\n defaultMessage: 'Configure the view',\n }),\n icon: <ListPlus />,\n onClick: () => {\n navigate(`../${collectionType}/${model}/configurations/edit`);\n },\n position: 'header',\n }\n : null;\n};\n\nConfigureTheViewAction.type = 'configure-the-view';\nConfigureTheViewAction.position = 'header';\n\nconst EditTheModelAction: DocumentActionComponent = ({ model }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return isDesktop\n ? {\n label: formatMessage({\n id: 'content-manager.link-to-ctb',\n defaultMessage: 'Edit the model',\n }),\n icon: <Pencil />,\n onClick: () => {\n navigate(`/plugins/content-type-builder/content-types/${model}`);\n },\n position: 'header',\n }\n : null;\n};\n\nEditTheModelAction.type = 'edit-the-model';\nEditTheModelAction.position = 'header';\n\nconst DeleteAction: DocumentActionComponent = ({ documentId, model, collectionType, document }) => {\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const listViewPathMatch = useMatch(LIST_PATH);\n const canDelete = useDocumentRBAC('DeleteAction', (state) => state.canDelete);\n const { delete: deleteAction, isLoading } = useDocumentActions();\n const { toggleNotification } = useNotification();\n const setSubmitting = useForm('DeleteAction', (state) => state.setSubmitting);\n const isLocalized = document?.locale != null;\n\n return {\n disabled: !canDelete || !document,\n label: formatMessage(\n {\n id: 'content-manager.actions.delete.label',\n defaultMessage: 'Delete entry{isLocalized, select, true { (all locales)} other {}}',\n },\n { isLocalized }\n ),\n icon: <Trash />,\n dialog: {\n type: 'dialog',\n title: formatMessage({\n id: 'app.components.ConfirmDialog.title',\n defaultMessage: 'Confirmation',\n }),\n content: (\n <Flex direction=\"column\" gap={2}>\n <WarningCircle width=\"24px\" height=\"24px\" fill=\"danger600\" />\n <Typography tag=\"p\" variant=\"omega\" textAlign=\"center\">\n {formatMessage({\n id: 'content-manager.actions.delete.dialog.body',\n defaultMessage: 'Are you sure?',\n })}\n </Typography>\n </Flex>\n ),\n loading: isLoading,\n onConfirm: async () => {\n /**\n * If we have a match, we're in the list view\n * and therefore not in a form and shouldn't be\n * trying to set the submitting value.\n */\n if (!listViewPathMatch) {\n setSubmitting(true);\n }\n try {\n if (!documentId && collectionType !== SINGLE_TYPES) {\n console.error(\n \"You're trying to delete a document without an id, this is likely a bug with Strapi. Please open an issue.\"\n );\n\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.actions.delete.error',\n defaultMessage: 'An error occurred while trying to delete the document.',\n }),\n type: 'danger',\n });\n\n return;\n }\n\n const res = await deleteAction({\n documentId,\n model,\n collectionType,\n params: {\n locale: '*',\n },\n });\n\n if (!('error' in res)) {\n navigate({ pathname: `../${collectionType}/${model}` }, { replace: true });\n }\n } finally {\n if (!listViewPathMatch) {\n setSubmitting(false);\n }\n }\n },\n },\n variant: 'danger',\n position: ['header', 'table-row'],\n };\n};\n\nDeleteAction.type = 'delete';\nDeleteAction.position = ['header', 'table-row'];\n\nconst DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction];\n\nexport { Header, DEFAULT_HEADER_ACTIONS };\nexport type { HeaderProps, HeaderActionDescription };\n"],"names":["Header","isCreating","status","title","documentTitle","formatMessage","useIntl","isCloning","useMatch","CLONE_PATH","isMobile","useIsMobile","params","useParams","query","activeTab","useQueryParams","id","defaultMessage","_jsxs","Flex","direction","alignItems","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","paddingTop","initial","medium","paddingBottom","gap","_jsx","BackButton","fallback","collectionType","SINGLE_TYPES","undefined","COLLECTION_TYPES","slug","width","justifyContent","Typography","variant","tag","Box","display","HeaderDocumentActions","HeaderToolbar","marginTop","DocumentStatus","model","document","meta","useDoc","plugins","useStrapiApp","state","DescriptionComponentRenderer","props","documentId","descriptions","apis","getDocumentActions","actions","headerActions","filter","action","positions","Array","isArray","position","includes","DocumentActionsMenu","label","Information","getHeaderActions","length","HeaderActions","createAndUpdateDocument","availableStatus","find","publishedAt","publishDocument","creator","CREATED_BY_ATTRIBUTE_NAME","getDisplayName","updator","UPDATED_BY_ATTRIBUTE_NAME","information","isDisplayed","PUBLISHED_AT_ATTRIBUTE_NAME","value","time","RelativeTime","timestamp","Date","isAnonymous","PUBLISHED_BY_ATTRIBUTE_NAME","author","UPDATED_AT_ATTRIBUTE_NAME","CREATED_AT_ATTRIBUTE_NAME","info","borderWidth","borderStyle","borderColor","padding","marginLeft","marginRight","map","fontWeight","textColor","dialogId","setDialogId","React","useState","handleClick","e","onClick","dialog","muteDialog","preventDefault","handleClose","options","SingleSelect","size","onChange","onSelect","aria-label","option","_render","SingleSelectOption","_status","HeaderActionStatus","tooltip","message","Fragment","IconButton","disabled","icon","HeaderActionDialog","isOpen","onClose","children","open","setOpen","debouncedOpen","useDebounce","handleMouseEnter","handleMouseLeave","Popover","Root","onOpenChange","Anchor","style","alignSelf","onMouseEnter","onMouseLeave","aria-describedby","height","Content","role","side","align","onCancel","content","Dialog","ConfigureTheViewAction","navigate","useNavigate","isDesktop","useIsDesktop","ListPlus","type","EditTheModelAction","Pencil","DeleteAction","listViewPathMatch","LIST_PATH","canDelete","useDocumentRBAC","delete","deleteAction","isLoading","useDocumentActions","toggleNotification","useNotification","setSubmitting","useForm","isLocalized","locale","Trash","WarningCircle","fill","textAlign","loading","onConfirm","console","error","res","pathname","replace","DEFAULT_HEADER_ACTIONS"],"mappings":"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"}
|