@payloadcms/ui 3.14.1-canary.7d834e3 → 3.14.1-canary.9545244

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,UAAU,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAqB9E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CAwPA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,UAAU,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAsB9E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CA4PA,CAAA"}
@@ -4,6 +4,7 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import React, { Fragment, useEffect } from 'react';
7
+ import { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js';
7
8
  import { useConfig } from '../../providers/Config/index.js';
8
9
  import { useEditDepth } from '../../providers/EditDepth/index.js';
9
10
  import { useTranslation } from '../../providers/Translation/index.js';
@@ -89,6 +90,8 @@ export const DocumentControls = props => {
89
90
  } = t3;
90
91
  const [updatedAt, setUpdatedAt] = React.useState("");
91
92
  const [createdAt, setCreatedAt] = React.useState("");
93
+ const processing = useFormProcessing();
94
+ const initializing = useFormInitializing();
92
95
  let t4;
93
96
  let t5;
94
97
  if ($[2] !== data || $[3] !== dateFormat || $[4] !== i18n) {
@@ -234,6 +237,7 @@ export const DocumentControls = props => {
234
237
  children: [_jsx("div", {}), _jsx("div", {}), _jsx("div", {})]
235
238
  }),
236
239
  className: `${baseClass}__popup`,
240
+ disabled: initializing || processing,
237
241
  horizontalAlign: "right",
238
242
  size: "large",
239
243
  verticalAlign: "bottom",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useEffect","useConfig","useEditDepth","useTranslation","formatAdminURL","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","Gutter","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","customComponents","t0","data","disableActions","disableCreate","hasSavePermission","isAccountView","isEditing","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","autosaveEnabled","autosave","t6","_jsx","className","t7","buttonStyle","onClick","size","type","children","_jsxs","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","button","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { formatDate } from '../../utilities/formatDate.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 { Gutter } from '../Gutter/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 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?: any\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: 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 customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n hasSavePermission,\n isAccountView,\n isEditing,\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 }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug: slug }) as ClientGlobalConfig\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 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 autosaveEnabled =\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\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 {user && readOnlyForIncomingUser && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\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')}:&nbsp;</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')}:&nbsp;</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 {(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 || !autosaveEnabled) && (\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 horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {localization && <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 </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","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useTranslation","formatAdminURL","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","Gutter","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","customComponents","t0","data","disableActions","disableCreate","hasSavePermission","isAccountView","isEditing","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","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","autosaveEnabled","autosave","t6","_jsx","className","t7","buttonStyle","onClick","size","type","children","_jsxs","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 ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\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 { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { formatDate } from '../../utilities/formatDate.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 { Gutter } from '../Gutter/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 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?: any\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: 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 customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n hasSavePermission,\n isAccountView,\n isEditing,\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 }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug: slug }) as ClientGlobalConfig\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 autosaveEnabled =\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\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 {user && readOnlyForIncomingUser && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\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')}:&nbsp;</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')}:&nbsp;</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 {(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 || !autosaveEnabled) && (\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 {localization && <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 </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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAc1C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAqMtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAc1C,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAuMtD,CAAA"}
@@ -74,9 +74,9 @@ export const PublishButton = ({
74
74
  const hasNewerVersions = unpublishedVersionCount > 0;
75
75
  const canPublish = hasPublishPermission && (modified || hasNewerVersions || !hasPublishedDoc) && uploadStatus !== 'uploading';
76
76
  const operation = useOperation();
77
- const forceDisable = operation === 'update' && !modified;
77
+ const disabled = operation === 'update' && !modified;
78
78
  const saveDraft = useCallback(async () => {
79
- if (forceDisable) {
79
+ if (disabled) {
80
80
  return;
81
81
  }
82
82
  const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`;
@@ -99,7 +99,7 @@ export const PublishButton = ({
99
99
  },
100
100
  skipValidation: true
101
101
  });
102
- }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, forceDisable]);
102
+ }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled]);
103
103
  useHotkey({
104
104
  cmdCtrlKey: true,
105
105
  editDepth,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","qs","React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","i18n","t","entityConfig","useMemo","collections","find","slug","globals","scheduledPublishEnabled","versions","drafts","schedulePublish","hasNewerVersions","canPublish","operation","forceDisable","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","autosave","publish","publishSpecificLocale","locale","params","stringify","_jsxs","Fragment","_jsx","buttonId","disabled","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","locales","map","formattedLabel","language","isActive","undefined","type"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport const PublishButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return config.collections.find(({ slug }) => slug === collectionSlug)\n }\n\n if (globalSlug) {\n return config.globals.find(({ slug }) => slug === globalSlug)\n }\n }, [collectionSlug, globalSlug, config])\n\n const scheduledPublishEnabled =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const hasNewerVersions = unpublishedVersionCount > 0\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n const operation = useOperation()\n\n const forceDisable = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (forceDisable) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, forceDisable])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(() => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n\n setUnpublishedVersionCount(0)\n setHasPublishedDoc(true)\n }, [setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus])\n\n const publishSpecificLocale = useCallback(\n (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`\n }${params ? '?' + params : ''}`\n\n void submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n setHasPublishedDoc(true)\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={publish}\n size=\"medium\"\n SubMenuPopupContent={\n localization || scheduledPublishEnabled\n ? ({ close }) => {\n return (\n <React.Fragment>\n {scheduledPublishEnabled && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button onClick={() => [toggleModal(drawerSlug), close()]}>\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {localization\n ? localization.locales.map((locale) => {\n const formattedLabel =\n typeof locale.label === 'string'\n ? locale.label\n : locale.label && locale.label[i18n?.language]\n\n const isActive =\n typeof locale === 'string'\n ? locale === localeCode\n : locale.code === localeCode\n\n if (isActive) {\n return (\n <PopupList.ButtonGroup key={locale.code}>\n <PopupList.Button\n onClick={() => [publishSpecificLocale(locale.code), close()]}\n >\n {t('version:publishIn', {\n locale: formattedLabel || locale.code,\n })}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }\n })\n : null}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {label}\n </FormSubmit>\n {scheduledPublishEnabled && isModalOpen(drawerSlug) && <ScheduleDrawer slug={drawerSlug} />}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","qs","React","useCallback","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","i18n","t","entityConfig","useMemo","collections","find","slug","globals","scheduledPublishEnabled","versions","drafts","schedulePublish","hasNewerVersions","canPublish","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","autosave","publish","publishSpecificLocale","locale","params","stringify","_jsxs","Fragment","_jsx","buttonId","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","locales","map","formattedLabel","language","isActive","undefined","type"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport const PublishButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const {\n id,\n collectionSlug,\n docConfig,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config } = useConfig()\n const { submit } = useForm()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const { code: localeCode } = useLocale()\n const { isModalOpen, toggleModal } = useModal()\n\n const drawerSlug = `schedule-publish-${id}`\n\n const {\n localization,\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return config.collections.find(({ slug }) => slug === collectionSlug)\n }\n\n if (globalSlug) {\n return config.globals.find(({ slug }) => slug === globalSlug)\n }\n }, [collectionSlug, globalSlug, config])\n\n const scheduledPublishEnabled =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${localeCode}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, localeCode, id, disabled])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && docConfig.versions?.drafts && docConfig.versions?.drafts?.autosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(() => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n void submit({\n overrides: {\n _status: 'published',\n },\n })\n\n setUnpublishedVersionCount(0)\n setHasPublishedDoc(true)\n }, [setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus])\n\n const publishSpecificLocale = useCallback(\n (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`\n }${params ? '?' + params : ''}`\n\n void submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n setHasPublishedDoc(true)\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n onClick={publish}\n size=\"medium\"\n SubMenuPopupContent={\n localization || scheduledPublishEnabled\n ? ({ close }) => {\n return (\n <React.Fragment>\n {scheduledPublishEnabled && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button onClick={() => [toggleModal(drawerSlug), close()]}>\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {localization\n ? localization.locales.map((locale) => {\n const formattedLabel =\n typeof locale.label === 'string'\n ? locale.label\n : locale.label && locale.label[i18n?.language]\n\n const isActive =\n typeof locale === 'string'\n ? locale === localeCode\n : locale.code === localeCode\n\n if (isActive) {\n return (\n <PopupList.ButtonGroup key={locale.code}>\n <PopupList.Button\n onClick={() => [publishSpecificLocale(locale.code), close()]}\n >\n {t('version:publishIn', {\n locale: formattedLabel || locale.code,\n })}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }\n })\n : null}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {label}\n </FormSubmit>\n {scheduledPublishEnabled && isModalOpen(drawerSlug) && <ScheduleDrawer slug={drawerSlug} />}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -26,13 +26,13 @@ export const SaveButton = ({
26
26
  const ref = useRef(null);
27
27
  const editDepth = useEditDepth();
28
28
  const operation = useOperation();
29
- const forceDisable = operation === 'update' && !modified || uploadStatus === 'uploading';
29
+ const disabled = operation === 'update' && !modified || uploadStatus === 'uploading';
30
30
  useHotkey({
31
31
  cmdCtrlKey: true,
32
32
  editDepth,
33
33
  keyCodes: ['s']
34
34
  }, e => {
35
- if (forceDisable) {
35
+ if (disabled) {
36
36
  // absorb the event
37
37
  }
38
38
  e.preventDefault();
@@ -49,7 +49,7 @@ export const SaveButton = ({
49
49
  };
50
50
  return /*#__PURE__*/_jsx(FormSubmit, {
51
51
  buttonId: "action-save",
52
- disabled: forceDisable,
52
+ disabled: disabled,
53
53
  onClick: handleSubmit,
54
54
  ref: ref,
55
55
  size: "medium",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useRef","useForm","useFormModified","FormSubmit","useHotkey","useDocumentInfo","useEditDepth","useOperation","useTranslation","SaveButton","label","labelProp","uploadStatus","t","submit","modified","ref","editDepth","operation","forceDisable","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","handleSubmit","_jsx","buttonId","disabled","onClick","size","type"],"sources":["../../../src/elements/SaveButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const SaveButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const { uploadStatus } = useDocumentInfo()\n const { t } = useTranslation()\n const { submit } = useForm()\n const modified = useFormModified()\n const label = labelProp || t('general:save')\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const operation = useOperation()\n\n const forceDisable = (operation === 'update' && !modified) || uploadStatus === 'uploading'\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (forceDisable) {\n // absorb the event\n }\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n const handleSubmit = () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n return void submit()\n }\n\n return (\n <FormSubmit\n buttonId=\"action-save\"\n disabled={forceDisable}\n onClick={handleSubmit}\n ref={ref}\n size=\"medium\"\n type=\"button\"\n >\n {label}\n </FormSubmit>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,IAASC,MAAM,QAAQ;AAE9B,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,UAAA,GAA2CA,CAAC;EAAEC,KAAA,EAAOC;AAAS,CAAE;EAC3E,MAAM;IAAEC;EAAY,CAAE,GAAGP,eAAA;EACzB,MAAM;IAAEQ;EAAC,CAAE,GAAGL,cAAA;EACd,MAAM;IAAEM;EAAM,CAAE,GAAGb,OAAA;EACnB,MAAMc,QAAA,GAAWb,eAAA;EACjB,MAAMQ,KAAA,GAAQC,SAAA,IAAaE,CAAA,CAAE;EAC7B,MAAMG,GAAA,GAAMhB,MAAA,CAA0B;EACtC,MAAMiB,SAAA,GAAYX,YAAA;EAClB,MAAMY,SAAA,GAAYX,YAAA;EAElB,MAAMY,YAAA,GAAeD,SAAC,KAAc,YAAY,CAACH,QAAA,IAAaH,YAAA,KAAiB;EAE/ER,SAAA,CAAU;IAAEgB,UAAA,EAAY;IAAMH,SAAA;IAAWI,QAAA,EAAU,CAAC;EAAK,GAAIC,CAAA;IAC3D,IAAIH,YAAA,EAAc;MAChB;IAAA;IAGFG,CAAA,CAAEC,cAAc;IAChBD,CAAA,CAAEE,eAAe;IACjB,IAAIR,GAAA,EAAKS,OAAA,EAAS;MAChBT,GAAA,CAAIS,OAAO,CAACC,KAAK;IACnB;EACF;EAEA,MAAMC,YAAA,GAAeA,CAAA;IACnB,IAAIf,YAAA,KAAiB,aAAa;MAChC;IACF;IAEA,OAAO,KAAKE,MAAA;EACd;EAEA,oBACEc,IAAA,CAACzB,UAAA;IACC0B,QAAA,EAAS;IACTC,QAAA,EAAUX,YAAA;IACVY,OAAA,EAASJ,YAAA;IACTX,GAAA,EAAKA,GAAA;IACLgB,IAAA,EAAK;IACLC,IAAA,EAAK;cAEJvB;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useRef","useForm","useFormModified","FormSubmit","useHotkey","useDocumentInfo","useEditDepth","useOperation","useTranslation","SaveButton","label","labelProp","uploadStatus","t","submit","modified","ref","editDepth","operation","disabled","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","handleSubmit","_jsx","buttonId","onClick","size","type"],"sources":["../../../src/elements/SaveButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const SaveButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const { uploadStatus } = useDocumentInfo()\n const { t } = useTranslation()\n const { submit } = useForm()\n const modified = useFormModified()\n const label = labelProp || t('general:save')\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const operation = useOperation()\n\n const disabled = (operation === 'update' && !modified) || uploadStatus === 'uploading'\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (disabled) {\n // absorb the event\n }\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n const handleSubmit = () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n return void submit()\n }\n\n return (\n <FormSubmit\n buttonId=\"action-save\"\n disabled={disabled}\n onClick={handleSubmit}\n ref={ref}\n size=\"medium\"\n type=\"button\"\n >\n {label}\n </FormSubmit>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,IAASC,MAAM,QAAQ;AAE9B,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,UAAA,GAA2CA,CAAC;EAAEC,KAAA,EAAOC;AAAS,CAAE;EAC3E,MAAM;IAAEC;EAAY,CAAE,GAAGP,eAAA;EACzB,MAAM;IAAEQ;EAAC,CAAE,GAAGL,cAAA;EACd,MAAM;IAAEM;EAAM,CAAE,GAAGb,OAAA;EACnB,MAAMc,QAAA,GAAWb,eAAA;EACjB,MAAMQ,KAAA,GAAQC,SAAA,IAAaE,CAAA,CAAE;EAC7B,MAAMG,GAAA,GAAMhB,MAAA,CAA0B;EACtC,MAAMiB,SAAA,GAAYX,YAAA;EAClB,MAAMY,SAAA,GAAYX,YAAA;EAElB,MAAMY,QAAA,GAAWD,SAAC,KAAc,YAAY,CAACH,QAAA,IAAaH,YAAA,KAAiB;EAE3ER,SAAA,CAAU;IAAEgB,UAAA,EAAY;IAAMH,SAAA;IAAWI,QAAA,EAAU,CAAC;EAAK,GAAIC,CAAA;IAC3D,IAAIH,QAAA,EAAU;MACZ;IAAA;IAGFG,CAAA,CAAEC,cAAc;IAChBD,CAAA,CAAEE,eAAe;IACjB,IAAIR,GAAA,EAAKS,OAAA,EAAS;MAChBT,GAAA,CAAIS,OAAO,CAACC,KAAK;IACnB;EACF;EAEA,MAAMC,YAAA,GAAeA,CAAA;IACnB,IAAIf,YAAA,KAAiB,aAAa;MAChC;IACF;IAEA,OAAO,KAAKE,MAAA;EACd;EAEA,oBACEc,IAAA,CAACzB,UAAA;IACC0B,QAAA,EAAS;IACTV,QAAA,EAAUA,QAAA;IACVW,OAAA,EAASH,YAAA;IACTX,GAAA,EAAKA,GAAA;IACLe,IAAA,EAAK;IACLC,IAAA,EAAK;cAEJtB;;AAGP","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraftButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAclD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAyFnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraftButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAclD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EA0FnC,CAAA"}
@@ -41,9 +41,9 @@ export const SaveDraftButton = () => {
41
41
  submit
42
42
  } = useForm();
43
43
  const operation = useOperation();
44
- const forceDisable = operation === 'update' && !modified || uploadStatus === 'uploading';
44
+ const disabled = operation === 'update' && !modified || uploadStatus === 'uploading';
45
45
  const saveDraft = useCallback(async () => {
46
- if (forceDisable) {
46
+ if (disabled) {
47
47
  return;
48
48
  }
49
49
  const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`;
@@ -67,13 +67,13 @@ export const SaveDraftButton = () => {
67
67
  skipValidation: true
68
68
  });
69
69
  setUnpublishedVersionCount(count => count + 1);
70
- }, [submit, collectionSlug, globalSlug, serverURL, api, locale, id, forceDisable, setUnpublishedVersionCount]);
70
+ }, [submit, collectionSlug, globalSlug, serverURL, api, locale, id, disabled, setUnpublishedVersionCount]);
71
71
  useHotkey({
72
72
  cmdCtrlKey: true,
73
73
  editDepth,
74
74
  keyCodes: ['s']
75
75
  }, e => {
76
- if (forceDisable) {
76
+ if (disabled) {
77
77
  // absorb the event
78
78
  }
79
79
  e.preventDefault();
@@ -86,7 +86,7 @@ export const SaveDraftButton = () => {
86
86
  buttonId: "action-save-draft",
87
87
  buttonStyle: "secondary",
88
88
  className: baseClass,
89
- disabled: forceDisable,
89
+ disabled: disabled,
90
90
  onClick: () => {
91
91
  return void saveDraft();
92
92
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","baseClass","SaveDraftButton","config","routes","api","serverURL","id","collectionSlug","globalSlug","setUnpublishedVersionCount","uploadStatus","modified","code","locale","ref","editDepth","t","submit","operation","forceDisable","saveDraft","search","action","method","overrides","_status","skipValidation","count","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","_jsx","buttonId","buttonStyle","className","disabled","onClick","size","type"],"sources":["../../../src/elements/SaveDraftButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'save-draft'\n\nexport const SaveDraftButton: React.FC = () => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { id, collectionSlug, globalSlug, setUnpublishedVersionCount, uploadStatus } =\n useDocumentInfo()\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const { t } = useTranslation()\n const { submit } = useForm()\n const operation = useOperation()\n\n const forceDisable = (operation === 'update' && !modified) || uploadStatus === 'uploading'\n\n const saveDraft = useCallback(async () => {\n if (forceDisable) {\n return\n }\n\n const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n\n setUnpublishedVersionCount((count) => count + 1)\n }, [\n submit,\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n locale,\n id,\n forceDisable,\n setUnpublishedVersionCount,\n ])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (forceDisable) {\n // absorb the event\n }\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save-draft\"\n buttonStyle=\"secondary\"\n className={baseClass}\n disabled={forceDisable}\n onClick={() => {\n return void saveDraft()\n }}\n ref={ref}\n size=\"medium\"\n type=\"button\"\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,IAASC,WAAW,EAAEC,MAAM,QAAQ;AAE3C,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,eAAA,GAA4BA,CAAA;EACvC,MAAM;IACJC,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGX,SAAA;EACJ,MAAM;IAAEY,EAAE;IAAEC,cAAc;IAAEC,UAAU;IAAEC,0BAA0B;IAAEC;EAAY,CAAE,GAChFf,eAAA;EACF,MAAMgB,QAAA,GAAWpB,eAAA;EACjB,MAAM;IAAEqB,IAAA,EAAMC;EAAM,CAAE,GAAGhB,SAAA;EACzB,MAAMiB,GAAA,GAAMzB,MAAA,CAA0B;EACtC,MAAM0B,SAAA,GAAYnB,YAAA;EAClB,MAAM;IAAEoB;EAAC,CAAE,GAAGjB,cAAA;EACd,MAAM;IAAEkB;EAAM,CAAE,GAAG3B,OAAA;EACnB,MAAM4B,SAAA,GAAYpB,YAAA;EAElB,MAAMqB,YAAA,GAAeD,SAAC,KAAc,YAAY,CAACP,QAAA,IAAaD,YAAA,KAAiB;EAE/E,MAAMU,SAAA,GAAYhC,WAAA,CAAY;IAC5B,IAAI+B,YAAA,EAAc;MAChB;IACF;IAEA,MAAME,MAAA,GAAS,WAAWR,MAAA,0CAAgD;IAC1E,IAAIS,MAAA;IACJ,IAAIC,MAAA,GAAS;IAEb,IAAIhB,cAAA,EAAgB;MAClBe,MAAA,GAAS,GAAGjB,SAAA,GAAYD,GAAA,IAAOG,cAAA,GAAiBD,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,KAAKe,MAAA,EAAQ;MAC7E,IAAIf,EAAA,EAAI;QACNiB,MAAA,GAAS;MACX;IACF;IAEA,IAAIf,UAAA,EAAY;MACdc,MAAA,GAAS,GAAGjB,SAAA,GAAYD,GAAA,YAAeI,UAAA,GAAaa,MAAA,EAAQ;IAC9D;IAEA,MAAMJ,MAAA,CAAO;MACXK,MAAA;MACAC,MAAA;MACAC,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;MACAC,cAAA,EAAgB;IAClB;IAEAjB,0BAAA,CAA4BkB,KAAA,IAAUA,KAAA,GAAQ;EAChD,GAAG,CACDV,MAAA,EACAV,cAAA,EACAC,UAAA,EACAH,SAAA,EACAD,GAAA,EACAS,MAAA,EACAP,EAAA,EACAa,YAAA,EACAV,0BAAA,CACD;EAEDhB,SAAA,CAAU;IAAEmC,UAAA,EAAY;IAAMb,SAAA;IAAWc,QAAA,EAAU,CAAC;EAAK,GAAIC,CAAA;IAC3D,IAAIX,YAAA,EAAc;MAChB;IAAA;IAGFW,CAAA,CAAEC,cAAc;IAChBD,CAAA,CAAEE,eAAe;IACjB,IAAIlB,GAAA,EAAKmB,OAAA,EAAS;MAChBnB,GAAA,CAAImB,OAAO,CAACC,KAAK;IACnB;EACF;EAEA,oBACEC,IAAA,CAAC3C,UAAA;IACC4C,QAAA,EAAS;IACTC,WAAA,EAAY;IACZC,SAAA,EAAWtC,SAAA;IACXuC,QAAA,EAAUpB,YAAA;IACVqB,OAAA,EAASA,CAAA;MACP,OAAO,KAAKpB,SAAA;IACd;IACAN,GAAA,EAAKA,GAAA;IACL2B,IAAA,EAAK;IACLC,IAAA,EAAK;cAEJ1B,CAAA,CAAE;;AAGT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","baseClass","SaveDraftButton","config","routes","api","serverURL","id","collectionSlug","globalSlug","setUnpublishedVersionCount","uploadStatus","modified","code","locale","ref","editDepth","t","submit","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","count","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","_jsx","buttonId","buttonStyle","className","onClick","size","type"],"sources":["../../../src/elements/SaveDraftButton/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'save-draft'\n\nexport const SaveDraftButton: React.FC = () => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { id, collectionSlug, globalSlug, setUnpublishedVersionCount, uploadStatus } =\n useDocumentInfo()\n\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const { t } = useTranslation()\n const { submit } = useForm()\n const operation = useOperation()\n\n const disabled = (operation === 'update' && !modified) || uploadStatus === 'uploading'\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n\n setUnpublishedVersionCount((count) => count + 1)\n }, [\n submit,\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n locale,\n id,\n disabled,\n setUnpublishedVersionCount,\n ])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (disabled) {\n // absorb the event\n }\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save-draft\"\n buttonStyle=\"secondary\"\n className={baseClass}\n disabled={disabled}\n onClick={() => {\n return void saveDraft()\n }}\n ref={ref}\n size=\"medium\"\n type=\"button\"\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,IAASC,WAAW,EAAEC,MAAM,QAAQ;AAE3C,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,eAAA,GAA4BA,CAAA;EACvC,MAAM;IACJC,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGX,SAAA;EACJ,MAAM;IAAEY,EAAE;IAAEC,cAAc;IAAEC,UAAU;IAAEC,0BAA0B;IAAEC;EAAY,CAAE,GAChFf,eAAA;EAEF,MAAMgB,QAAA,GAAWpB,eAAA;EACjB,MAAM;IAAEqB,IAAA,EAAMC;EAAM,CAAE,GAAGhB,SAAA;EACzB,MAAMiB,GAAA,GAAMzB,MAAA,CAA0B;EACtC,MAAM0B,SAAA,GAAYnB,YAAA;EAClB,MAAM;IAAEoB;EAAC,CAAE,GAAGjB,cAAA;EACd,MAAM;IAAEkB;EAAM,CAAE,GAAG3B,OAAA;EACnB,MAAM4B,SAAA,GAAYpB,YAAA;EAElB,MAAMqB,QAAA,GAAWD,SAAC,KAAc,YAAY,CAACP,QAAA,IAAaD,YAAA,KAAiB;EAE3E,MAAMU,SAAA,GAAYhC,WAAA,CAAY;IAC5B,IAAI+B,QAAA,EAAU;MACZ;IACF;IAEA,MAAME,MAAA,GAAS,WAAWR,MAAA,0CAAgD;IAC1E,IAAIS,MAAA;IACJ,IAAIC,MAAA,GAAS;IAEb,IAAIhB,cAAA,EAAgB;MAClBe,MAAA,GAAS,GAAGjB,SAAA,GAAYD,GAAA,IAAOG,cAAA,GAAiBD,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,KAAKe,MAAA,EAAQ;MAC7E,IAAIf,EAAA,EAAI;QACNiB,MAAA,GAAS;MACX;IACF;IAEA,IAAIf,UAAA,EAAY;MACdc,MAAA,GAAS,GAAGjB,SAAA,GAAYD,GAAA,YAAeI,UAAA,GAAaa,MAAA,EAAQ;IAC9D;IAEA,MAAMJ,MAAA,CAAO;MACXK,MAAA;MACAC,MAAA;MACAC,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;MACAC,cAAA,EAAgB;IAClB;IAEAjB,0BAAA,CAA4BkB,KAAA,IAAUA,KAAA,GAAQ;EAChD,GAAG,CACDV,MAAA,EACAV,cAAA,EACAC,UAAA,EACAH,SAAA,EACAD,GAAA,EACAS,MAAA,EACAP,EAAA,EACAa,QAAA,EACAV,0BAAA,CACD;EAEDhB,SAAA,CAAU;IAAEmC,UAAA,EAAY;IAAMb,SAAA;IAAWc,QAAA,EAAU,CAAC;EAAK,GAAIC,CAAA;IAC3D,IAAIX,QAAA,EAAU;MACZ;IAAA;IAGFW,CAAA,CAAEC,cAAc;IAChBD,CAAA,CAAEE,eAAe;IACjB,IAAIlB,GAAA,EAAKmB,OAAA,EAAS;MAChBnB,GAAA,CAAImB,OAAO,CAACC,KAAK;IACnB;EACF;EAEA,oBACEC,IAAA,CAAC3C,UAAA;IACC4C,QAAA,EAAS;IACTC,WAAA,EAAY;IACZC,SAAA,EAAWtC,SAAA;IACXmB,QAAA,EAAUA,QAAA;IACVoB,OAAA,EAASA,CAAA;MACP,OAAO,KAAKnB,SAAA;IACd;IACAN,GAAA,EAAKA,GAAA;IACL0B,IAAA,EAAK;IACLC,IAAA,EAAK;cAEJzB,CAAA,CAAE;;AAGT","ignoreList":[]}