@payloadcms/ui 3.71.1 → 3.72.0-internal.3e70d4c
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/Autosave/index.js +3 -3
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +2 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/HTMLDiff/diff/index.d.ts.map +1 -1
- package/dist/elements/HTMLDiff/diff/index.js +2 -0
- package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +2 -0
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +33 -12
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +13 -41
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/UnpublishButton/index.d.ts +3 -0
- package/dist/elements/UnpublishButton/index.d.ts.map +1 -0
- package/dist/elements/UnpublishButton/index.js +181 -0
- package/dist/elements/UnpublishButton/index.js.map +1 -0
- package/dist/exports/client/{DatePicker-VMLA35FO.js → DatePicker-KIFZZD6G.js} +2 -2
- package/dist/exports/client/{chunk-7V3NHDV6.js → chunk-SXTBYES4.js} +1 -1
- package/dist/exports/client/{chunk-7V3NHDV6.js.map → chunk-SXTBYES4.js.map} +2 -2
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +1 -0
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/utilities/traverseForLocalizedFields.d.ts +2 -2
- package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
- package/package.json +4 -4
- /package/dist/exports/client/{DatePicker-VMLA35FO.js.map → DatePicker-KIFZZD6G.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useCallback","useForm","useFormModified","useAuth","useTranslation","ConfirmationModal","useModal","usePreventLeave","leaveWithoutSavingModalSlug","LeaveWithoutSaving","t0","$","disablePreventLeave","t1","onConfirm","onPrevent","undefined","modalSlug","closeModal","openModal","modified","isValid","user","hasAccepted","setHasAccepted","useState","prevent","Boolean","t2","activeHref","document","activeElement","href","handlePrevent","t3","handleAccept","t4","onAccept","t5","onCancel","t6","t7","err","console","error","handleConfirm","_jsx","LeaveWithoutSavingModal","t","body","cancelLabel","confirmLabel","heading"],"sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { useModal } from '../Modal/index.js'\nimport { usePreventLeave } from './usePreventLeave.js'\n\ntype LeaveWithoutSavingProps = {\n disablePreventLeave?: boolean\n modalSlug?: string\n onConfirm?: () => Promise<void> | void\n onPrevent?: (nextHref: null | string) => void\n}\n\nconst leaveWithoutSavingModalSlug = 'leave-without-saving'\n\nexport const LeaveWithoutSaving: React.FC<LeaveWithoutSavingProps> = ({\n disablePreventLeave = false,\n onConfirm,\n onPrevent,\n}) => {\n const modalSlug = leaveWithoutSavingModalSlug\n const { closeModal, openModal } = useModal()\n const modified = useFormModified()\n const { isValid } = useForm()\n const { user } = useAuth()\n const [hasAccepted, setHasAccepted] = React.useState(false)\n\n const prevent = !disablePreventLeave && Boolean((modified || !isValid) && user)\n\n const handlePrevent = useCallback(() => {\n const activeHref = (document.activeElement as HTMLAnchorElement)?.href || null\n if (onPrevent) {\n onPrevent(activeHref)\n }\n openModal(modalSlug)\n }, [openModal, onPrevent, modalSlug])\n\n const handleAccept = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n usePreventLeave({ hasAccepted, onAccept: handleAccept, onPrevent: handlePrevent, prevent })\n\n const onCancel: OnCancel = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n const handleConfirm = useCallback(async () => {\n if (onConfirm) {\n try {\n await onConfirm()\n } catch (err) {\n console.error('Error in LeaveWithoutSaving onConfirm:', err)\n }\n }\n setHasAccepted(true)\n }, [onConfirm])\n\n return (\n <LeaveWithoutSavingModal modalSlug={modalSlug} onCancel={onCancel} onConfirm={handleConfirm} />\n )\n}\n\nexport const LeaveWithoutSavingModal = ({\n modalSlug,\n onCancel,\n onConfirm,\n}: {\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}) => {\n const { t } = useTranslation()\n\n return (\n <ConfirmationModal\n body={t('general:changesNotSaved')}\n cancelLabel={t('general:stayOnThisPage')}\n confirmLabel={t('general:leaveAnyway')}\n heading={t('general:leaveWithoutSaving')}\n modalSlug={modalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useCallback","useForm","useFormModified","useAuth","useTranslation","ConfirmationModal","useModal","usePreventLeave","leaveWithoutSavingModalSlug","LeaveWithoutSaving","t0","$","disablePreventLeave","t1","onConfirm","onPrevent","undefined","modalSlug","closeModal","openModal","modified","isValid","user","hasAccepted","setHasAccepted","useState","prevent","Boolean","t2","activeHref","document","activeElement","href","handlePrevent","t3","handleAccept","t4","onAccept","t5","onCancel","t6","t7","err","console","error","handleConfirm","_jsx","LeaveWithoutSavingModal","t","body","cancelLabel","confirmLabel","heading"],"sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { useModal } from '../Modal/index.js'\nimport { usePreventLeave } from './usePreventLeave.js'\n\ntype LeaveWithoutSavingProps = {\n disablePreventLeave?: boolean\n modalSlug?: string\n onConfirm?: () => Promise<void> | void\n onPrevent?: (nextHref: null | string) => void\n}\n\nconst leaveWithoutSavingModalSlug = 'leave-without-saving'\n\nexport const LeaveWithoutSaving: React.FC<LeaveWithoutSavingProps> = ({\n disablePreventLeave = false,\n onConfirm,\n onPrevent,\n}) => {\n const modalSlug = leaveWithoutSavingModalSlug\n const { closeModal, openModal } = useModal()\n const modified = useFormModified()\n const { isValid } = useForm()\n const { user } = useAuth()\n const [hasAccepted, setHasAccepted] = React.useState(false)\n\n const prevent = !disablePreventLeave && Boolean((modified || !isValid) && user)\n\n const handlePrevent = useCallback(() => {\n const activeHref = (document.activeElement as HTMLAnchorElement)?.href || null\n if (onPrevent) {\n onPrevent(activeHref)\n }\n openModal(modalSlug)\n }, [openModal, onPrevent, modalSlug])\n\n const handleAccept = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n usePreventLeave({ hasAccepted, onAccept: handleAccept, onPrevent: handlePrevent, prevent })\n\n const onCancel: OnCancel = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n const handleConfirm = useCallback(async () => {\n if (onConfirm) {\n try {\n await onConfirm()\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Error in LeaveWithoutSaving onConfirm:', err)\n }\n }\n setHasAccepted(true)\n }, [onConfirm])\n\n return (\n <LeaveWithoutSavingModal modalSlug={modalSlug} onCancel={onCancel} onConfirm={handleConfirm} />\n )\n}\n\nexport const LeaveWithoutSavingModal = ({\n modalSlug,\n onCancel,\n onConfirm,\n}: {\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}) => {\n const { t } = useTranslation()\n\n return (\n <ConfirmationModal\n body={t('general:changesNotSaved')}\n cancelLabel={t('general:stayOnThisPage')}\n confirmLabel={t('general:leaveAnyway')}\n heading={t('general:leaveWithoutSaving')}\n modalSlug={modalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreventLeave.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,eAAe,aAAa,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,YAAmB,MAAM,SA6B1F,CAAA;AAED,eAAO,MAAM,eAAe,4DAMzB;IACD,WAAW,EAAE,OAAO,CAAA;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAErB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,
|
|
1
|
+
{"version":3,"file":"usePreventLeave.d.ts","sourceRoot":"","sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"names":[],"mappings":"AA4BA,eAAO,MAAM,eAAe,aAAa,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,YAAmB,MAAM,SA6B1F,CAAA;AAED,eAAO,MAAM,eAAe,4DAMzB;IACD,WAAW,EAAE,OAAO,CAAA;IAEpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IAErB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;CACjB,SA8FA,CAAA"}
|
|
@@ -90,6 +90,7 @@ export const usePreventLeave = ({
|
|
|
90
90
|
return currentHash !== newHash && currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '');
|
|
91
91
|
}
|
|
92
92
|
} catch (err) {
|
|
93
|
+
// eslint-disable-next-line no-console
|
|
93
94
|
console.log('Unexpected exception thrown in LeaveWithoutSaving:isAnchorOfCurrentUrl', err);
|
|
94
95
|
}
|
|
95
96
|
return false;
|
|
@@ -123,6 +124,7 @@ export const usePreventLeave = ({
|
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
} catch (err_0) {
|
|
127
|
+
// eslint-disable-next-line no-console
|
|
126
128
|
console.log('Unexpected exception thrown in LeaveWithoutSaving:usePreventLeave', err_0);
|
|
127
129
|
}
|
|
128
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreventLeave.js","names":["c","_c","useRouter","useCallback","useEffect","useRef","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","undefined","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","err","console","log","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isNewTab","metaKey","ctrlKey","isPageLeaving","confirm","current","stopPropagation","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from 'next/navigation.js'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n try {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n } catch (err) {\n console.log('Unexpected exception thrown in LeaveWithoutSaving:isAnchorOfCurrentUrl', err)\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink || isNewTab)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n console.log('Unexpected exception thrown in LeaveWithoutSaving:usePreventLeave', err)\n }\n }\n\n if (prevent) {\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n }\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"usePreventLeave.js","names":["c","_c","useRouter","useCallback","useEffect","useRef","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","undefined","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","err","console","log","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isNewTab","metaKey","ctrlKey","isPageLeaving","confirm","current","stopPropagation","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from 'next/navigation.js'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n try {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:isAnchorOfCurrentUrl', err)\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink || isNewTab)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:usePreventLeave', err)\n }\n }\n\n if (prevent) {\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n }\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\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":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAMvD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAe/D,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAMvD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAe/D,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,wBAAwB,qBAiS3E"}
|
|
@@ -54,8 +54,7 @@ export function PublishButton({
|
|
|
54
54
|
localization,
|
|
55
55
|
routes: {
|
|
56
56
|
api
|
|
57
|
-
}
|
|
58
|
-
serverURL
|
|
57
|
+
}
|
|
59
58
|
} = config;
|
|
60
59
|
const {
|
|
61
60
|
i18n,
|
|
@@ -92,13 +91,20 @@ export function PublishButton({
|
|
|
92
91
|
if (disabled) {
|
|
93
92
|
return;
|
|
94
93
|
}
|
|
95
|
-
const
|
|
94
|
+
const params = qs.stringify({
|
|
95
|
+
depth: 0,
|
|
96
|
+
draft: true,
|
|
97
|
+
'fallback-locale': 'null',
|
|
98
|
+
locale: localeCode
|
|
99
|
+
}, {
|
|
100
|
+
addQueryPrefix: true
|
|
101
|
+
});
|
|
96
102
|
let action;
|
|
97
103
|
let method = 'POST';
|
|
98
104
|
if (collectionSlug) {
|
|
99
105
|
action = formatAdminURL({
|
|
100
106
|
apiRoute: api,
|
|
101
|
-
path: `/${collectionSlug}${id ? `/${id}` : ''}${
|
|
107
|
+
path: `/${collectionSlug}${id ? `/${id}` : ''}${params}`
|
|
102
108
|
});
|
|
103
109
|
if (id) {
|
|
104
110
|
method = 'PATCH';
|
|
@@ -107,7 +113,7 @@ export function PublishButton({
|
|
|
107
113
|
if (globalSlug) {
|
|
108
114
|
action = formatAdminURL({
|
|
109
115
|
apiRoute: api,
|
|
110
|
-
path: `/globals/${globalSlug}${
|
|
116
|
+
path: `/globals/${globalSlug}${params}`
|
|
111
117
|
});
|
|
112
118
|
}
|
|
113
119
|
await submit({
|
|
@@ -118,7 +124,7 @@ export function PublishButton({
|
|
|
118
124
|
},
|
|
119
125
|
skipValidation: true
|
|
120
126
|
});
|
|
121
|
-
}, [
|
|
127
|
+
}, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id]);
|
|
122
128
|
useHotkey({
|
|
123
129
|
cmdCtrlKey: true,
|
|
124
130
|
editDepth,
|
|
@@ -134,7 +140,19 @@ export function PublishButton({
|
|
|
134
140
|
if (uploadStatus === 'uploading') {
|
|
135
141
|
return;
|
|
136
142
|
}
|
|
143
|
+
const params_0 = qs.stringify({
|
|
144
|
+
depth: 0,
|
|
145
|
+
locale: localeCode,
|
|
146
|
+
publishAllLocales: true
|
|
147
|
+
}, {
|
|
148
|
+
addQueryPrefix: true
|
|
149
|
+
});
|
|
150
|
+
const action_0 = formatAdminURL({
|
|
151
|
+
apiRoute: api,
|
|
152
|
+
path: `${globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`}${params_0}`
|
|
153
|
+
});
|
|
137
154
|
const result = await submit({
|
|
155
|
+
action: action_0,
|
|
138
156
|
overrides: {
|
|
139
157
|
_status: 'published'
|
|
140
158
|
}
|
|
@@ -144,22 +162,25 @@ export function PublishButton({
|
|
|
144
162
|
setMostRecentVersionIsAutosaved(false);
|
|
145
163
|
setHasPublishedDoc(true);
|
|
146
164
|
}
|
|
147
|
-
}, [setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus, setMostRecentVersionIsAutosaved]);
|
|
165
|
+
}, [localeCode, api, collectionSlug, globalSlug, id, setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus, setMostRecentVersionIsAutosaved]);
|
|
148
166
|
const publishSpecificLocale = useCallback(async locale => {
|
|
149
167
|
if (uploadStatus === 'uploading') {
|
|
150
168
|
return;
|
|
151
169
|
}
|
|
152
|
-
const
|
|
170
|
+
const params_1 = qs.stringify({
|
|
153
171
|
depth: 0,
|
|
172
|
+
locale,
|
|
154
173
|
publishSpecificLocale: locale
|
|
174
|
+
}, {
|
|
175
|
+
addQueryPrefix: true
|
|
155
176
|
});
|
|
156
177
|
const pathSegment = globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`;
|
|
157
|
-
const
|
|
178
|
+
const action_1 = formatAdminURL({
|
|
158
179
|
apiRoute: api,
|
|
159
|
-
path: `${pathSegment}${
|
|
180
|
+
path: `${pathSegment}${params_1}`
|
|
160
181
|
});
|
|
161
182
|
const result_0 = await submit({
|
|
162
|
-
action:
|
|
183
|
+
action: action_1,
|
|
163
184
|
overrides: {
|
|
164
185
|
_status: 'published'
|
|
165
186
|
}
|
|
@@ -167,7 +188,7 @@ export function PublishButton({
|
|
|
167
188
|
if (result_0) {
|
|
168
189
|
setHasPublishedDoc(true);
|
|
169
190
|
}
|
|
170
|
-
}, [api, collectionSlug, globalSlug, id,
|
|
191
|
+
}, [api, collectionSlug, globalSlug, id, setHasPublishedDoc, submit, uploadStatus]);
|
|
171
192
|
// Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'
|
|
172
193
|
const isDefaultPublishAll = !isSpecificLocalePublishEnabled || localization && localization?.defaultLocalePublishOption !== 'active';
|
|
173
194
|
const activeLocale = localization && localization?.locales.find(locale_0 => typeof locale_0 === 'string' ? locale_0 === localeCode : locale_0.code === localeCode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","hasAutosaveEnabled","hasScheduledPublishEnabled","qs","React","useCallback","useEffect","useState","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","i18n","t","entityConfig","useMemo","hasNewerVersions","canPublish","scheduledPublishEnabled","hasAutosave","canSchedulePublish","Boolean","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","isSpecificLocalePublishEnabled","operation","disabled","saveDraft","search","action","method","apiRoute","path","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","publish","result","publishSpecificLocale","locale","params","stringify","depth","pathSegment","isDefaultPublishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","_jsxs","Fragment","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","undefined","type","defaultType","schedulePublishConfig","versions","drafts","schedulePublish","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasScheduledPublishEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } 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 { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport function PublishButton({ label: labelProp }: PublishButtonClientProps) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = 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 getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled = hasScheduledPublishEnabled(entityConfig)\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n (hasAutosave || !modified),\n )\n\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\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 = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${search}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${search}`,\n })\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 && hasAutosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const result = await submit({\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify({\n depth: 0,\n publishSpecificLocale: locale,\n })\n\n const pathSegment = globalSlug\n ? `/globals/${globalSlug}`\n : `/${collectionSlug}${id ? `/${id}` : ''}`\n const action = formatAdminURL({\n apiRoute: api,\n path: `${pathSegment}${params ? '?' + params : ''}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setHasPublishedDoc(true)\n }\n },\n [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus],\n )\n\n // Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'\n const isDefaultPublishAll =\n !isSpecificLocalePublishEnabled ||\n (localization && localization?.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n)\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n enableSubMenu={canSchedulePublish}\n onClick={isDefaultPublishAll ? publish : () => publishSpecificLocale(activeLocale.code)}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button\n id=\"schedule-publish\"\n onClick={() => [toggleModal(drawerSlug), close()]}\n >\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {isSpecificLocalePublishEnabled && (\n <PopupList.ButtonGroup>\n <PopupList.Button\n id=\"publish-locale\"\n onClick={\n isDefaultPublishAll\n ? () => publishSpecificLocale(activeLocale.code)\n : publish\n }\n >\n {isDefaultPublishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {!isDefaultPublishAll ? t('version:publishIn', { locale: activeLocaleLabel }) : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n schedulePublishConfig={\n scheduledPublishEnabled &&\n typeof entityConfig.versions.drafts.schedulePublish === 'object'\n ? entityConfig.versions.drafts.schedulePublish\n : undefined\n }\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","hasAutosaveEnabled","hasScheduledPublishEnabled","qs","React","useCallback","useEffect","useState","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","i18n","t","entityConfig","useMemo","hasNewerVersions","canPublish","scheduledPublishEnabled","hasAutosave","canSchedulePublish","Boolean","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","isSpecificLocalePublishEnabled","operation","disabled","saveDraft","params","stringify","depth","draft","locale","addQueryPrefix","action","method","apiRoute","path","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","publish","publishAllLocales","result","publishSpecificLocale","pathSegment","isDefaultPublishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","_jsxs","Fragment","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","undefined","type","defaultType","schedulePublishConfig","versions","drafts","schedulePublish","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasScheduledPublishEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } 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 { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport { ScheduleDrawer } from './ScheduleDrawer/index.js'\n\nexport function PublishButton({ label: labelProp }: PublishButtonClientProps) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = 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 } = 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 getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled = hasScheduledPublishEnabled(entityConfig)\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n (hasAutosave || !modified),\n )\n\n const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\n\n useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\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 params = qs.stringify(\n {\n depth: 0,\n draft: true,\n 'fallback-locale': 'null',\n locale: localeCode,\n },\n { addQueryPrefix: true },\n )\n\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${params}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${params}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && hasAutosave) {\n void saveDraft()\n }\n })\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n publishAllLocales: true,\n },\n { addQueryPrefix: true },\n )\n\n const action = formatAdminURL({\n apiRoute: api,\n path: `${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n localeCode,\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\n\n const publishSpecificLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale,\n publishSpecificLocale: locale,\n },\n { addQueryPrefix: true },\n )\n\n const pathSegment = globalSlug\n ? `/globals/${globalSlug}`\n : `/${collectionSlug}${id ? `/${id}` : ''}`\n const action = formatAdminURL({\n apiRoute: api,\n path: `${pathSegment}${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setHasPublishedDoc(true)\n }\n },\n [api, collectionSlug, globalSlug, id, setHasPublishedDoc, submit, uploadStatus],\n )\n\n // Publish to all locales unless there are localized fields AND defaultLocalePublishOption is 'active'\n const isDefaultPublishAll =\n !isSpecificLocalePublishEnabled ||\n (localization && localization?.defaultLocalePublishOption !== 'active')\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n)\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish}\n enableSubMenu={canSchedulePublish}\n onClick={isDefaultPublishAll ? publish : () => publishSpecificLocale(activeLocale.code)}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled || canSchedulePublish\n ? ({ close }) => {\n return (\n <React.Fragment>\n {canSchedulePublish && (\n <PopupList.ButtonGroup key=\"schedule-publish\">\n <PopupList.Button\n id=\"schedule-publish\"\n onClick={() => [toggleModal(drawerSlug), close()]}\n >\n {t('version:schedulePublish')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n {isSpecificLocalePublishEnabled && (\n <PopupList.ButtonGroup>\n <PopupList.Button\n id=\"publish-locale\"\n onClick={\n isDefaultPublishAll\n ? () => publishSpecificLocale(activeLocale.code)\n : publish\n }\n >\n {isDefaultPublishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {!isDefaultPublishAll ? t('version:publishIn', { locale: activeLocaleLabel }) : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n schedulePublishConfig={\n scheduledPublishEnabled &&\n typeof entityConfig.versions.drafts.schedulePublish === 'object'\n ? entityConfig.versions.drafts.schedulePublish\n : undefined\n }\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAuK1B,CAAA"}
|
|
@@ -24,7 +24,6 @@ export const Status = () => {
|
|
|
24
24
|
hasPublishedDoc,
|
|
25
25
|
incrementVersionCount,
|
|
26
26
|
isTrashed,
|
|
27
|
-
setHasPublishedDoc,
|
|
28
27
|
setMostRecentVersionIsAutosaved,
|
|
29
28
|
setUnpublishedVersionCount,
|
|
30
29
|
unpublishedVersionCount
|
|
@@ -49,7 +48,6 @@ export const Status = () => {
|
|
|
49
48
|
i18n,
|
|
50
49
|
t
|
|
51
50
|
} = useTranslation();
|
|
52
|
-
const unPublishModalSlug = `confirm-un-publish-${id}`;
|
|
53
51
|
const revertModalSlug = `confirm-revert-${id}`;
|
|
54
52
|
let statusToRender;
|
|
55
53
|
if (unpublishedVersionCount > 0 && hasPublishedDoc) {
|
|
@@ -60,15 +58,9 @@ export const Status = () => {
|
|
|
60
58
|
statusToRender = 'published';
|
|
61
59
|
}
|
|
62
60
|
const displayStatusKey = isTrashed ? hasPublishedDoc ? 'previouslyPublished' : 'previouslyDraft' : statusToRender;
|
|
63
|
-
const performAction = useCallback(async
|
|
61
|
+
const performAction = useCallback(async () => {
|
|
64
62
|
let url;
|
|
65
63
|
let method;
|
|
66
|
-
let body;
|
|
67
|
-
if (action === 'unpublish') {
|
|
68
|
-
body = {
|
|
69
|
-
_status: 'draft'
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
64
|
if (collectionSlug) {
|
|
73
65
|
url = formatAdminURL({
|
|
74
66
|
apiRoute: api,
|
|
@@ -83,15 +75,13 @@ export const Status = () => {
|
|
|
83
75
|
});
|
|
84
76
|
method = 'post';
|
|
85
77
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
body = publishedDoc;
|
|
94
|
-
}
|
|
78
|
+
const publishedDoc = await requests.get(url, {
|
|
79
|
+
headers: {
|
|
80
|
+
'Accept-Language': i18n.language,
|
|
81
|
+
'Content-Type': 'application/json'
|
|
82
|
+
}
|
|
83
|
+
}).then(res => res.json());
|
|
84
|
+
const body = publishedDoc;
|
|
95
85
|
const res_0 = await requests[method](url, {
|
|
96
86
|
body: JSON.stringify(body),
|
|
97
87
|
headers: {
|
|
@@ -112,11 +102,7 @@ export const Status = () => {
|
|
|
112
102
|
toast.success(json.message);
|
|
113
103
|
incrementVersionCount();
|
|
114
104
|
setMostRecentVersionIsAutosaved(false);
|
|
115
|
-
|
|
116
|
-
setHasPublishedDoc(false);
|
|
117
|
-
} else if (action === 'revert') {
|
|
118
|
-
setUnpublishedVersionCount(0);
|
|
119
|
-
}
|
|
105
|
+
setUnpublishedVersionCount(0);
|
|
120
106
|
} else {
|
|
121
107
|
try {
|
|
122
108
|
const json_0 = await res_0.json();
|
|
@@ -125,14 +111,14 @@ export const Status = () => {
|
|
|
125
111
|
} else if (json_0.error) {
|
|
126
112
|
toast.error(json_0.error);
|
|
127
113
|
} else {
|
|
128
|
-
toast.error(t('error:
|
|
114
|
+
toast.error(t('error:revertingDocument'));
|
|
129
115
|
}
|
|
130
116
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
131
117
|
} catch (err) {
|
|
132
|
-
toast.error(t('error:
|
|
118
|
+
toast.error(t('error:revertingDocument'));
|
|
133
119
|
}
|
|
134
120
|
}
|
|
135
|
-
}, [api, collectionSlug, globalSlug, id, i18n.language, incrementVersionCount, locale, resetForm, setUnpublishedVersionCount, setMostRecentVersionIsAutosaved, t
|
|
121
|
+
}, [api, collectionSlug, globalSlug, id, i18n.language, incrementVersionCount, locale, resetForm, setUnpublishedVersionCount, setMostRecentVersionIsAutosaved, t]);
|
|
136
122
|
const canUpdate = docPermissions?.update;
|
|
137
123
|
if (statusToRender) {
|
|
138
124
|
return /*#__PURE__*/_jsx("div", {
|
|
@@ -146,20 +132,6 @@ export const Status = () => {
|
|
|
146
132
|
}), /*#__PURE__*/_jsx("span", {
|
|
147
133
|
className: `${baseClass}__value`,
|
|
148
134
|
children: t(`version:${displayStatusKey}`)
|
|
149
|
-
}), !isTrashed && canUpdate && statusToRender === 'published' && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
150
|
-
children: [" — ", /*#__PURE__*/_jsx(Button, {
|
|
151
|
-
buttonStyle: "none",
|
|
152
|
-
className: `${baseClass}__action`,
|
|
153
|
-
id: `action-unpublish`,
|
|
154
|
-
onClick: () => toggleModal(unPublishModalSlug),
|
|
155
|
-
children: t('version:unpublish')
|
|
156
|
-
}), /*#__PURE__*/_jsx(ConfirmationModal, {
|
|
157
|
-
body: t('version:aboutToUnpublish'),
|
|
158
|
-
confirmingLabel: t('version:unpublishing'),
|
|
159
|
-
heading: t('version:confirmUnpublish'),
|
|
160
|
-
modalSlug: unPublishModalSlug,
|
|
161
|
-
onConfirm: () => performAction('unpublish')
|
|
162
|
-
})]
|
|
163
135
|
}), !isTrashed && canUpdate && hasPublishedDoc && statusToRender === 'changed' && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
164
136
|
children: [" — ", /*#__PURE__*/_jsx(Button, {
|
|
165
137
|
buttonStyle: "none",
|
|
@@ -172,7 +144,7 @@ export const Status = () => {
|
|
|
172
144
|
confirmingLabel: t('version:reverting'),
|
|
173
145
|
heading: t('version:confirmRevertToSaved'),
|
|
174
146
|
modalSlug: revertModalSlug,
|
|
175
|
-
onConfirm: () => performAction(
|
|
147
|
+
onConfirm: () => performAction()
|
|
176
148
|
})]
|
|
177
149
|
})]
|
|
178
150
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","formatAdminURL","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","displayStatusKey","performAction","action","url","method","body","_status","apiRoute","path","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n isTrashed,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const displayStatusKey = isTrashed\n ? hasPublishedDoc\n ? 'previouslyPublished'\n : 'previouslyDraft'\n : statusToRender\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${displayStatusKey}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n {!isTrashed && canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id={`action-unpublish`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToUnpublish')}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => performAction('unpublish')}\n />\n </React.Fragment>\n )}\n {!isTrashed && canUpdate && hasPublishedDoc && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction('revert')}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","formatAdminURL","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","reset","resetForm","code","locale","i18n","t","revertModalSlug","statusToRender","displayStatusKey","performAction","url","method","apiRoute","path","publishedDoc","get","headers","language","then","res","json","body","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n isTrashed,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const displayStatusKey = isTrashed\n ? hasPublishedDoc\n ? 'previouslyPublished'\n : 'previouslyDraft'\n : statusToRender\n\n const performAction = useCallback(async () => {\n let url\n let method\n\n if (collectionSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'post'\n }\n\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n const body = publishedDoc\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n setUnpublishedVersionCount(0)\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:revertingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:revertingDocument'))\n }\n }\n }, [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n ])\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${displayStatusKey}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n\n {!isTrashed && canUpdate && hasPublishedDoc && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction()}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishButton/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAa/D,wBAAgB,eAAe,sBA0L9B"}
|