@payloadcms/ui 3.49.0-canary.8 → 3.49.1
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/elements/AddNewRelation/index.d.ts.map +1 -1
- package/dist/elements/AddNewRelation/index.js +1 -1
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +65 -47
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.scss +10 -0
- package/dist/elements/DeleteMany/index.d.ts +6 -2
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +153 -51
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.scss +13 -0
- package/dist/elements/DocumentControls/index.d.ts +3 -0
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +24 -5
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +4 -2
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.d.ts +5 -1
- package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.d.ts +19 -0
- package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +28 -9
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +26 -12
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentFields/index.d.ts +1 -0
- package/dist/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/elements/DocumentFields/index.js +3 -1
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.d.ts +3 -2
- package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.js +3 -1
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -1
- package/dist/elements/FolderView/Cell/index.server.js +2 -1
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts +7 -0
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -0
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +164 -0
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
- package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/index.js +1 -0
- package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
- package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts +10 -0
- package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts.map +1 -0
- package/dist/elements/ListHeaderTabs/ByFolderPill.js +70 -0
- package/dist/elements/ListHeaderTabs/ByFolderPill.js.map +1 -0
- package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts +9 -0
- package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts.map +1 -0
- package/dist/elements/ListHeaderTabs/DefaultListPill.js +68 -0
- package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +1 -0
- package/dist/elements/ListHeaderTabs/TrashPill.d.ts +6 -0
- package/dist/elements/ListHeaderTabs/TrashPill.d.ts.map +1 -0
- package/dist/elements/ListHeaderTabs/TrashPill.js +53 -0
- package/dist/elements/ListHeaderTabs/TrashPill.js.map +1 -0
- package/dist/elements/{ListFolderPills → ListHeaderTabs}/index.scss +1 -2
- package/dist/elements/ListSelection/index.scss +1 -1
- package/dist/elements/PermanentlyDeleteButton/index.d.ts +14 -0
- package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -0
- package/dist/elements/PermanentlyDeleteButton/index.js +147 -0
- package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -0
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts +3 -3
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +19 -70
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.scss +10 -0
- package/dist/elements/RelationshipTable/index.d.ts +1 -0
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +61 -40
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RestoreButton/index.d.ts +15 -0
- package/dist/elements/RestoreButton/index.d.ts.map +1 -0
- package/dist/elements/RestoreButton/index.js +171 -0
- package/dist/elements/RestoreButton/index.js.map +1 -0
- package/dist/elements/RestoreButton/index.scss +25 -0
- package/dist/elements/RestoreMany/index.d.ts +9 -0
- package/dist/elements/RestoreMany/index.d.ts.map +1 -0
- package/dist/elements/RestoreMany/index.js +193 -0
- package/dist/elements/RestoreMany/index.js.map +1 -0
- package/dist/elements/RestoreMany/index.scss +25 -0
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +6 -4
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +12 -9
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +4 -1
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/TrashBanner/index.d.ts +4 -0
- package/dist/elements/TrashBanner/index.d.ts.map +1 -0
- package/dist/elements/TrashBanner/index.js +37 -0
- package/dist/elements/TrashBanner/index.js.map +1 -0
- package/dist/elements/TrashBanner/index.scss +20 -0
- package/dist/exports/client/index.js +24 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js +2 -0
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +8 -8
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +7 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +2 -0
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
- package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/{elements/AddNewRelation → hooks}/useRelatedCollections.d.ts +3 -0
- package/dist/hooks/useRelatedCollections.d.ts.map +1 -0
- package/dist/{elements/AddNewRelation → hooks}/useRelatedCollections.js +4 -1
- package/dist/hooks/useRelatedCollections.js.map +1 -0
- package/dist/icons/Trash/index.d.ts +6 -0
- package/dist/icons/Trash/index.d.ts.map +1 -0
- package/dist/icons/Trash/index.js +22 -0
- package/dist/icons/Trash/index.js.map +1 -0
- package/dist/icons/Trash/index.scss +6 -0
- package/dist/providers/DocumentInfo/types.d.ts +2 -0
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +1 -0
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.d.ts +2 -1
- package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js +4 -2
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +4 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +2 -0
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
- package/dist/utilities/getDisplayedFieldValue.js +2 -2
- package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
- package/dist/utilities/hasOptionLabelJSXElement.js +2 -2
- package/dist/utilities/hasOptionLabelJSXElement.js.map +1 -1
- package/dist/utilities/isValidReactElement.d.ts +7 -0
- package/dist/utilities/isValidReactElement.d.ts.map +1 -0
- package/dist/utilities/isValidReactElement.js +10 -0
- package/dist/utilities/isValidReactElement.js.map +1 -0
- package/dist/utilities/renderTable.d.ts +4 -3
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +15 -13
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/CollectionFolder/index.d.ts.map +1 -1
- package/dist/views/CollectionFolder/index.js +15 -5
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/index.js +5 -4
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.d.ts +1 -0
- package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +26 -15
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +11 -3
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.d.ts +4 -2
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +24 -9
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.d.ts +2 -1
- package/dist/views/List/ListSelection/index.d.ts.map +1 -1
- package/dist/views/List/ListSelection/index.js +26 -17
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +28 -13
- package/dist/views/List/index.js.map +1 -1
- package/package.json +7 -7
- package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +0 -1
- package/dist/elements/AddNewRelation/useRelatedCollections.js.map +0 -1
- package/dist/elements/ListFolderPills/index.d.ts +0 -10
- package/dist/elements/ListFolderPills/index.d.ts.map +0 -1
- package/dist/elements/ListFolderPills/index.js +0 -97
- package/dist/elements/ListFolderPills/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useLivePreviewContext","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","MoveDocToFolder","Gutter","LivePreviewToggler","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","BeforeDocumentControls","customComponents","t0","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","collectionConfigDrafts","globalConfigDrafts","autosaveEnabled","autosave","collectionAutosaveEnabled","globalAutosaveEnabled","showSaveDraftButton","showCopyToLocale","disableCopyToLocale","showFolderMetaIcon","folders","showLockedMetaIcon","t6","_jsx","t7","buttonStyle","onClick","size","type","children","_jsxs","className","folderCollectionSlug","folderFieldName","fieldName","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { MoveDocToFolder } from '../FolderView/MoveDocToFolder/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const collectionConfigDrafts = collectionConfig?.versions?.drafts\n const globalConfigDrafts = globalConfig?.versions?.drafts\n\n const autosaveEnabled =\n (collectionConfigDrafts && collectionConfigDrafts?.autosave) ||\n (globalConfigDrafts && globalConfigDrafts?.autosave)\n\n const collectionAutosaveEnabled = collectionConfigDrafts && collectionConfigDrafts?.autosave\n const globalAutosaveEnabled = globalConfigDrafts && globalConfigDrafts?.autosave\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfigDrafts.autosave !== false &&\n collectionConfigDrafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfigDrafts.autosave !== false &&\n globalConfigDrafts.autosave.showSaveDraftButton === true)\n\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showFolderMetaIcon = collectionConfig && collectionConfig.folders\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {showLockedMetaIcon || showFolderMetaIcon ? (\n <div className={`${baseClass}__meta-icons`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {showFolderMetaIcon && config.folders && (\n <MoveDocToFolder\n folderCollectionSlug={config.folders.slug}\n folderFieldName={config.folders.fieldName}\n />\n )}\n </div>\n ) : null}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}: </p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}: </p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useLivePreviewContext","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","MoveDocToFolder","Gutter","LivePreviewToggler","Locked","PermanentlyDeleteButton","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","RestoreButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","BeforeDocumentControls","customComponents","t0","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","isTrashed","onDelete","onDrawerCreateNew","onDuplicate","onRestore","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","collectionConfigDrafts","globalConfigDrafts","autosaveEnabled","autosave","collectionAutosaveEnabled","globalAutosaveEnabled","showSaveDraftButton","showCopyToLocale","disableCopyToLocale","showFolderMetaIcon","folders","showLockedMetaIcon","t6","_jsx","t7","buttonStyle","onClick","size","type","children","_jsxs","className","folderCollectionSlug","folderFieldName","fieldName","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","buttonId","toString","singularLabel","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { MoveDocToFolder } from '../FolderView/MoveDocToFolder/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { PermanentlyDeleteButton } from '../PermanentlyDeleteButton/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { RestoreButton } from '../RestoreButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport './index.scss'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly isTrashed?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n isTrashed,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onRestore,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const collectionConfigDrafts = collectionConfig?.versions?.drafts\n const globalConfigDrafts = globalConfig?.versions?.drafts\n\n const autosaveEnabled =\n (collectionConfigDrafts && collectionConfigDrafts?.autosave) ||\n (globalConfigDrafts && globalConfigDrafts?.autosave)\n\n const collectionAutosaveEnabled = collectionConfigDrafts && collectionConfigDrafts?.autosave\n const globalAutosaveEnabled = globalConfigDrafts && globalConfigDrafts?.autosave\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfigDrafts.autosave !== false &&\n collectionConfigDrafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfigDrafts.autosave !== false &&\n globalConfigDrafts.autosave.showSaveDraftButton === true)\n\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showFolderMetaIcon = collectionConfig && collectionConfig.folders\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {showLockedMetaIcon || showFolderMetaIcon ? (\n <div className={`${baseClass}__meta-icons`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {showFolderMetaIcon && config.folders && !isTrashed && (\n <MoveDocToFolder\n folderCollectionSlug={config.folders.slug}\n folderFieldName={config.folders.fieldName}\n />\n )}\n </div>\n ) : null}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission &&\n autosaveEnabled &&\n !unsavedDraftWithValidations &&\n !isTrashed && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>\n {i18n.t(isTrashed ? 'general:deleted' : 'general:lastModified')}: \n </p>\n\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}: </p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && !isTrashed && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {hasDeletePermission && isTrashed && (\n <PermanentlyDeleteButton\n buttonId=\"action-permanently-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {hasSavePermission && isTrashed && (\n <RestoreButton\n buttonId=\"action-restore\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onRestore={onRestore}\n redirectAfterRestore={redirectAfterRestore}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AASA,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,SAAS,QAAQ;AAI3C,SAASC,mBAAmB,EAAEC,iBAAiB,QAAQ;AACvD,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,QAAQ;AACzB,SAASC,MAAM,QAAQ;AACvB,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,eAAe,QAAQ;AAChC,SAASC,MAAM,QAAQ;AACvB,SAASC,kBAAkB,QAAQ;AACnC,SAASC,MAAM,QAAQ;AACvB,SAASC,uBAAuB,QAAQ;AACxC,SAASC,KAAK,EAAEC,SAAS,QAAQ;AACjC,SAASC,aAAa,QAAQ;AAC9B,SAASC,aAAa,QAAQ;AAC9B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,QAAQ;AAC9B,SAASC,UAAU,QAAQ;AAC3B,OAAO;AACP,SAASC,eAAe,QAAQ;AAChC,SAASC,MAAM,QAAQ;AAEvB,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,gBAAA,GAkCRC,KAAA;EAAA,MAAAC,CAAA,GAAAnC,EAAA;EACH;IAAAoC,EAAA;IAAAC,IAAA;IAAAC,sBAAA;IAAAC,gBAAA,EAAAC,EAAA;IAAAC,IAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,aAAA;IAAAC,iBAAA;IAAAC,aAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,iBAAA;IAAAC,WAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,WAAA;IAAAC,uBAAA;IAAAC,mBAAA;IAAAC,sBAAA;IAAAC,oBAAA;IAAAC;EAAA,IA8BI1B,KAAA;EAAA,IAAA2B,EAAA;EAAA,IAAA1B,CAAA,QAAAK,EAAA;IA1BgBqB,EAAA,GAAArB,EAKZ,KAAAsB,SAAA,QALYtB,EAKZ;IAAAL,CAAA,MAAAK,EAAA;IAAAL,CAAA,MAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EALY;IAAAV,aAAA,EAAAsC,mBAAA;IAAArC,aAAA,EAAAsC,mBAAA;IAAAnC,UAAA,EAAAoC,gBAAA;IAAAnC,eAAA,EAAAoC;EAAA,IAAAL,EAKZ;EAuBR;IAAAM,IAAA;IAAAC;EAAA,IAAoBzD,cAAA;EAEpB,MAAA0D,SAAA,GAAkB5D,YAAA;EAElB;IAAA6D,MAAA;IAAAC;EAAA,IAAoC/D,SAAA;EAEpC,MAAAgE,gBAAA,GAAyBD,eAAA;IAAAE,cAAA,EAAkCpC;EAAA,CAAK;EAEhE,MAAAqC,YAAA,GAAqBH,eAAA;IAAAI,UAAA,EAA8BtC;EAAA,CAAK;EAExD;IAAAuC;EAAA,IAAiClE,qBAAA;EAEjC;IAAAmE,KAAA,EAAAC,EAAA;IAAAC,YAAA;IAAAC,MAAA,EAAAC;EAAA,IAIIX,MAAA;EAHK;IAAAY;EAAA,IAAAJ,EAAc;EAEb;IAAAD,KAAA,EAAAM;EAAA,IAAAF,EAAqB;EAI/B,OAAAG,SAAA,EAAAC,YAAA,IAAkClF,KAAA,CAAAmF,QAAA,CAAuB;EACzD,OAAAC,SAAA,EAAAC,YAAA,IAAkCrF,KAAA,CAAAmF,QAAA,CAAuB;EAEzD,MAAAG,UAAA,GAAmBlF,iBAAA;EACnB,MAAAmF,YAAA,GAAqBpF,mBAAA;EAAA,IAAAqF,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAzD,CAAA,QAAAM,IAAA,IAAAN,CAAA,QAAA+C,UAAA,IAAA/C,CAAA,QAAAgC,IAAA;IAEXwB,EAAA,GAAAA,CAAA;MAAA,IACJlD,IAAA,EAAA2C,SAAA;QACFC,YAAA,CAAazE,UAAA;UAAAiF,IAAA,EAAmBpD,IAAA,CAAA2C,SAAA;UAAAjB,IAAA;UAAA2B,OAAA,EAA+BZ;QAAA,CAAW;MAAA;MAAA,IAExEzC,IAAA,EAAA8C,SAAA;QACFC,YAAA,CAAa5E,UAAA;UAAAiF,IAAA,EAAmBpD,IAAA,CAAA8C,SAAA;UAAApB,IAAA;UAAA2B,OAAA,EAA+BZ;QAAA,CAAW;MAAA;IAAA;IAE3EU,EAAA,IAACnD,IAAA,EAAM0B,IAAA,EAAMe,UAAA;IAAW/C,CAAA,MAAAM,IAAA;IAAAN,CAAA,MAAA+C,UAAA;IAAA/C,CAAA,MAAAgC,IAAA;IAAAhC,CAAA,MAAAwD,EAAA;IAAAxD,CAAA,MAAAyD,EAAA;EAAA;IAAAD,EAAA,GAAAxD,CAAA;IAAAyD,EAAA,GAAAzD,CAAA;EAAA;EAP3B9B,SAAA,CAAUsF,EAOV,EAAGC,EAAwB;EAE3B,MAAAG,mBAAA,GAA4BxC,WAAA,IAAe,YAAYA,WAAA,IAAeA,WAAA,CAAAyC,MAAkB;EAExF,MAAAC,mBAAA,GAA4B1C,WAAA,IAAe,YAAYA,WAAA,IAAeA,WAAA,CAAA2C,MAAkB;EAExF,MAAAC,WAAA,GAAoBC,OAAA,CAClB5B,gBAAA,IAAoBpC,EAAA,KAAOM,cAAA,KAAmBqD,mBAAA,IAAuBE,mBAAkB;EAGzF,MAAAI,2BAAA,GACE,CAACjE,EAAA,IAAMoC,gBAAA,EAAA8B,QAAA,EAAAC,MAA4B,IAAU/B,gBAAA,CAAA8B,QAAA,EAAAC,MAAA,CAAAC,QAAkC;EAEjF,MAAAC,sBAAA,GAA+BjC,gBAAA,EAAA8B,QAAA,EAAAC,MAAA;EAC/B,MAAAG,kBAAA,GAA2BhC,YAAA,EAAA4B,QAAA,EAAAC,MAAA;EAE3B,MAAAI,eAAA,GACEF,sBAAC,IAA0BA,sBAAA,EAAAG,QAAwB,IAClDF,kBAAA,IAAsBA,kBAAA,EAAAE,QAAoB;EAE7C,MAAAC,yBAAA,GAAkCJ,sBAAA,IAA0BA,sBAAA,EAAAG,QAAwB;EACpF,MAAAE,qBAAA,GAA8BJ,kBAAA,IAAsBA,kBAAA,EAAAE,QAAoB;EAExE,MAAAG,mBAAA,GACEF,yBAAC,IACCJ,sBAAA,CAAAG,QAAA,UAAoC,IACpCH,sBAAA,CAAAG,QAAA,CAAAG,mBAAA,SAAwD,IACzDD,qBAAA,IACCJ,kBAAA,CAAAE,QAAA,UAAgC,IAChCF,kBAAA,CAAAE,QAAA,CAAAG,mBAAA,SAAoD;EAExD,MAAAC,gBAAA,GAAyBjC,YAAA,KAAiBP,gBAAA,EAAAK,KAAA,EAAAoC,mBAAyB;EAEnE,MAAAC,kBAAA,GAA2B1C,gBAAA,IAAoBA,gBAAA,CAAA2C,OAAwB;EACvE,MAAAC,kBAAA,GAA2BxD,IAAA,IAAQJ,uBAAA;EAAA,IAAA6D,EAAA;EAAA,IAAAlF,CAAA,QAAAa,UAAA,IAAAb,CAAA,QAAAyC,oBAAA;IAwFxByC,EAAA,GAAAzC,oBAAA,KAAyB5B,UAAA,IAAcsE,IAAA,CAAAlG,kBAAA,IAAC;IAAAe,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAyC,oBAAA;IAAAzC,CAAA,MAAAkF,EAAA;EAAA;IAAAA,EAAA,GAAAlF,CAAA;EAAA;EAAA,IAAAoF,EAAA;EAAA,IAAApF,CAAA,SAAAmB,UAAA,IAAAnB,CAAA,SAAAqB,uBAAA,IAAArB,CAAA,SAAAiC,CAAA,IAAAjC,CAAA,SAAAyB,IAAA;IAoDxC2D,EAAA,GAAA3D,IAAA,IAAQJ,uBAAA,IACP8D,IAAA,CAAAxG,MAAA;MAAA0G,WAAA,EACc;MAAApF,EAAA,EACT;MAAAqF,OAAA,EACMnE,UAAA;MAAAoE,IAAA,EACJ;MAAAC,IAAA,EACA;MAAAC,QAAA,EAEJxD,CAAA,CAAE;IAAA,C;;;;;;;;;SAjJfyD,KAAA,CAAA1G,MAAA;IAAA2G,SAAA,EAAA9F,SAAA;IAAA4F,QAAA,GACEC,KAAA,CAAC;MAAAC,SAAA,EAAe,GAAA9F,SAAA,WAAuB;MAAA4F,QAAA,GACrCC,KAAA,CAAC;QAAAC,SAAA,EAAe,GAAA9F,SAAA,WAAuB;QAAA4F,QAAA,GACpCR,kBAAA,IAAsBF,kBAAA,GACrBW,KAAA,CAAC;UAAAC,SAAA,EAAe,GAAA9F,SAAA,cAA0B;UAAA4F,QAAA,GACvCR,kBAAA,IACCE,IAAA,CAAAjG,MAAA;YAAAyG,SAAA,EAAmB,GAAA9F,SAAA,mBAA+B;YAAA4B;UAAA,C,GAEnDsD,kBAAA,IAAsB5C,MAAA,CAAA6C,OAAc,KAAKlE,SAAA,IACxCqE,IAAA,CAAApG,eAAA;YAAA6G,oBAAA,EACwBzD,MAAA,CAAA6C,OAAA,CAAA9E,IAAA;YAAA2F,eAAA,EACL1D,MAAA,CAAA6C,OAAA,CAAAc;UAAA,C;iBAIrB,EACJJ,KAAA,CAAC;UAAAC,SAAA,EAAc,GAAA9F,SAAA,QAAoB;UAAA4F,QAAA,GAChCpD,gBAAA,KAAqBzB,SAAA,KAAcD,aAAA,IAClCwE,IAAA,CAAC;YAAAQ,SAAA,EAAc,GAAA9F,SAAA,aAAyB;YAAA4F,QAAA,EACtCN,IAAA,CAAC;cAAAQ,SAAA,EAAa,GAAA9F,SAAA,SAAqB;cAAA4F,QAAA,EAChCzD,IAAA,CAAAC,CAAA,CAAO;gBAAA8D,KAAA,EACCjI,cAAA,CACLuE,gBAAA,EAAA2D,MAAA,EAAAC,QAAA,IAAsCjE,IAAA,CAAAC,CAAA,CAAO,qBAC7CD,IAAA;cAAA,CAEJ;YAAA,C;cAIJ,CAAAK,gBAAA,EAAA8B,QAAA,EAAAC,MAAA,IAAsC7B,YAAA,EAAA4B,QAAA,EAAAC,MAA6B,KACnEsB,KAAA,CAAAzH,QAAA;YAAAwH,QAAA,GACI,CAAAlD,YAAA,IAAiBF,gBAAA,IAAoBzB,SAAS,KAC9CuE,IAAA,CAAC;cAAAQ,SAAA,EACY,CAAC,GAAA9F,SAAA,UAAsB,EAAE,GAAAA,SAAA,aAAyB,EAAAqG,MAAA,CAAAjC,OACnD,EAAAkC,IAAA,CACF;cAAAV,QAAA,EAERN,IAAA,CAAAvF,MAAA,IAAC;YAAA,C,GAGJc,iBAAA,IACC8D,eAAA,KACCN,2BAAA,KACApD,SAAA,IACCqE,IAAA,CAAC;cAAAQ,SAAA,EAAc,GAAA9F,SAAA,aAAyB;cAAA4F,QAAA,EACtCN,IAAA,CAAAzG,QAAA;gBAAA0H,UAAA,EACc/D,gBAAA;gBAAAgE,MAAA,EACJ9D,YAAA;gBAAAtC,EAAA;gBAAAqG,qBAAA,EAEehG,IAAA,EAAA8C;cAAA,C;;cAMlCf,gBAAA,EAAAkE,UAAA,KAAiC3F,SAAA,IAAaD,aAAY,KACzD+E,KAAA,CAAAzH,QAAA;YAAAwH,QAAA,GACEC,KAAA,CAAC;cAAAC,SAAA,EACY,CAAC,GAAA9F,SAAA,aAAyB,EAAE,GAAAA,SAAA,cAA0B,EAAAqG,MAAA,CAAAjC,OACvD,EAAAkC,IAAA,CACF;cAAAK,KAAA,EACDlG,IAAA,EAAA2C,SAAA,GAAkBA,SAAA,GAAY;cAAAwC,QAAA,GAErCC,KAAA,CAAC;gBAAAC,SAAA,EAAa,GAAA9F,SAAA,SAAqB;gBAAA4F,QAAA,GAChCzD,IAAA,CAAAC,CAAA,CAAOnB,SAAA,GAAY,oBAAoB,yBAAwB;cAAA,C,GAGjER,IAAA,EAAA2C,SAAA,IAAmBkC,IAAA,CAAC;gBAAAQ,SAAA,EAAa,GAAA9F,SAAA,SAAqB;gBAAA4F,QAAA,EAAGxC;cAAA,C;gBAE5DyC,KAAA,CAAC;cAAAC,SAAA,EACY,CAAC,GAAA9F,SAAA,aAAyB,EAAE,GAAAA,SAAA,cAA0B,EAAAqG,MAAA,CAAAjC,OACvD,EAAAkC,IAAA,CACF;cAAAK,KAAA,EACDlG,IAAA,EAAA8C,SAAA,GAAkBA,SAAA,GAAY;cAAAqC,QAAA,GAErCC,KAAA,CAAC;gBAAAC,SAAA,EAAa,GAAA9F,SAAA,SAAqB;gBAAA4F,QAAA,GAAGzD,IAAA,CAAAC,CAAA,CAAO,oBAAmB;cAAA,C,GAC/D3B,IAAA,EAAA8C,SAAA,IAAmB+B,IAAA,CAAC;gBAAAQ,SAAA,EAAa,GAAA9F,SAAA,SAAqB;gBAAA4F,QAAA,EAAGrC;cAAA,C;;;;UAMpEsC,KAAA,CAAC;QAAAC,SAAA,EAAe,GAAA9F,SAAA,oBAAgC;QAAA4F,QAAA,GAC9CC,KAAA,CAAC;UAAAC,SAAA,EAAe,GAAA9F,SAAA,YAAwB;UAAA4F,QAAA,GACrCtF,sBAAA,EACA+E,EAAwC,EACvC,CAAA7C,gBAAA,EAAAK,KAAA,CAAA+D,OAAA,IAAmClE,YAAA,EAAAG,KAAA,CAAA+D,OAA0B,KAC7DtB,IAAA,CAAA3F,qBAAA;YAAAkH,eAAA,EACmB9E,mBAAA;YAAA+E,QAAA,EACPxB,IAAA,CAAA7F,aAAA,IAAC;UAAA,C,GAGdoB,iBAAA,KAAsBI,SAAA,IACrBqE,IAAA,CAAAlH,QAAA;YAAAwH,QAAA,EACGpD,gBAAA,EAAA8B,QAAA,EAAAC,MAAA,IAAsC7B,YAAA,EAAA4B,QAAA,EAAAC,MAAwB,GAC7DsB,KAAA,CAAAzH,QAAA;cAAAwH,QAAA,GACI,CAAAvB,2BAAA,KACCM,eAAA,IACAA,eAAA,IAAmBI,mBAAmB,KACvCO,IAAA,CAAA3F,qBAAA;gBAAAkH,eAAA,EACmB3E,qBAAA;gBAAA4E,QAAA,EACPxB,IAAA,CAAAxF,eAAA,IAAC;cAAA,C,GAGfwF,IAAA,CAAA3F,qBAAA;gBAAAkH,eAAA,EACmB7E,mBAAA;gBAAA8E,QAAA,EACPxB,IAAA,CAAA5F,aAAA,IAAC;cAAA,C;iBAIf4F,IAAA,CAAA3F,qBAAA;cAAAkH,eAAA,EACmB5E,gBAAA;cAAA6E,QAAA,EACPxB,IAAA,CAAAzF,UAAA,IAAC;YAAA,C;cAKlBoE,mBAAA,IAAuBhD,SAAA,IACtBqE,IAAA,CAAAhG,uBAAA;YAAAyH,QAAA,EACW;YAAAtE,cAAA,EACOD,gBAAA,EAAAnC,IAAA;YAAAD,EAAA,EACZA,EAAA,CAAA4G,QAAA,CAAW;YAAA9F,QAAA;YAAAO,mBAAA;YAAAwF,aAAA,EAGAzE,gBAAA,EAAA2D,MAAA,EAAAC;UAAA,C,GAGlBvF,iBAAA,IAAqBI,SAAA,IACpBqE,IAAA,CAAA1F,aAAA;YAAAmH,QAAA,EACW;YAAAtE,cAAA,EACOD,gBAAA,EAAAnC,IAAA;YAAAD,EAAA,EACZA,EAAA,CAAA4G,QAAA,CAAW;YAAA3F,SAAA;YAAAM,oBAAA;YAAAsF,aAAA,EAGAzE,gBAAA,EAAA2D,MAAA,EAAAC;UAAA,C,GAGlBb,E;YAYFpB,WAAA,KAAgB3C,uBAAA,IACf8D,IAAA,CAAA/F,KAAA;UAAA2H,MAAA,EAEIrB,KAAA,CAAC;YAAAC,SAAA,EAAe,GAAA9F,SAAA,QAAoB;YAAA4F,QAAA,GAClCN,IAAA,CAAC,YACDA,IAAA,CAAC,YACDA,IAAA,CAAC;UAAA,C;qBAGM,GAAAtF,SAAA,SAAqB;UAAAmH,QAAA,EACtBzD,YAAA,IAAgBD,UAAA;UAAA2D,eAAA,EACV;UAAA1B,IAAA,EACX;UAAA2B,aAAA,EACS;UAAAzB,QAAA,EAEdC,KAAA,CAAArG,SAAA,CAAA8H,WAAA;YAAA1B,QAAA,GACGZ,gBAAA,IAAoBM,IAAA,CAAAvG,cAAA,IAAC,GACrBgF,mBAAA,IACC8B,KAAA,CAAA1H,KAAA,CAAAC,QAAA;cAAAwH,QAAA,GACG,CAACjF,aAAA,IACA2E,IAAA,CAAAlH,QAAA;gBAAAwH,QAAA,EACGvD,SAAA,IAAY,GACXiD,IAAA,CAAA9F,SAAA,CAAAV,MAAA;kBAAAsB,EAAA,EAAqB;kBAAAqF,OAAA,EAAyBtE,iBAAA;kBAAAyE,QAAA,EAC3CzD,IAAA,CAAAC,CAAA,CAAO;gBAAA,C,IAGVkD,IAAA,CAAA9F,SAAA,CAAAV,MAAA;kBAAAyI,IAAA,EACQrJ,cAAA;oBAAAiF,UAAA;oBAAAqE,IAAA,EAEE,gBAAgBhF,gBAAA,EAAAnC,IAAA;kBAA+B,CACvD;kBAAAD,EAAA,EACG;kBAAAwF,QAAA,EAEFzD,IAAA,CAAAC,CAAA,CAAO;gBAAA,C;kBAKfI,gBAAA,CAAAiF,gBAAA,SAAsC,IAAQ1G,SAAA,IAC7CuE,IAAA,CAAArG,iBAAA;gBAAAmB,EAAA,EACMA,EAAA,CAAA4G,QAAA,CAAW;gBAAA5F,WAAA;gBAAAM,sBAAA;gBAAAuF,aAAA,EAGAzE,gBAAA,EAAA2D,MAAA,EAAAC,QAAA;gBAAA/F,IAAA,EACTmC,gBAAA,EAAAnC;cAAA,C;gBAKb4D,mBAAA,IACCqB,IAAA,CAAAtG,cAAA;cAAA+H,QAAA,EACW;cAAAtE,cAAA,EACOD,gBAAA,EAAAnC,IAAA;cAAAD,EAAA,EACZA,EAAA,CAAA4G,QAAA,CAAW;cAAA9F,QAAA;cAAAO,mBAAA;cAAAwF,aAAA,EAGAzE,gBAAA,EAAA2D,MAAA,EAAAC,QAAA;cAAAsB,UAAA,EACHlF,gBAAA,EAAAK,KAAA,EAAA6E;YAAA,C,GAGf9G,aAAA;UAAA,C;;;QAMX0E,IAAA,CAAC;MAAAQ,SAAA,EAAe,GAAA9F,SAAA;IAAuB,C;;CAG7C","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsK/D,CAAA"}
|
|
@@ -23,7 +23,8 @@ export const DocumentDrawerContent = ({
|
|
|
23
23
|
overrideEntityVisibility = true,
|
|
24
24
|
redirectAfterCreate,
|
|
25
25
|
redirectAfterDelete,
|
|
26
|
-
redirectAfterDuplicate
|
|
26
|
+
redirectAfterDuplicate,
|
|
27
|
+
redirectAfterRestore
|
|
27
28
|
}) => {
|
|
28
29
|
const {
|
|
29
30
|
getEntityConfig
|
|
@@ -63,6 +64,7 @@ export const DocumentDrawerContent = ({
|
|
|
63
64
|
redirectAfterCreate,
|
|
64
65
|
redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,
|
|
65
66
|
redirectAfterDuplicate: redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,
|
|
67
|
+
redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,
|
|
66
68
|
signal: controller.signal
|
|
67
69
|
});
|
|
68
70
|
if (result?.Document) {
|
|
@@ -77,7 +79,7 @@ export const DocumentDrawerContent = ({
|
|
|
77
79
|
abortGetDocumentViewRef.current = null;
|
|
78
80
|
};
|
|
79
81
|
void fetchDocumentView();
|
|
80
|
-
}, [collectionSlug, disableActions, drawerSlug, initialData, redirectAfterDelete, redirectAfterDuplicate, renderDocument, redirectAfterCreate, closeModal, overrideEntityVisibility, t, locale]);
|
|
82
|
+
}, [collectionSlug, disableActions, drawerSlug, initialData, redirectAfterDelete, redirectAfterDuplicate, redirectAfterRestore, renderDocument, redirectAfterCreate, closeModal, overrideEntityVisibility, t, locale]);
|
|
81
83
|
const onSave = useCallback(args => {
|
|
82
84
|
getDocumentView(args.doc.id);
|
|
83
85
|
if (typeof onSaveFromProps === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","getEntityConfig","locale","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","docID","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n}) => {\n const { getEntityConfig } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string, showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(existingDocID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAChE,SAASC,KAAK,QAAQ;AAItB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAC/C,SAASC,6BAA6B,QAAQ;AAE9C,OAAO,MAAMC,qBAAA,GAAuDA,CAAC;EACnEC,EAAA,EAAIC,aAAa;EACjBC,cAAc;EACdC,cAAc;EACdC,UAAU;EACVC,WAAW;EACXC,QAAA,EAAUC,iBAAiB;EAC3BC,WAAA,EAAaC,oBAAoB;EACjCC,MAAA,EAAQC,eAAe;EACvBC,wBAAA,GAA2B,IAAI;EAC/BC,mBAAmB;EACnBC,mBAAmB;EACnBC;
|
|
1
|
+
{"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","getEntityConfig","locale","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","docID","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n}) => {\n const { getEntityConfig } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string, showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(existingDocID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,10 @@ export type DocumentDrawerContextProps = {
|
|
|
10
10
|
collectionConfig?: ClientCollectionConfig;
|
|
11
11
|
doc: TypeWithID;
|
|
12
12
|
}) => Promise<void> | void;
|
|
13
|
+
readonly onRestore?: (args: {
|
|
14
|
+
collectionConfig?: ClientCollectionConfig;
|
|
15
|
+
id: string;
|
|
16
|
+
}) => Promise<void> | void;
|
|
13
17
|
readonly onSave?: (args: {
|
|
14
18
|
collectionConfig?: ClientCollectionConfig;
|
|
15
19
|
doc: TypeWithID;
|
|
@@ -17,7 +21,7 @@ export type DocumentDrawerContextProps = {
|
|
|
17
21
|
result: Data;
|
|
18
22
|
}) => Promise<FormState | void> | void;
|
|
19
23
|
};
|
|
20
|
-
export type DocumentDrawerContextType = DocumentDrawerContextProps;
|
|
24
|
+
export type DocumentDrawerContextType = {} & DocumentDrawerContextProps;
|
|
21
25
|
export declare const DocumentDrawerCallbacksContext: import("react").Context<DocumentDrawerContextProps>;
|
|
22
26
|
export declare const DocumentDrawerContextProvider: React.FC<{
|
|
23
27
|
children: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIlF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAC5B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;KAChB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;QACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;QAC9B,MAAM,EAAE,IAAI,CAAA;KACb,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIlF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAE1B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAC5B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;KAChB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QAC1B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,EAAE,EAAE,MAAM,CAAA;KACX,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACvB,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;QACzC,GAAG,EAAE,UAAU,CAAA;QACf,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;QAC9B,MAAM,EAAE,IAAI,CAAA;KACb,KAAK,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,EAAE,GAAG,0BAA0B,CAAA;AAEvE,eAAO,MAAM,8BAA8B,qDAAiD,CAAA;AAE5F,eAAO,MAAM,6BAA6B,EAAE,KAAK,CAAC,EAAE,CAClD;IACE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,GAAG,0BAA0B,CAG/B,CAAA;AAED,eAAO,MAAM,wBAAwB,QAAO,yBAQ3C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","names":["createContext","use","DocumentDrawerCallbacksContext","DocumentDrawerContextProvider","children","rest","_jsx","value","useDocumentDrawerContext","context","Error"],"sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"sourcesContent":["import type { ClientCollectionConfig, Data, FormState, TypeWithID } from 'payload'\n\nimport { createContext, use } from 'react'\n\nexport type DocumentDrawerContextProps = {\n readonly clearDoc?: () => void\n readonly drawerSlug: string\n readonly onDelete?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n /* only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n }) => Promise<void> | void\n readonly onSave?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n operation: 'create' | 'update'\n result: Data\n }) => Promise<FormState | void> | void\n}\n\nexport type DocumentDrawerContextType = DocumentDrawerContextProps\n\nexport const DocumentDrawerCallbacksContext = createContext({} as DocumentDrawerContextType)\n\nexport const DocumentDrawerContextProvider: React.FC<\n {\n children: React.ReactNode\n } & DocumentDrawerContextProps\n> = ({ children, ...rest }) => {\n return <DocumentDrawerCallbacksContext value={rest}>{children}</DocumentDrawerCallbacksContext>\n}\n\nexport const useDocumentDrawerContext = (): DocumentDrawerContextType => {\n const context = use(DocumentDrawerCallbacksContext)\n\n if (!context) {\n throw new Error('useDocumentDrawerContext must be used within a DocumentDrawerProvider')\n }\n\n return context\n}\n"],"mappings":";AAEA,SAASA,aAAa,EAAEC,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"Provider.js","names":["createContext","use","DocumentDrawerCallbacksContext","DocumentDrawerContextProvider","children","rest","_jsx","value","useDocumentDrawerContext","context","Error"],"sources":["../../../src/elements/DocumentDrawer/Provider.tsx"],"sourcesContent":["import type { ClientCollectionConfig, Data, FormState, TypeWithID } from 'payload'\n\nimport { createContext, use } from 'react'\n\nexport type DocumentDrawerContextProps = {\n readonly clearDoc?: () => void\n readonly drawerSlug: string\n readonly onDelete?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n /* only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n }) => Promise<void> | void\n readonly onRestore?: (args: {\n collectionConfig?: ClientCollectionConfig\n id: string\n }) => Promise<void> | void\n readonly onSave?: (args: {\n collectionConfig?: ClientCollectionConfig\n doc: TypeWithID\n operation: 'create' | 'update'\n result: Data\n }) => Promise<FormState | void> | void\n}\n\nexport type DocumentDrawerContextType = {} & DocumentDrawerContextProps\n\nexport const DocumentDrawerCallbacksContext = createContext({} as DocumentDrawerContextType)\n\nexport const DocumentDrawerContextProvider: React.FC<\n {\n children: React.ReactNode\n } & DocumentDrawerContextProps\n> = ({ children, ...rest }) => {\n return <DocumentDrawerCallbacksContext value={rest}>{children}</DocumentDrawerCallbacksContext>\n}\n\nexport const useDocumentDrawerContext = (): DocumentDrawerContextType => {\n const context = use(DocumentDrawerCallbacksContext)\n\n if (!context) {\n throw new Error('useDocumentDrawerContext must be used within a DocumentDrawerProvider')\n }\n\n return context\n}\n"],"mappings":";AAEA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AA4BnC,OAAO,MAAMC,8BAAA,gBAAiCF,aAAA,CAAc,CAAC;AAE7D,OAAO,MAAMG,6BAAA,GAITA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAA,CAAM;EACxB,oBAAOC,IAAA,CAACJ,8BAAA;IAA+BK,KAAA,EAAOF,IAAA;cAAOD;;AACvD;AAEA,OAAO,MAAMI,wBAAA,GAA2BA,CAAA;EACtC,MAAMC,OAAA,GAAUR,GAAA,CAAIC,8BAAA;EAEpB,IAAI,CAACO,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,OAAOD,OAAA;AACT","ignoreList":[]}
|
|
@@ -4,5 +4,24 @@ import './index.scss';
|
|
|
4
4
|
export declare const documentDrawerBaseClass = "doc-drawer";
|
|
5
5
|
export declare const DocumentDrawerToggler: React.FC<DocumentTogglerProps>;
|
|
6
6
|
export declare const DocumentDrawer: React.FC<DocumentDrawerProps>;
|
|
7
|
+
/**
|
|
8
|
+
* A hook to manage documents from a drawer modal.
|
|
9
|
+
* It provides the components and methods needed to open, close, and interact with the drawer.
|
|
10
|
+
* @example
|
|
11
|
+
* const [DocumentDrawer, DocumentDrawerToggler, { openDrawer, closeDrawer }] = useDocumentDrawer({
|
|
12
|
+
* collectionSlug: 'posts',
|
|
13
|
+
* id: postId, // optional, if not provided, it will render the "create new" view
|
|
14
|
+
* })
|
|
15
|
+
*
|
|
16
|
+
* // ...
|
|
17
|
+
*
|
|
18
|
+
* return (
|
|
19
|
+
* <div>
|
|
20
|
+
* <DocumentDrawerToggler collectionSlug="posts" id={postId}>
|
|
21
|
+
* Edit Post
|
|
22
|
+
* </DocumentDrawerToggler>
|
|
23
|
+
* <DocumentDrawer collectionSlug="posts" id={postId} />
|
|
24
|
+
* </div>
|
|
25
|
+
*/
|
|
7
26
|
export declare const useDocumentDrawer: UseDocumentDrawer;
|
|
8
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EAElB,MAAM,YAAY,CAAA;AAOnB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAcnD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2BhE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAQxD,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAsE/B,CAAA"}
|
|
@@ -5,9 +5,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
5
5
|
import { createElement as _createElement } from "react";
|
|
6
6
|
import { useModal } from '@faceless-ui/modal';
|
|
7
7
|
import React, { useCallback, useEffect, useId, useMemo, useState } from 'react';
|
|
8
|
+
import { useRelatedCollections } from '../../hooks/useRelatedCollections.js';
|
|
8
9
|
import { useEditDepth } from '../../providers/EditDepth/index.js';
|
|
9
10
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
10
|
-
import { useRelatedCollections } from '../AddNewRelation/useRelatedCollections.js';
|
|
11
11
|
import { Drawer, DrawerToggler } from '../Drawer/index.js';
|
|
12
12
|
import { DocumentDrawerContent } from './DrawerContent.js';
|
|
13
13
|
import './index.scss';
|
|
@@ -25,18 +25,18 @@ export const DocumentDrawerToggler = t0 => {
|
|
|
25
25
|
let collectionSlug;
|
|
26
26
|
let disabled;
|
|
27
27
|
let drawerSlug;
|
|
28
|
-
let id;
|
|
29
28
|
let onClick;
|
|
29
|
+
let operation;
|
|
30
30
|
let rest;
|
|
31
31
|
if ($[0] !== t0) {
|
|
32
32
|
({
|
|
33
|
-
id,
|
|
34
33
|
children,
|
|
35
34
|
className,
|
|
36
35
|
collectionSlug,
|
|
37
36
|
disabled,
|
|
38
37
|
drawerSlug,
|
|
39
38
|
onClick,
|
|
39
|
+
operation,
|
|
40
40
|
...rest
|
|
41
41
|
} = t0);
|
|
42
42
|
$[0] = t0;
|
|
@@ -45,8 +45,8 @@ export const DocumentDrawerToggler = t0 => {
|
|
|
45
45
|
$[3] = collectionSlug;
|
|
46
46
|
$[4] = disabled;
|
|
47
47
|
$[5] = drawerSlug;
|
|
48
|
-
$[6] =
|
|
49
|
-
$[7] =
|
|
48
|
+
$[6] = onClick;
|
|
49
|
+
$[7] = operation;
|
|
50
50
|
$[8] = rest;
|
|
51
51
|
} else {
|
|
52
52
|
children = $[1];
|
|
@@ -54,15 +54,15 @@ export const DocumentDrawerToggler = t0 => {
|
|
|
54
54
|
collectionSlug = $[3];
|
|
55
55
|
disabled = $[4];
|
|
56
56
|
drawerSlug = $[5];
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
onClick = $[6];
|
|
58
|
+
operation = $[7];
|
|
59
59
|
rest = $[8];
|
|
60
60
|
}
|
|
61
61
|
const {
|
|
62
62
|
t
|
|
63
63
|
} = useTranslation();
|
|
64
64
|
const [collectionConfig] = useRelatedCollections(collectionSlug);
|
|
65
|
-
const t1 =
|
|
65
|
+
const t1 = operation === "create" ? "fields:addNewLabel" : "general:editLabel";
|
|
66
66
|
const t2 = collectionConfig?.labels.singular;
|
|
67
67
|
let t3;
|
|
68
68
|
if ($[9] !== children || $[10] !== className || $[11] !== disabled || $[12] !== drawerSlug || $[13] !== onClick || $[14] !== rest || $[15] !== t || $[16] !== t1 || $[17] !== t2) {
|
|
@@ -115,6 +115,25 @@ export const DocumentDrawer = props => {
|
|
|
115
115
|
})
|
|
116
116
|
});
|
|
117
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* A hook to manage documents from a drawer modal.
|
|
120
|
+
* It provides the components and methods needed to open, close, and interact with the drawer.
|
|
121
|
+
* @example
|
|
122
|
+
* const [DocumentDrawer, DocumentDrawerToggler, { openDrawer, closeDrawer }] = useDocumentDrawer({
|
|
123
|
+
* collectionSlug: 'posts',
|
|
124
|
+
* id: postId, // optional, if not provided, it will render the "create new" view
|
|
125
|
+
* })
|
|
126
|
+
*
|
|
127
|
+
* // ...
|
|
128
|
+
*
|
|
129
|
+
* return (
|
|
130
|
+
* <div>
|
|
131
|
+
* <DocumentDrawerToggler collectionSlug="posts" id={postId}>
|
|
132
|
+
* Edit Post
|
|
133
|
+
* </DocumentDrawerToggler>
|
|
134
|
+
* <DocumentDrawer collectionSlug="posts" id={postId} />
|
|
135
|
+
* </div>
|
|
136
|
+
*/
|
|
118
137
|
export const useDocumentDrawer = t0 => {
|
|
119
138
|
const $ = _c(38);
|
|
120
139
|
const {
|
|
@@ -228,7 +247,7 @@ export const useDocumentDrawer = t0 => {
|
|
|
228
247
|
...props_0,
|
|
229
248
|
collectionSlug,
|
|
230
249
|
drawerSlug,
|
|
231
|
-
id
|
|
250
|
+
operation: !id ? "create" : "update"
|
|
232
251
|
});
|
|
233
252
|
$[23] = collectionSlug;
|
|
234
253
|
$[24] = drawerSlug;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","React","useCallback","useEffect","useId","useMemo","useState","useEditDepth","useTranslation","useRelatedCollections","Drawer","DrawerToggler","DocumentDrawerContent","documentDrawerBaseClass","formatDocumentDrawerSlug","id","collectionSlug","depth","uuid","DocumentDrawerToggler","t0","$","children","className","disabled","drawerSlug","onClick","rest","t","collectionConfig","t1","t2","labels","singular","t3","t4","label","t5","filter","Boolean","_jsx","join","slug","DocumentDrawer","props","gutter","Header","useDocumentDrawer","overrideEntityVisibility","editDepth","closeModal","modalState","openModal","toggleModal","isOpen","setIsOpen","toggleDrawer","closeDrawer","t6","openDrawer","t7","t8","_createElement","key","MemoizedDrawer","t9","t10","props_0","MemoizedDrawerToggler","t11","t12","drawerDepth","isDrawerOpen","MemoizedDrawerState","t13"],"sources":["../../../src/elements/DocumentDrawer/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useId, useMemo, useState } from 'react'\n\nimport type { DocumentDrawerProps, DocumentTogglerProps, UseDocumentDrawer } from './types.js'\n\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useRelatedCollections } from '../AddNewRelation/useRelatedCollections.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { DocumentDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const documentDrawerBaseClass = 'doc-drawer'\n\nconst formatDocumentDrawerSlug = ({\n id,\n collectionSlug,\n depth,\n uuid,\n}: {\n collectionSlug: string\n depth: number\n id: number | string\n uuid: string // supply when creating a new document and no id is available\n}) => `doc-drawer_${collectionSlug}_${depth}${id ? `_${id}` : ''}_${uuid}`\n\nexport const DocumentDrawerToggler: React.FC<DocumentTogglerProps> = ({\n id,\n children,\n className,\n collectionSlug,\n disabled,\n drawerSlug,\n onClick,\n ...rest\n}) => {\n const { t } = useTranslation()\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n\n return (\n <DrawerToggler\n aria-label={t(!id ? 'fields:addNewLabel' : 'general:editLabel', {\n label: collectionConfig?.labels.singular,\n })}\n className={[className, `${documentDrawerBaseClass}__toggler`].filter(Boolean).join(' ')}\n disabled={disabled}\n onClick={onClick}\n slug={drawerSlug}\n {...rest}\n >\n {children}\n </DrawerToggler>\n )\n}\n\nexport const DocumentDrawer: React.FC<DocumentDrawerProps> = (props) => {\n const { drawerSlug } = props\n\n return (\n <Drawer className={documentDrawerBaseClass} gutter={false} Header={null} slug={drawerSlug}>\n <DocumentDrawerContent {...props} />\n </Drawer>\n )\n}\n\nexport const useDocumentDrawer: UseDocumentDrawer = ({\n id,\n collectionSlug,\n overrideEntityVisibility,\n}) => {\n const editDepth = useEditDepth()\n const uuid = useId()\n const { closeModal, modalState, openModal, toggleModal } = useModal()\n const [isOpen, setIsOpen] = useState(false)\n\n const drawerSlug = formatDocumentDrawerSlug({\n id,\n collectionSlug,\n depth: editDepth,\n uuid,\n })\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const toggleDrawer = useCallback(() => {\n toggleModal(drawerSlug)\n }, [toggleModal, drawerSlug])\n\n const closeDrawer = useCallback(() => {\n closeModal(drawerSlug)\n }, [closeModal, drawerSlug])\n\n const openDrawer = useCallback(() => {\n openModal(drawerSlug)\n }, [openModal, drawerSlug])\n\n const MemoizedDrawer = useMemo(() => {\n return (props) => (\n <DocumentDrawer\n {...props}\n collectionSlug={collectionSlug}\n drawerSlug={drawerSlug}\n id={id}\n key={drawerSlug}\n overrideEntityVisibility={overrideEntityVisibility}\n />\n )\n }, [id, drawerSlug, collectionSlug, overrideEntityVisibility])\n\n const MemoizedDrawerToggler = useMemo(() => {\n return (props) => (\n <DocumentDrawerToggler\n {...props}\n collectionSlug={collectionSlug}\n drawerSlug={drawerSlug}\n id={id}\n />\n )\n }, [id, drawerSlug, collectionSlug])\n\n const MemoizedDrawerState = useMemo(\n () => ({\n closeDrawer,\n drawerDepth: editDepth,\n drawerSlug,\n isDrawerOpen: isOpen,\n openDrawer,\n toggleDrawer,\n }),\n [editDepth, drawerSlug, isOpen, toggleDrawer, closeDrawer, openDrawer],\n )\n\n return [MemoizedDrawer, MemoizedDrawerToggler, MemoizedDrawerState]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;;AACA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,KAAK,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AAIxE,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,MAAM,EAAEC,aAAa,QAAQ;AACtC,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,uBAAA,GAA0B;AAEvC,MAAMC,wBAAA,GAA2BA,CAAC;EAChCC,EAAE;EACFC,cAAc;EACdC,KAAK;EACLC;AAAI,CAML,KAAK,cAAcF,cAAA,IAAkBC,KAAA,GAAQF,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,MAAMG,IAAA,EAAM;AAE1E,OAAO,MAAMC,qBAAA,GAAwDC,EAAA;EAAA,MAAAC,CAAA,GAAAtB,EAAA;EAAA,IAAAuB,QAAA;EAAA,IAAAC,SAAA;EAAA,IAAAP,cAAA;EAAA,IAAAQ,QAAA;EAAA,IAAAC,UAAA;EAAA,IAAAV,EAAA;EAAA,IAAAW,OAAA;EAAA,IAAAC,IAAA;EAAA,IAAAN,CAAA,QAAAD,EAAA;IAAC;MAAAL,EAAA;MAAAO,QAAA;MAAAC,SAAA;MAAAP,cAAA;MAAAQ,QAAA;MAAAC,UAAA;MAAAC,OAAA;MAAA,GAAAC;IAAA,IAAAP,EASrE;IAAAC,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAC,QAAA;IAAAD,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAL,cAAA;IAAAK,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAI,UAAA;IAAAJ,CAAA,MAAAN,EAAA;IAAAM,CAAA,MAAAK,OAAA;IAAAL,CAAA,MAAAM,IAAA;EAAA;IAAAL,QAAA,GAAAD,CAAA;IAAAE,SAAA,GAAAF,CAAA;IAAAL,cAAA,GAAAK,CAAA;IAAAG,QAAA,GAAAH,CAAA;IAAAI,UAAA,GAAAJ,CAAA;IAAAN,EAAA,GAAAM,CAAA;IAAAK,OAAA,GAAAL,CAAA;IAAAM,IAAA,GAAAN,CAAA;EAAA;EACC;IAAAO;EAAA,IAAcpB,cAAA;EACd,OAAAqB,gBAAA,IAA2BpB,qBAAA,CAAsBO,cAAA;EAI/B,MAAAc,EAAA,IAACf,EAAA,GAAK,uBAAuB;EAClC,MAAAgB,EAAA,GAAAF,gBAAA,EAAAG,MAAA,CAAAC,QAAA;EAAyB,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAC,QAAA,IAAAD,CAAA,SAAAE,SAAA,IAAAF,CAAA,SAAAG,QAAA,IAAAH,CAAA,SAAAI,UAAA,IAAAJ,CAAA,SAAAK,OAAA,IAAAL,CAAA,SAAAM,IAAA,IAAAN,CAAA,SAAAO,CAAA,IAAAP,CAAA,SAAAS,EAAA,IAAAT,CAAA,SAAAU,EAAA;IADtB,MAAAI,EAAA,GAAAP,CAAA,CAAEE,EAA6B;MAAAM,KAAA,EAClCL;IAAyB,CAClC;IAAA,IAAAM,EAAA;IAAA,IAAAhB,CAAA,SAAAE,SAAA;MACWc,EAAA,IAACd,SAAA,EAAW,GAAAV,uBAAA,WAAqC,EAAAyB,MAAA,CAAAC,OAAS;MAAAlB,CAAA,OAAAE,SAAA;MAAAF,CAAA,OAAAgB,EAAA;IAAA;MAAAA,EAAA,GAAAhB,CAAA;IAAA;IAJvEa,EAAA,GAAAM,IAAA,CAAA7B,aAAA;MAAA,cACcwB,EAEZ;MAAAZ,SAAA,EACWc,EAA0D,CAAAI,IAAA,CAAc;MAAAjB,QAAA;MAAAE,OAAA;MAAAgB,IAAA,EAG7EjB,UAAA;MAAA,GACFE,IAAI;MAAAL;IAAA,C;;;;;;;;;;;;;;SARVY,E;CAaJ;AAEA,OAAO,MAAMS,cAAA,GAAiDC,KAAA;EAC5D,MAAM;IAAEnB;EAAU,CAAE,GAAGmB,KAAA;EAEvB,oBACEJ,IAAA,CAAC9B,MAAA;IAAOa,SAAA,EAAWV,uBAAA;IAAyBgC,MAAA,EAAQ;IAAOC,MAAA,EAAQ;IAAMJ,IAAA,EAAMjB,UAAA;cAC7E,aAAAe,IAAA,CAAC5B,qBAAA;MAAuB,GAAGgC;;;AAGjC;AAEA,OAAO,MAAMG,iBAAA,GAAuC3B,EAAA;EAAA,MAAAC,CAAA,GAAAtB,EAAA;EAAC;IAAAgB,EAAA;IAAAC,cAAA;IAAAgC;EAAA,IAAA5B,EAIpD;EACC,MAAA6B,SAAA,GAAkB1C,YAAA;EAClB,MAAAW,IAAA,GAAad,KAAA;EACb;IAAA8C,UAAA;IAAAC,UAAA;IAAAC,SAAA;IAAAC;EAAA,IAA2DrD,QAAA;EAC3D,OAAAsD,MAAA,EAAAC,SAAA,IAA4BjD,QAAA,MAAS;EAAA,IAAAwB,EAAA;EAAA,IAAAT,CAAA,QAAAL,cAAA,IAAAK,CAAA,QAAA4B,SAAA,IAAA5B,CAAA,QAAAN,EAAA,IAAAM,CAAA,QAAAH,IAAA;IAElBY,EAAA,GAAAhB,wBAAA;MAAAC,EAAA;MAAAC,cAAA;MAAAC,KAAA,EAGVgC,SAAA;MAAA/B;IAAA,CAET;IAAAG,CAAA,MAAAL,cAAA;IAAAK,CAAA,MAAA4B,SAAA;IAAA5B,CAAA,MAAAN,EAAA;IAAAM,CAAA,MAAAH,IAAA;IAAAG,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EALA,MAAAI,UAAA,GAAmBK,EAKnB;EAAA,IAAAC,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAb,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAA8B,UAAA;IAEUpB,EAAA,GAAAA,CAAA;MACRwB,SAAA,CAAUhB,OAAA,CAAQY,UAAU,CAAC1B,UAAA,GAAA6B,MAAa;IAAA;IACzCpB,EAAA,IAACiB,UAAA,EAAY1B,UAAA;IAAWJ,CAAA,MAAAI,UAAA;IAAAJ,CAAA,MAAA8B,UAAA;IAAA9B,CAAA,MAAAU,EAAA;IAAAV,CAAA,MAAAa,EAAA;EAAA;IAAAH,EAAA,GAAAV,CAAA;IAAAa,EAAA,GAAAb,CAAA;EAAA;EAF3BlB,SAAA,CAAU4B,EAEV,EAAGG,EAAwB;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAI,UAAA,IAAAJ,CAAA,SAAAgC,WAAA;IAEMlB,EAAA,GAAAA,CAAA;MAC/BkB,WAAA,CAAY5B,UAAA;IAAA;IACdJ,CAAA,MAAAI,UAAA;IAAAJ,CAAA,OAAAgC,WAAA;IAAAhC,CAAA,OAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAFA,MAAAmC,YAAA,GAAqBrB,EAEO;EAAA,IAAAE,EAAA;EAAA,IAAAhB,CAAA,SAAA6B,UAAA,IAAA7B,CAAA,SAAAI,UAAA;IAEIY,EAAA,GAAAA,CAAA;MAC9Ba,UAAA,CAAWzB,UAAA;IAAA;IACbJ,CAAA,OAAA6B,UAAA;IAAA7B,CAAA,OAAAI,UAAA;IAAAJ,CAAA,OAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAFA,MAAAoC,WAAA,GAAoBpB,EAEO;EAAA,IAAAqB,EAAA;EAAA,IAAArC,CAAA,SAAAI,UAAA,IAAAJ,CAAA,SAAA+B,SAAA;IAEIM,EAAA,GAAAA,CAAA;MAC7BN,SAAA,CAAU3B,UAAA;IAAA;IACZJ,CAAA,OAAAI,UAAA;IAAAJ,CAAA,OAAA+B,SAAA;IAAA/B,CAAA,OAAAqC,EAAA;EAAA;IAAAA,EAAA,GAAArC,CAAA;EAAA;EAFA,MAAAsC,UAAA,GAAmBD,EAEO;EAAA,IAAAE,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAxC,CAAA,SAAAL,cAAA,IAAAK,CAAA,SAAAI,UAAA,IAAAJ,CAAA,SAAAN,EAAA,IAAAM,CAAA,SAAA2B,wBAAA;IAGjBa,EAAA,GAAAjB,KAAA,IACLkB,cAAA,CAAAnB,cAAA;MAAA,GACMC,KAAK;MAAA5B,cAAA;MAAAS,UAAA;MAAAV,EAAA;MAAAgD,GAAA,EAIJtC,UAAA;MAAAuB;IAAA,C;;;;;;;;;EANTY,EAAA,GAAOC,E;EADT,MAAAG,cAAA,GAAuBJ,EAWsC;EAAA,IAAAK,EAAA;EAAA,IAAAC,GAAA;EAAA,IAAA7C,CAAA,SAAAL,cAAA,IAAAK,CAAA,SAAAI,UAAA,IAAAJ,CAAA,SAAAN,EAAA;IAGpDmD,GAAA,GAAAC,OAAA,IACL3B,IAAA,CAAArB,qBAAA;MAAA,GACMyB,OAAK;MAAA5B,cAAA;MAAAS,UAAA;MAAAV;IAAA,C;;;;;;;;EAFbkD,EAAA,GAAOC,G;EADT,MAAAE,qBAAA,GAA8BH,EASK;EAAA,IAAAI,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAAjD,CAAA,SAAAoC,WAAA,IAAApC,CAAA,SAAAI,UAAA,IAAAJ,CAAA,SAAA4B,SAAA,IAAA5B,CAAA,SAAAiC,MAAA,IAAAjC,CAAA,SAAAsC,UAAA,IAAAtC,CAAA,SAAAmC,YAAA;IAG1Bc,GAAA;MAAAb,WAAA;MAAAc,WAAA,EAEQtB,SAAA;MAAAxB,UAAA;MAAA+C,YAAA,EAEClB,MAAA;MAAAK,UAAA;MAAAH;IAAA;IAGhBnC,CAAA,OAAAoC,WAAA;IAAApC,CAAA,OAAAI,UAAA;IAAAJ,CAAA,OAAA4B,SAAA;IAAA5B,CAAA,OAAAiC,MAAA;IAAAjC,CAAA,OAAAsC,UAAA;IAAAtC,CAAA,OAAAmC,YAAA;IAAAnC,CAAA,OAAAiD,GAAA;EAAA;IAAAA,GAAA,GAAAjD,CAAA;EAAA;EAAAgD,GAAA,GAPOC,GAOP;EARF,MAAAG,mBAAA,GAA4BJ,GAS4C;EAAA,IAAAK,GAAA;EAAA,IAAArD,CAAA,SAAA2C,cAAA,IAAA3C,CAAA,SAAAoD,mBAAA,IAAApD,CAAA,SAAA+C,qBAAA;IAGjEM,GAAA,IAACV,cAAA,EAAgBI,qBAAA,EAAuBK,mBAAA;IAAoBpD,CAAA,OAAA2C,cAAA;IAAA3C,CAAA,OAAAoD,mBAAA;IAAApD,CAAA,OAAA+C,qBAAA;IAAA/C,CAAA,OAAAqD,GAAA;EAAA;IAAAA,GAAA,GAAArD,CAAA;EAAA;EAAA,OAA5DqD,GAA4D;AAAA,CACrE","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","React","useCallback","useEffect","useId","useMemo","useState","useRelatedCollections","useEditDepth","useTranslation","Drawer","DrawerToggler","DocumentDrawerContent","documentDrawerBaseClass","formatDocumentDrawerSlug","id","collectionSlug","depth","uuid","DocumentDrawerToggler","t0","$","children","className","disabled","drawerSlug","onClick","operation","rest","t","collectionConfig","t1","t2","labels","singular","t3","t4","label","t5","filter","Boolean","_jsx","join","slug","DocumentDrawer","props","gutter","Header","useDocumentDrawer","overrideEntityVisibility","editDepth","closeModal","modalState","openModal","toggleModal","isOpen","setIsOpen","toggleDrawer","closeDrawer","t6","openDrawer","t7","t8","_createElement","key","MemoizedDrawer","t9","t10","props_0","MemoizedDrawerToggler","t11","t12","drawerDepth","isDrawerOpen","MemoizedDrawerState","t13"],"sources":["../../../src/elements/DocumentDrawer/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useId, useMemo, useState } from 'react'\n\nimport type {\n DocumentDrawerProps,\n DocumentTogglerProps,\n UseDocumentDrawer,\n UseDocumentDrawerContext,\n} from './types.js'\n\nimport { useRelatedCollections } from '../../hooks/useRelatedCollections.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { DocumentDrawerContent } from './DrawerContent.js'\nimport './index.scss'\n\nexport const documentDrawerBaseClass = 'doc-drawer'\n\nconst formatDocumentDrawerSlug = ({\n id,\n collectionSlug,\n depth,\n uuid,\n}: {\n collectionSlug: string\n depth: number\n id: number | string\n uuid: string // supply when creating a new document and no id is available\n}) => `doc-drawer_${collectionSlug}_${depth}${id ? `_${id}` : ''}_${uuid}`\n\nexport const DocumentDrawerToggler: React.FC<DocumentTogglerProps> = ({\n children,\n className,\n collectionSlug,\n disabled,\n drawerSlug,\n onClick,\n operation,\n ...rest\n}) => {\n const { t } = useTranslation()\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n\n return (\n <DrawerToggler\n aria-label={t(operation === 'create' ? 'fields:addNewLabel' : 'general:editLabel', {\n label: collectionConfig?.labels.singular,\n })}\n className={[className, `${documentDrawerBaseClass}__toggler`].filter(Boolean).join(' ')}\n disabled={disabled}\n onClick={onClick}\n slug={drawerSlug}\n {...rest}\n >\n {children}\n </DrawerToggler>\n )\n}\n\nexport const DocumentDrawer: React.FC<DocumentDrawerProps> = (props) => {\n const { drawerSlug } = props\n\n return (\n <Drawer className={documentDrawerBaseClass} gutter={false} Header={null} slug={drawerSlug}>\n <DocumentDrawerContent {...props} />\n </Drawer>\n )\n}\n\n/**\n * A hook to manage documents from a drawer modal.\n * It provides the components and methods needed to open, close, and interact with the drawer.\n * @example\n * const [DocumentDrawer, DocumentDrawerToggler, { openDrawer, closeDrawer }] = useDocumentDrawer({\n * collectionSlug: 'posts',\n * id: postId, // optional, if not provided, it will render the \"create new\" view\n * })\n *\n * // ...\n *\n * return (\n * <div>\n * <DocumentDrawerToggler collectionSlug=\"posts\" id={postId}>\n * Edit Post\n * </DocumentDrawerToggler>\n * <DocumentDrawer collectionSlug=\"posts\" id={postId} />\n * </div>\n */\nexport const useDocumentDrawer: UseDocumentDrawer = ({\n id,\n collectionSlug,\n overrideEntityVisibility,\n}) => {\n const editDepth = useEditDepth()\n const uuid = useId()\n const { closeModal, modalState, openModal, toggleModal } = useModal()\n const [isOpen, setIsOpen] = useState(false)\n\n const drawerSlug = formatDocumentDrawerSlug({\n id,\n collectionSlug,\n depth: editDepth,\n uuid,\n })\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const toggleDrawer = useCallback(() => {\n toggleModal(drawerSlug)\n }, [toggleModal, drawerSlug])\n\n const closeDrawer = useCallback(() => {\n closeModal(drawerSlug)\n }, [closeModal, drawerSlug])\n\n const openDrawer = useCallback(() => {\n openModal(drawerSlug)\n }, [openModal, drawerSlug])\n\n const MemoizedDrawer = useMemo<React.FC<DocumentDrawerProps>>(() => {\n return (props) => (\n <DocumentDrawer\n {...props}\n collectionSlug={collectionSlug}\n drawerSlug={drawerSlug}\n id={id}\n key={drawerSlug}\n overrideEntityVisibility={overrideEntityVisibility}\n />\n )\n }, [id, drawerSlug, collectionSlug, overrideEntityVisibility])\n\n const MemoizedDrawerToggler = useMemo<React.FC<DocumentTogglerProps>>(() => {\n return (props) => (\n <DocumentDrawerToggler\n {...props}\n collectionSlug={collectionSlug}\n drawerSlug={drawerSlug}\n operation={!id ? 'create' : 'update'}\n />\n )\n }, [id, drawerSlug, collectionSlug])\n\n const MemoizedDrawerState = useMemo<UseDocumentDrawerContext>(\n () => ({\n closeDrawer,\n drawerDepth: editDepth,\n drawerSlug,\n isDrawerOpen: isOpen,\n openDrawer,\n toggleDrawer,\n }),\n [editDepth, drawerSlug, isOpen, toggleDrawer, closeDrawer, openDrawer],\n )\n\n return [MemoizedDrawer, MemoizedDrawerToggler, MemoizedDrawerState]\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Data, FormState } from 'payload';
|
|
1
|
+
import type { Data, FormState, Operation } from 'payload';
|
|
2
2
|
import type React from 'react';
|
|
3
3
|
import type { HTMLAttributes } from 'react';
|
|
4
4
|
import type { Props as DrawerProps } from '../Drawer/types.js';
|
|
@@ -18,6 +18,7 @@ export type DocumentDrawerProps = {
|
|
|
18
18
|
readonly redirectAfterCreate?: boolean;
|
|
19
19
|
readonly redirectAfterDelete?: boolean;
|
|
20
20
|
readonly redirectAfterDuplicate?: boolean;
|
|
21
|
+
readonly redirectAfterRestore?: boolean;
|
|
21
22
|
} & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> & Pick<DrawerProps, 'Header'>;
|
|
22
23
|
export type DocumentTogglerProps = {
|
|
23
24
|
readonly children?: React.ReactNode;
|
|
@@ -25,23 +26,36 @@ export type DocumentTogglerProps = {
|
|
|
25
26
|
readonly collectionSlug: string;
|
|
26
27
|
readonly disabled?: boolean;
|
|
27
28
|
readonly drawerSlug?: string;
|
|
28
|
-
readonly id?: string;
|
|
29
29
|
readonly onClick?: () => void;
|
|
30
|
+
readonly operation: Operation;
|
|
30
31
|
} & Readonly<HTMLAttributes<HTMLButtonElement>>;
|
|
32
|
+
export type UseDocumentDrawerContext = {
|
|
33
|
+
closeDrawer: () => void;
|
|
34
|
+
drawerDepth: number;
|
|
35
|
+
drawerSlug: string;
|
|
36
|
+
isDrawerOpen: boolean;
|
|
37
|
+
openDrawer: () => void;
|
|
38
|
+
toggleDrawer: () => void;
|
|
39
|
+
};
|
|
31
40
|
export type UseDocumentDrawer = (args: {
|
|
41
|
+
/**
|
|
42
|
+
* The slug of the collection to which the document belongs.
|
|
43
|
+
*/
|
|
32
44
|
collectionSlug: string;
|
|
45
|
+
/**
|
|
46
|
+
* The ID of the document to be edited.
|
|
47
|
+
* When provided, will be fetched and displayed in the drawer.
|
|
48
|
+
* If omitted, will render the "create new" view for the given collection.
|
|
49
|
+
*/
|
|
33
50
|
id?: number | string;
|
|
34
51
|
overrideEntityVisibility?: boolean;
|
|
35
52
|
}) => [
|
|
36
|
-
React.FC<
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
openDrawer: () => void;
|
|
44
|
-
toggleDrawer: () => void;
|
|
45
|
-
}
|
|
53
|
+
React.FC<{
|
|
54
|
+
children?: React.ReactNode;
|
|
55
|
+
} & Omit<DocumentDrawerProps, 'collectionSlug' | 'operation'>>,
|
|
56
|
+
React.FC<{
|
|
57
|
+
children?: React.ReactNode;
|
|
58
|
+
} & Omit<DocumentTogglerProps, 'collectionSlug' | 'operation'>>,
|
|
59
|
+
UseDocumentDrawerContext
|
|
46
60
|
];
|
|
47
61
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAA;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAA;IAC3B;;OAEG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACxC,GAAG,IAAI,CAAC,0BAA0B,EAAE,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC,GACzE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE7B,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAC9B,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAE/C,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,KAAK;IAEJ,KAAK,CAAC,EAAE,CACN;QACE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3B,GAAG,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,GAAG,WAAW,CAAC,CAC9D;IAED,KAAK,CAAC,EAAE,CACN;QACE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3B,GAAG,IAAI,CAAC,oBAAoB,EAAE,gBAAgB,GAAG,WAAW,CAAC,CAC/D;IAED,wBAAwB;CACzB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type { Data, FormState } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { Props as DrawerProps } from '../Drawer/types.js'\nimport type { DocumentDrawerContextProps } from './Provider.js'\n\nexport type DocumentDrawerProps = {\n readonly AfterFields?: React.ReactNode\n readonly collectionSlug: string\n readonly disableActions?: boolean\n readonly drawerSlug?: string\n readonly id?: null | number | string\n readonly initialData?: Data\n /**\n * @deprecated\n */\n readonly initialState?: FormState\n readonly overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n} & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> &\n Pick<DrawerProps, 'Header'>\n\nexport type DocumentTogglerProps = {\n readonly children?: React.ReactNode\n readonly className?: string\n readonly collectionSlug: string\n readonly disabled?: boolean\n readonly drawerSlug?: string\n readonly
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type { Data, FormState, Operation } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { Props as DrawerProps } from '../Drawer/types.js'\nimport type { DocumentDrawerContextProps } from './Provider.js'\n\nexport type DocumentDrawerProps = {\n readonly AfterFields?: React.ReactNode\n readonly collectionSlug: string\n readonly disableActions?: boolean\n readonly drawerSlug?: string\n readonly id?: null | number | string\n readonly initialData?: Data\n /**\n * @deprecated\n */\n readonly initialState?: FormState\n readonly overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n} & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> &\n Pick<DrawerProps, 'Header'>\n\nexport type DocumentTogglerProps = {\n readonly children?: React.ReactNode\n readonly className?: string\n readonly collectionSlug: string\n readonly disabled?: boolean\n readonly drawerSlug?: string\n readonly onClick?: () => void\n readonly operation: Operation\n} & Readonly<HTMLAttributes<HTMLButtonElement>>\n\nexport type UseDocumentDrawerContext = {\n closeDrawer: () => void\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n toggleDrawer: () => void\n}\n\nexport type UseDocumentDrawer = (args: {\n /**\n * The slug of the collection to which the document belongs.\n */\n collectionSlug: string\n /**\n * The ID of the document to be edited.\n * When provided, will be fetched and displayed in the drawer.\n * If omitted, will render the \"create new\" view for the given collection.\n */\n id?: number | string\n overrideEntityVisibility?: boolean\n}) => [\n // drawer\n React.FC<\n {\n children?: React.ReactNode\n } & Omit<DocumentDrawerProps, 'collectionSlug' | 'operation'>\n >,\n // toggler\n React.FC<\n {\n children?: React.ReactNode\n } & Omit<DocumentTogglerProps, 'collectionSlug' | 'operation'>\n >,\n // context\n UseDocumentDrawerContext,\n]\n"],"mappings":"AA6CA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAGxE,OAAO,KAAkB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAGxE,OAAO,KAAkB,MAAM,OAAO,CAAA;AAKtC,OAAO,cAAc,CAAA;AAIrB,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,4BAA4B,CAAA;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAmFzC,CAAA"}
|
|
@@ -5,6 +5,7 @@ import { fieldIsSidebar } from 'payload/shared';
|
|
|
5
5
|
import React, { useMemo } from 'react';
|
|
6
6
|
import { RenderFields } from '../../forms/RenderFields/index.js';
|
|
7
7
|
import { Gutter } from '../Gutter/index.js';
|
|
8
|
+
import { TrashBanner } from '../TrashBanner/index.js';
|
|
8
9
|
import './index.scss';
|
|
9
10
|
const baseClass = 'document-fields';
|
|
10
11
|
export const DocumentFields = ({
|
|
@@ -14,6 +15,7 @@ export const DocumentFields = ({
|
|
|
14
15
|
docPermissions,
|
|
15
16
|
fields,
|
|
16
17
|
forceSidebarWrap,
|
|
18
|
+
isTrashed = false,
|
|
17
19
|
readOnly,
|
|
18
20
|
schemaPathSegments
|
|
19
21
|
}) => {
|
|
@@ -44,7 +46,7 @@ export const DocumentFields = ({
|
|
|
44
46
|
className: `${baseClass}__main`,
|
|
45
47
|
children: /*#__PURE__*/_jsxs(Gutter, {
|
|
46
48
|
className: `${baseClass}__edit`,
|
|
47
|
-
children: [Description ? /*#__PURE__*/_jsx("header", {
|
|
49
|
+
children: [isTrashed && /*#__PURE__*/_jsx(TrashBanner, {}), Description ? /*#__PURE__*/_jsx("header", {
|
|
48
50
|
className: `${baseClass}__header`,
|
|
49
51
|
children: /*#__PURE__*/_jsx("div", {
|
|
50
52
|
className: `${baseClass}__sub-header`,
|