@payloadcms/ui 3.55.0-canary.3 → 3.55.0-internal.b47bfce
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/BulkUpload/EditForm/index.js +18 -4
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/ClipboardAction/index.js +74 -173
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +67 -155
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/Collapsible/index.js +7 -15
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +8 -44
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +89 -97
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js +2 -22
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js +47 -83
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +27 -55
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +2 -10
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +47 -99
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentFields/index.scss +1 -1
- package/dist/elements/Drawer/index.js +23 -57
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +3 -21
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +149 -225
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileCard/index.js +19 -27
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js +12 -23
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js +10 -20
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/ListDrawer/index.js +18 -24
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +19 -32
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/elements/ListHeaderTabs/DefaultListPill.js +15 -8
- package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +1 -1
- package/dist/elements/ListSelection/index.js +11 -27
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +68 -139
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Loading/index.js +2 -11
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +46 -102
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +23 -36
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +22 -11
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js +41 -139
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
- package/dist/elements/RenderIfInViewport/index.d.ts +2 -2
- package/dist/elements/RenderIfInViewport/index.d.ts.map +1 -1
- package/dist/elements/RenderIfInViewport/index.js.map +1 -1
- package/dist/elements/SelectRow/index.js +39 -40
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js +20 -12
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.js +21 -30
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +9 -37
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +35 -37
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js +12 -27
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.js +35 -75
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +17 -26
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/Tooltip/index.js +51 -127
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Upload/index.js +2 -10
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js +31 -44
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-MIIBUJZ4.js → CodeEditor-O6BWJHD2.js} +2 -2
- package/dist/exports/client/{DatePicker-NMDEHPWL.js → DatePicker-F432AIH3.js} +2 -2
- package/dist/exports/client/{chunk-7RGKTZG2.js → chunk-AZDI6MW4.js} +1 -1
- package/dist/exports/client/{chunk-7RGKTZG2.js.map → chunk-AZDI6MW4.js.map} +1 -1
- package/dist/exports/client/{chunk-Z6O2JA43.js → chunk-FXAFULZQ.js} +6 -6
- package/dist/exports/client/{chunk-Z6O2JA43.js.map → chunk-FXAFULZQ.js.map} +3 -3
- package/dist/exports/client/index.d.ts +4 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +1 -0
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +1 -0
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.d.ts +2 -3
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +13 -23
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.js +273 -477
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.js +2 -19
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/FieldError/index.js +30 -29
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js +12 -64
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +45 -103
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +29 -44
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Row/index.d.ts +1 -3
- package/dist/fields/Row/index.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +18 -31
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +2 -11
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts +2 -1
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +185 -225
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +79 -127
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +245 -237
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/types.d.ts +2 -10
- package/dist/forms/RenderFields/types.d.ts.map +1 -1
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +30 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +82 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -0
- package/dist/forms/useField/index.d.ts +5 -0
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +74 -45
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useIntersect.js +35 -53
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js +36 -44
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +4 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +13 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/traverseForLocalizedFields.d.ts +3 -0
- package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -0
- package/dist/utilities/traverseForLocalizedFields.js +40 -0
- package/dist/utilities/traverseForLocalizedFields.js.map +1 -0
- package/dist/views/BrowseByFolder/index.js +37 -55
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.js +13 -40
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/index.js +93 -105
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/package.json +7 -7
- /package/dist/exports/client/{CodeEditor-MIIBUJZ4.js.map → CodeEditor-O6BWJHD2.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-NMDEHPWL.js.map → DatePicker-F432AIH3.js.map} +0 -0
|
@@ -10,7 +10,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
|
|
|
10
10
|
import './index.scss';
|
|
11
11
|
const baseClass = 'loading-overlay';
|
|
12
12
|
export const LoadingOverlay = t0 => {
|
|
13
|
-
const $ = _c(
|
|
13
|
+
const $ = _c(8);
|
|
14
14
|
const {
|
|
15
15
|
animationDuration,
|
|
16
16
|
loadingText,
|
|
@@ -36,15 +36,6 @@ export const LoadingOverlay = t0 => {
|
|
|
36
36
|
const t6 = animationDuration || "500ms";
|
|
37
37
|
let t7;
|
|
38
38
|
if ($[3] !== loadingText || $[4] !== t || $[5] !== t5 || $[6] !== t6) {
|
|
39
|
-
let t8;
|
|
40
|
-
if ($[8] !== loadingText || $[9] !== t) {
|
|
41
|
-
t8 = loadingText || t("general:loading");
|
|
42
|
-
$[8] = loadingText;
|
|
43
|
-
$[9] = t;
|
|
44
|
-
$[10] = t8;
|
|
45
|
-
} else {
|
|
46
|
-
t8 = $[10];
|
|
47
|
-
}
|
|
48
39
|
t7 = _jsxs("div", {
|
|
49
40
|
className: t5,
|
|
50
41
|
style: {
|
|
@@ -65,7 +56,7 @@ export const LoadingOverlay = t0 => {
|
|
|
65
56
|
})]
|
|
66
57
|
}), _jsx("span", {
|
|
67
58
|
className: `${baseClass}__text`,
|
|
68
|
-
children:
|
|
59
|
+
children: loadingText || t("general:loading")
|
|
69
60
|
})]
|
|
70
61
|
});
|
|
71
62
|
$[3] = loadingText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useLoadingOverlay","useFormProcessing","useTranslation","baseClass","LoadingOverlay","t0","$","animationDuration","loadingText","overlayType","show","t1","undefined","t","t2","t3","t4","filter","Boolean","t5","join","t6","t7","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useLoadingOverlay","useFormProcessing","useTranslation","baseClass","LoadingOverlay","t0","$","animationDuration","loadingText","overlayType","show","t1","undefined","t","t2","t3","t4","filter","Boolean","t5","join","t6","t7","_jsxs","className","style","children","_jsx","LoadingOverlayToggle","name","key","type","toggleLoadingOverlay","isLoading","useEffect","FormLoadingOverlayToggle","action","formIsLoading","loadingSuffix","isProcessing","i18n","labels","create","loading","update","trim"],"sources":["../../../src/elements/Loading/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { LoadingOverlayTypes } from '../../elements/LoadingOverlay/types.js'\n\nimport { useLoadingOverlay } from '../../elements/LoadingOverlay/index.js'\nimport { useFormProcessing } from '../../forms/Form/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'loading-overlay'\n\ntype LoadingOverlayProps = {\n animationDuration?: string\n loadingText?: string\n overlayType?: string\n show?: boolean\n}\n\nexport const LoadingOverlay: React.FC<LoadingOverlayProps> = ({\n animationDuration,\n loadingText,\n overlayType,\n show = true,\n}) => {\n const { t } = useTranslation()\n\n return (\n <div\n className={[\n baseClass,\n show ? `${baseClass}--entering` : `${baseClass}--exiting`,\n overlayType ? `${baseClass}--${overlayType}` : '',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n animationDuration: animationDuration || '500ms',\n }}\n >\n <div className={`${baseClass}__bars`}>\n <div className={`${baseClass}__bar`} />\n <div className={`${baseClass}__bar`} />\n <div className={`${baseClass}__bar`} />\n <div className={`${baseClass}__bar`} />\n <div className={`${baseClass}__bar`} />\n </div>\n\n <span className={`${baseClass}__text`}>{loadingText || t('general:loading')}</span>\n </div>\n )\n}\n\nexport type UseLoadingOverlayToggleProps = {\n loadingText?: string\n name: string\n show: boolean\n type?: LoadingOverlayTypes\n}\nexport const LoadingOverlayToggle: React.FC<UseLoadingOverlayToggleProps> = ({\n name: key,\n type = 'fullscreen',\n loadingText,\n show,\n}) => {\n const { toggleLoadingOverlay } = useLoadingOverlay()\n\n React.useEffect(() => {\n toggleLoadingOverlay({\n type,\n isLoading: show,\n key,\n loadingText: loadingText || undefined,\n })\n\n return () => {\n toggleLoadingOverlay({\n type,\n isLoading: false,\n key,\n })\n }\n }, [show, toggleLoadingOverlay, key, type, loadingText])\n\n return null\n}\n\nexport type FormLoadingOverlayToggleProps = {\n action: 'create' | 'loading' | 'update'\n formIsLoading?: boolean\n loadingSuffix?: string\n name: string\n type?: LoadingOverlayTypes\n}\n\nexport const FormLoadingOverlayToggle: React.FC<FormLoadingOverlayToggleProps> = ({\n name,\n type = 'fullscreen',\n action,\n formIsLoading = false,\n loadingSuffix,\n}) => {\n const isProcessing = useFormProcessing()\n const { i18n, t } = useTranslation()\n\n const labels = {\n create: t('general:creating'),\n loading: t('general:loading'),\n update: t('general:updating'),\n }\n\n return (\n <LoadingOverlayToggle\n loadingText={`${labels[action]} ${\n loadingSuffix ? getTranslation(loadingSuffix, i18n) : ''\n }`.trim()}\n name={name}\n show={formIsLoading || isProcessing}\n type={type}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
4
|
import React, { createContext } from 'react';
|
|
6
5
|
import { LoadingOverlay } from '../../elements/Loading/index.js';
|
|
@@ -12,118 +11,63 @@ const Context = /*#__PURE__*/createContext({
|
|
|
12
11
|
isOnScreen: false,
|
|
13
12
|
toggleLoadingOverlay: undefined
|
|
14
13
|
});
|
|
15
|
-
export const LoadingOverlayProvider =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
children
|
|
19
|
-
} = t0;
|
|
14
|
+
export const LoadingOverlayProvider = ({
|
|
15
|
+
children
|
|
16
|
+
}) => {
|
|
20
17
|
const {
|
|
21
18
|
t
|
|
22
19
|
} = useTranslation();
|
|
23
|
-
|
|
24
|
-
if ($[0] !== t) {
|
|
25
|
-
t1 = t("general:loading");
|
|
26
|
-
$[0] = t;
|
|
27
|
-
$[1] = t1;
|
|
28
|
-
} else {
|
|
29
|
-
t1 = $[1];
|
|
30
|
-
}
|
|
31
|
-
const fallbackText = t1;
|
|
20
|
+
const fallbackText = t('general:loading');
|
|
32
21
|
const [overlays, dispatchOverlay] = React.useReducer(reducer, defaultLoadingOverlayState);
|
|
33
|
-
let t2;
|
|
34
|
-
if ($[2] !== overlays.isLoading) {
|
|
35
|
-
t2 = {
|
|
36
|
-
delayBeforeShow: 1000,
|
|
37
|
-
inTimeout: animatedDuration,
|
|
38
|
-
minShowTime: 500,
|
|
39
|
-
outTimeout: animatedDuration,
|
|
40
|
-
show: overlays.isLoading
|
|
41
|
-
};
|
|
42
|
-
$[2] = overlays.isLoading;
|
|
43
|
-
$[3] = t2;
|
|
44
|
-
} else {
|
|
45
|
-
t2 = $[3];
|
|
46
|
-
}
|
|
47
22
|
const {
|
|
48
23
|
isMounted,
|
|
49
24
|
isUnmounting,
|
|
50
25
|
triggerDelayedRender
|
|
51
|
-
} = useDelayedRender(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
dispatchOverlay({
|
|
74
|
-
type: "remove",
|
|
75
|
-
payload: {
|
|
76
|
-
type,
|
|
77
|
-
key
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
$[4] = fallbackText;
|
|
83
|
-
$[5] = triggerDelayedRender;
|
|
84
|
-
$[6] = t3;
|
|
85
|
-
} else {
|
|
86
|
-
t3 = $[6];
|
|
87
|
-
}
|
|
88
|
-
const toggleLoadingOverlay = t3;
|
|
89
|
-
let t4;
|
|
90
|
-
if ($[7] !== children || $[8] !== fallbackText || $[9] !== isMounted || $[10] !== isUnmounting || $[11] !== overlays.loadingText || $[12] !== overlays.overlayType || $[13] !== toggleLoadingOverlay) {
|
|
91
|
-
let t5;
|
|
92
|
-
if ($[15] !== fallbackText || $[16] !== isMounted || $[17] !== isUnmounting || $[18] !== overlays.loadingText || $[19] !== overlays.overlayType) {
|
|
93
|
-
t5 = isMounted && _jsx(LoadingOverlay, {
|
|
94
|
-
animationDuration: `${animatedDuration}ms`,
|
|
95
|
-
loadingText: overlays.loadingText || fallbackText,
|
|
96
|
-
overlayType: overlays.overlayType,
|
|
97
|
-
show: !isUnmounting
|
|
26
|
+
} = useDelayedRender({
|
|
27
|
+
delayBeforeShow: 1000,
|
|
28
|
+
inTimeout: animatedDuration,
|
|
29
|
+
minShowTime: 500,
|
|
30
|
+
outTimeout: animatedDuration,
|
|
31
|
+
show: overlays.isLoading
|
|
32
|
+
});
|
|
33
|
+
const toggleLoadingOverlay = React.useCallback(({
|
|
34
|
+
type,
|
|
35
|
+
isLoading,
|
|
36
|
+
key,
|
|
37
|
+
loadingText = fallbackText
|
|
38
|
+
}) => {
|
|
39
|
+
if (isLoading) {
|
|
40
|
+
triggerDelayedRender();
|
|
41
|
+
dispatchOverlay({
|
|
42
|
+
type: 'add',
|
|
43
|
+
payload: {
|
|
44
|
+
type,
|
|
45
|
+
key,
|
|
46
|
+
loadingText
|
|
47
|
+
}
|
|
98
48
|
});
|
|
99
|
-
$[15] = fallbackText;
|
|
100
|
-
$[16] = isMounted;
|
|
101
|
-
$[17] = isUnmounting;
|
|
102
|
-
$[18] = overlays.loadingText;
|
|
103
|
-
$[19] = overlays.overlayType;
|
|
104
|
-
$[20] = t5;
|
|
105
49
|
} else {
|
|
106
|
-
|
|
50
|
+
dispatchOverlay({
|
|
51
|
+
type: 'remove',
|
|
52
|
+
payload: {
|
|
53
|
+
type,
|
|
54
|
+
key
|
|
55
|
+
}
|
|
56
|
+
});
|
|
107
57
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
$[13] = toggleLoadingOverlay;
|
|
122
|
-
$[14] = t4;
|
|
123
|
-
} else {
|
|
124
|
-
t4 = $[14];
|
|
125
|
-
}
|
|
126
|
-
return t4;
|
|
58
|
+
}, [triggerDelayedRender, fallbackText]);
|
|
59
|
+
return /*#__PURE__*/_jsxs(Context, {
|
|
60
|
+
value: {
|
|
61
|
+
isOnScreen: isMounted,
|
|
62
|
+
toggleLoadingOverlay
|
|
63
|
+
},
|
|
64
|
+
children: [isMounted && /*#__PURE__*/_jsx(LoadingOverlay, {
|
|
65
|
+
animationDuration: `${animatedDuration}ms`,
|
|
66
|
+
loadingText: overlays.loadingText || fallbackText,
|
|
67
|
+
overlayType: overlays.overlayType,
|
|
68
|
+
show: !isUnmounting
|
|
69
|
+
}), children]
|
|
70
|
+
});
|
|
127
71
|
};
|
|
128
72
|
export const useLoadingOverlay = () => {
|
|
129
73
|
const contextHook = React.use(Context);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createContext","LoadingOverlay","useDelayedRender","useTranslation","defaultLoadingOverlayState","reducer","animatedDuration","Context","isOnScreen","toggleLoadingOverlay","undefined","LoadingOverlayProvider","children","t","fallbackText","overlays","dispatchOverlay","useReducer","isMounted","isUnmounting","triggerDelayedRender","delayBeforeShow","inTimeout","minShowTime","outTimeout","show","isLoading","useCallback","type","key","loadingText","payload","_jsxs","value","_jsx","animationDuration","overlayType","useLoadingOverlay","contextHook","use","Error"],"sources":["../../../src/elements/LoadingOverlay/index.tsx"],"sourcesContent":["'use client'\nimport React, { createContext } from 'react'\n\nimport type { LoadingOverlayContext, ToggleLoadingOverlay } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useDelayedRender } from '../../hooks/useDelayedRender.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { defaultLoadingOverlayState, reducer } from './reducer.js'\n\nconst animatedDuration = 250\n\nconst Context = createContext({\n isOnScreen: false,\n toggleLoadingOverlay: undefined,\n})\n\nexport const LoadingOverlayProvider: React.FC<{ children?: React.ReactNode }> = ({ children }) => {\n const { t } = useTranslation()\n const fallbackText = t('general:loading')\n const [overlays, dispatchOverlay] = React.useReducer(reducer, defaultLoadingOverlayState)\n\n const { isMounted, isUnmounting, triggerDelayedRender } = useDelayedRender({\n delayBeforeShow: 1000,\n inTimeout: animatedDuration,\n minShowTime: 500,\n outTimeout: animatedDuration,\n show: overlays.isLoading,\n })\n\n const toggleLoadingOverlay = React.useCallback<ToggleLoadingOverlay>(\n ({ type, isLoading, key, loadingText = fallbackText }) => {\n if (isLoading) {\n triggerDelayedRender()\n dispatchOverlay({\n type: 'add',\n payload: {\n type,\n key,\n loadingText,\n },\n })\n } else {\n dispatchOverlay({\n type: 'remove',\n payload: {\n type,\n key,\n },\n })\n }\n },\n [triggerDelayedRender, fallbackText],\n )\n\n return (\n <Context\n value={{\n isOnScreen: isMounted,\n toggleLoadingOverlay,\n }}\n >\n {isMounted && (\n <LoadingOverlay\n animationDuration={`${animatedDuration}ms`}\n loadingText={overlays.loadingText || fallbackText}\n overlayType={overlays.overlayType}\n show={!isUnmounting}\n />\n )}\n {children}\n </Context>\n )\n}\n\nexport const useLoadingOverlay = (): LoadingOverlayContext => {\n const contextHook = React.use(Context)\n if (contextHook === undefined) {\n throw new Error('useLoadingOverlay must be used within a LoadingOverlayProvider')\n }\n\n return contextHook\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,aAAa,QAAQ;AAIrC,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAC/B,SAASC,0BAA0B,EAAEC,OAAO,QAAQ;AAEpD,MAAMC,gBAAA,GAAmB;AAEzB,MAAMC,OAAA,gBAAUP,aAAA,CAAc;EAC5BQ,UAAA,EAAY;EACZC,oBAAA,EAAsBC;AACxB;AAEA,OAAO,MAAMC,sBAAA,GAAmEA,CAAC;EAAEC;AAAQ,CAAE;EAC3F,MAAM;IAAEC;EAAC,CAAE,GAAGV,cAAA;EACd,MAAMW,YAAA,GAAeD,CAAA,CAAE;EACvB,MAAM,CAACE,QAAA,EAAUC,eAAA,CAAgB,GAAGjB,KAAA,CAAMkB,UAAU,CAACZ,OAAA,EAASD,0BAAA;EAE9D,MAAM;IAAEc,SAAS;IAAEC,YAAY;IAAEC;EAAoB,CAAE,GAAGlB,gBAAA,CAAiB;IACzEmB,eAAA,EAAiB;IACjBC,SAAA,EAAWhB,gBAAA;IACXiB,WAAA,EAAa;IACbC,UAAA,EAAYlB,gBAAA;IACZmB,IAAA,EAAMV,QAAA,CAASW;EACjB;EAEA,MAAMjB,oBAAA,GAAuBV,KAAA,CAAM4B,WAAW,CAC5C,CAAC;IAAEC,IAAI;IAAEF,SAAS;IAAEG,GAAG;IAAEC,WAAA,GAAchB;EAAY,CAAE;IACnD,IAAIY,SAAA,EAAW;MACbN,oBAAA;MACAJ,eAAA,CAAgB;QACdY,IAAA,EAAM;QACNG,OAAA,EAAS;UACPH,IAAA;UACAC,GAAA;UACAC;QACF;MACF;IACF,OAAO;MACLd,eAAA,CAAgB;QACdY,IAAA,EAAM;QACNG,OAAA,EAAS;UACPH,IAAA;UACAC;QACF;MACF;IACF;EACF,GACA,CAACT,oBAAA,EAAsBN,YAAA,CAAa;EAGtC,oBACEkB,KAAA,CAACzB,OAAA;IACC0B,KAAA,EAAO;MACLzB,UAAA,EAAYU,SAAA;MACZT;IACF;eAECS,SAAA,iBACCgB,IAAA,CAACjC,cAAA;MACCkC,iBAAA,EAAmB,GAAG7B,gBAAA,IAAoB;MAC1CwB,WAAA,EAAaf,QAAA,CAASe,WAAW,IAAIhB,YAAA;MACrCsB,WAAA,EAAarB,QAAA,CAASqB,WAAW;MACjCX,IAAA,EAAM,CAACN;QAGVP,QAAA;;AAGP;AAEA,OAAO,MAAMyB,iBAAA,GAAoBA,CAAA;EAC/B,MAAMC,WAAA,GAAcvC,KAAA,CAAMwC,GAAG,CAAChC,OAAA;EAC9B,IAAI+B,WAAA,KAAgB5B,SAAA,EAAW;IAC7B,MAAM,IAAI8B,KAAA,CAAM;EAClB;EAEA,OAAOF,WAAA;AACT","ignoreList":[]}
|
|
@@ -10,7 +10,7 @@ import { useTranslation } from '../../../providers/Translation/index.js';
|
|
|
10
10
|
import './index.scss';
|
|
11
11
|
const baseClass = 'localizer-button';
|
|
12
12
|
export const LocalizerLabel = props => {
|
|
13
|
-
const $ = _c(
|
|
13
|
+
const $ = _c(8);
|
|
14
14
|
const {
|
|
15
15
|
ariaLabel,
|
|
16
16
|
className
|
|
@@ -21,34 +21,22 @@ export const LocalizerLabel = props => {
|
|
|
21
21
|
t
|
|
22
22
|
} = useTranslation();
|
|
23
23
|
let t0;
|
|
24
|
-
if ($[0] !== ariaLabel || $[1] !== t) {
|
|
25
|
-
|
|
26
|
-
$[
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
} else {
|
|
38
|
-
t1 = $[4];
|
|
39
|
-
}
|
|
40
|
-
const t2 = t1.join(" ");
|
|
41
|
-
const t3 = locale ? locale.code : undefined;
|
|
42
|
-
const t4 = `${t("general:locale")}:`;
|
|
43
|
-
let t5;
|
|
44
|
-
if ($[5] !== i18n || $[6] !== locale.label || $[7] !== t0 || $[8] !== t2 || $[9] !== t3 || $[10] !== t4) {
|
|
45
|
-
t5 = _jsxs("div", {
|
|
46
|
-
"aria-label": t0,
|
|
47
|
-
className: t2,
|
|
48
|
-
"data-locale": t3,
|
|
24
|
+
if ($[0] !== ariaLabel || $[1] !== className || $[2] !== i18n || $[3] !== locale || $[4] !== t) {
|
|
25
|
+
let t1;
|
|
26
|
+
if ($[6] !== className) {
|
|
27
|
+
t1 = [baseClass, className].filter(Boolean);
|
|
28
|
+
$[6] = className;
|
|
29
|
+
$[7] = t1;
|
|
30
|
+
} else {
|
|
31
|
+
t1 = $[7];
|
|
32
|
+
}
|
|
33
|
+
t0 = _jsxs("div", {
|
|
34
|
+
"aria-label": ariaLabel || t("general:locale"),
|
|
35
|
+
className: t1.join(" "),
|
|
36
|
+
"data-locale": locale ? locale.code : undefined,
|
|
49
37
|
children: [_jsxs("div", {
|
|
50
38
|
className: `${baseClass}__label`,
|
|
51
|
-
children: [
|
|
39
|
+
children: [`${t("general:locale")}:`, "\xA0"]
|
|
52
40
|
}), _jsxs("div", {
|
|
53
41
|
className: `${baseClass}__current`,
|
|
54
42
|
children: [_jsx("span", {
|
|
@@ -59,16 +47,15 @@ export const LocalizerLabel = props => {
|
|
|
59
47
|
})]
|
|
60
48
|
})]
|
|
61
49
|
});
|
|
62
|
-
$[
|
|
63
|
-
$[
|
|
64
|
-
$[
|
|
65
|
-
$[
|
|
66
|
-
$[
|
|
67
|
-
$[
|
|
68
|
-
$[11] = t5;
|
|
50
|
+
$[0] = ariaLabel;
|
|
51
|
+
$[1] = className;
|
|
52
|
+
$[2] = i18n;
|
|
53
|
+
$[3] = locale;
|
|
54
|
+
$[4] = t;
|
|
55
|
+
$[5] = t0;
|
|
69
56
|
} else {
|
|
70
|
-
|
|
57
|
+
t0 = $[5];
|
|
71
58
|
}
|
|
72
|
-
return
|
|
59
|
+
return t0;
|
|
73
60
|
};
|
|
74
61
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","ChevronIcon","useLocale","useTranslation","baseClass","LocalizerLabel","props","$","ariaLabel","className","locale","i18n","t","t0","t1","filter","Boolean","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","ChevronIcon","useLocale","useTranslation","baseClass","LocalizerLabel","props","$","ariaLabel","className","locale","i18n","t","t0","t1","filter","Boolean","_jsxs","join","code","undefined","children","_jsx","label"],"sources":["../../../../src/elements/Localizer/LocalizerLabel/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'localizer-button'\n\nexport const LocalizerLabel: React.FC<{\n ariaLabel?: string\n className?: string\n}> = (props) => {\n const { ariaLabel, className } = props\n const locale = useLocale()\n const { i18n, t } = useTranslation()\n\n return (\n <div\n aria-label={ariaLabel || t('general:locale')}\n className={[baseClass, className].filter(Boolean).join(' ')}\n data-locale={locale ? locale.code : undefined}\n >\n <div className={`${baseClass}__label`}>{`${t('general:locale')}:`} </div>\n <div className={`${baseClass}__current`}>\n <span className={`${baseClass}__current-label`}>\n {`${getTranslation(locale.label, i18n)}`}\n </span>\n <ChevronIcon className={`${baseClass}__chevron`} />\n </div>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,cAAA,GAGRC,KAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACH;IAAAU,SAAA;IAAAC;EAAA,IAAiCH,KAAA;EACjC,MAAAI,MAAA,GAAeR,SAAA;EACf;IAAAS,IAAA;IAAAC;EAAA,IAAoBT,cAAA;EAAA,IAAAU,EAAA;EAAA,IAAAN,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAI,IAAA,IAAAJ,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAK,CAAA;IAAA,IAAAE,EAAA;IAAA,IAAAP,CAAA,QAAAE,SAAA;MAKLK,EAAA,IAAAV,SAAA,EAAYK,SAAA,EAAAM,MAAA,CAAAC,OAAkB;MAAAT,CAAA,MAAAE,SAAA;MAAAF,CAAA,MAAAO,EAAA;IAAA;MAAAA,EAAA,GAAAP,CAAA;IAAA;IAF3CM,EAAA,GAAAI,KAAA,CAAC;MAAA,cACaT,SAAA,IAAaI,CAAA,CAAE;MAAAH,SAAA,EAChBK,EAA8B,CAAAI,IAAA,CAAc;MAAA,eAC1CR,MAAA,GAASA,MAAA,CAAAS,IAAA,GAAAC,SAAc;MAAAC,QAAA,GAEpCJ,KAAA,CAAC;QAAAR,SAAA,EAAe,GAAAL,SAAA,SAAqB;QAAAiB,QAAA,GAAG,GAAGT,CAAA,CAAE,oBAAoB,EAAC;MAAA,C,GAClEK,KAAA,CAAC;QAAAR,SAAA,EAAe,GAAAL,SAAA,WAAuB;QAAAiB,QAAA,GACrCC,IAAA,CAAC;UAAAb,SAAA,EAAgB,GAAAL,SAAA,iBAA6B;UAAAiB,QAAA,EAC3C,GAAGtB,cAAA,CAAeW,MAAA,CAAAa,KAAA,EAAcZ,IAAA;QAAO,C,GAE1CW,IAAA,CAAArB,WAAA;UAAAQ,SAAA,EAAwB,GAAAL,SAAA;QAAuB,C;;;;;;;;;;;;SAVnDS,E;CAcJ","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;AAIvD,OAAO,
|
|
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;AAIvD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAe/D,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,wBAAwB,qBAuP3E"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { useModal } from '@faceless-ui/modal';
|
|
5
5
|
import * as qs from 'qs-esm';
|
|
6
|
-
import React, { useCallback } from 'react';
|
|
6
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
7
7
|
import { useForm, useFormModified } from '../../forms/Form/context.js';
|
|
8
8
|
import { FormSubmit } from '../../forms/Submit/index.js';
|
|
9
9
|
import { useHotkey } from '../../hooks/useHotkey.js';
|
|
@@ -13,6 +13,7 @@ import { useEditDepth } from '../../providers/EditDepth/index.js';
|
|
|
13
13
|
import { useLocale } from '../../providers/Locale/index.js';
|
|
14
14
|
import { useOperation } from '../../providers/Operation/index.js';
|
|
15
15
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
16
|
+
import { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js';
|
|
16
17
|
import { PopupList } from '../Popup/index.js';
|
|
17
18
|
import { ScheduleDrawer } from './ScheduleDrawer/index.js';
|
|
18
19
|
export function PublishButton({
|
|
@@ -78,6 +79,12 @@ export function PublishButton({
|
|
|
78
79
|
// If autosave is enabled the modified will always be true so only conditionally check on modified state
|
|
79
80
|
const hasAutosave = Boolean(typeof entityConfig?.versions?.drafts === 'object' && entityConfig?.versions?.drafts.autosave);
|
|
80
81
|
const canSchedulePublish = Boolean(scheduledPublishEnabled && hasPublishPermission && (globalSlug || collectionSlug && id) && (hasAutosave || !modified));
|
|
82
|
+
const [hasLocalizedFields, setHasLocalizedFields] = useState(false);
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields);
|
|
85
|
+
setHasLocalizedFields(hasLocalizedField);
|
|
86
|
+
}, [entityConfig?.fields]);
|
|
87
|
+
const canPublishSpecificLocale = localization && hasLocalizedFields && hasPublishPermission;
|
|
81
88
|
const operation = useOperation();
|
|
82
89
|
const disabled = operation === 'update' && !modified;
|
|
83
90
|
const saveDraft = useCallback(async () => {
|
|
@@ -116,20 +123,22 @@ export function PublishButton({
|
|
|
116
123
|
void saveDraft();
|
|
117
124
|
}
|
|
118
125
|
});
|
|
119
|
-
const publish = useCallback(() => {
|
|
126
|
+
const publish = useCallback(async () => {
|
|
120
127
|
if (uploadStatus === 'uploading') {
|
|
121
128
|
return;
|
|
122
129
|
}
|
|
123
|
-
|
|
130
|
+
const result = await submit({
|
|
124
131
|
overrides: {
|
|
125
132
|
_status: 'published'
|
|
126
133
|
}
|
|
127
134
|
});
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
135
|
+
if (result) {
|
|
136
|
+
setUnpublishedVersionCount(0);
|
|
137
|
+
setMostRecentVersionIsAutosaved(false);
|
|
138
|
+
setHasPublishedDoc(true);
|
|
139
|
+
}
|
|
131
140
|
}, [setHasPublishedDoc, submit, setUnpublishedVersionCount, uploadStatus, setMostRecentVersionIsAutosaved]);
|
|
132
|
-
const publishSpecificLocale = useCallback(locale => {
|
|
141
|
+
const publishSpecificLocale = useCallback(async locale => {
|
|
133
142
|
if (uploadStatus === 'uploading') {
|
|
134
143
|
return;
|
|
135
144
|
}
|
|
@@ -137,13 +146,15 @@ export function PublishButton({
|
|
|
137
146
|
publishSpecificLocale: locale
|
|
138
147
|
});
|
|
139
148
|
const action_0 = `${serverURL}${api}${globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`}${params ? '?' + params : ''}`;
|
|
140
|
-
|
|
149
|
+
const result_0 = await submit({
|
|
141
150
|
action: action_0,
|
|
142
151
|
overrides: {
|
|
143
152
|
_status: 'published'
|
|
144
153
|
}
|
|
145
154
|
});
|
|
146
|
-
|
|
155
|
+
if (result_0) {
|
|
156
|
+
setHasPublishedDoc(true);
|
|
157
|
+
}
|
|
147
158
|
}, [api, collectionSlug, globalSlug, id, serverURL, setHasPublishedDoc, submit, uploadStatus]);
|
|
148
159
|
const publishAll = !localization || localization && localization.defaultLocalePublishOption !== 'active';
|
|
149
160
|
const activeLocale = localization && localization?.locales.find(locale_0 => typeof locale_0 === 'string' ? locale_0 === localeCode : locale_0.code === localeCode);
|
|
@@ -166,7 +177,7 @@ export function PublishButton({
|
|
|
166
177
|
enableSubMenu: canSchedulePublish,
|
|
167
178
|
onClick: defaultPublish,
|
|
168
179
|
size: "medium",
|
|
169
|
-
SubMenuPopupContent:
|
|
180
|
+
SubMenuPopupContent: canPublishSpecificLocale || canSchedulePublish ? ({
|
|
170
181
|
close
|
|
171
182
|
}) => {
|
|
172
183
|
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
@@ -176,7 +187,7 @@ export function PublishButton({
|
|
|
176
187
|
onClick: () => [toggleModal(drawerSlug), close()],
|
|
177
188
|
children: t('version:schedulePublish')
|
|
178
189
|
})
|
|
179
|
-
}, "schedule-publish"),
|
|
190
|
+
}, "schedule-publish"), canPublishSpecificLocale && /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
|
|
180
191
|
children: /*#__PURE__*/_jsx(PopupList.Button, {
|
|
181
192
|
id: "publish-locale",
|
|
182
193
|
onClick: secondaryPublish,
|
|
@@ -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","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","t","entityConfig","useMemo","hasNewerVersions","schedulePublish","versions","drafts","canPublish","scheduledPublishEnabled","Boolean","hasAutosave","autosave","canSchedulePublish","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","publish","publishSpecificLocale","locale","params","stringify","publishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","undefined","defaultPublish","defaultLabel","secondaryPublish","secondaryLabel","_jsxs","Fragment","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","type","defaultType","schedulePublishConfig","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\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 function PublishButton({ label: labelProp }: PublishButtonClientProps) {\n const {\n id,\n collectionSlug,\n docConfig,\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 { 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 schedulePublish =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled = Boolean(schedulePublish)\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = Boolean(\n typeof entityConfig?.versions?.drafts === 'object' && entityConfig?.versions?.drafts.autosave,\n )\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n (hasAutosave || !modified),\n )\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 setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }, [\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n ])\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 const publishAll =\n !localization || (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 =\n activeLocale &&\n (typeof activeLocale.label === 'string'\n ? activeLocale.label\n : (activeLocale.label?.[localeCode] ?? undefined))\n\n const defaultPublish = publishAll ? publish : () => publishSpecificLocale(activeLocale.code)\n const defaultLabel = publishAll ? label : t('version:publishIn', { locale: activeLocaleLabel })\n\n const secondaryPublish = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish\n const secondaryLabel = publishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')\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={defaultPublish}\n size=\"medium\"\n SubMenuPopupContent={\n localization || 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 {localization && canPublish && (\n <PopupList.ButtonGroup>\n <PopupList.Button id=\"publish-locale\" onClick={secondaryPublish}>\n {secondaryLabel}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {localization ? defaultLabel : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n schedulePublishConfig={typeof schedulePublish === 'object' && schedulePublish}\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","qs","React","useCallback","useEffect","useState","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","traverseForLocalizedFields","PopupList","ScheduleDrawer","PublishButton","label","labelProp","id","collectionSlug","docConfig","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","submit","modified","editDepth","code","localeCode","isModalOpen","toggleModal","drawerSlug","localization","routes","api","serverURL","t","entityConfig","useMemo","hasNewerVersions","schedulePublish","versions","drafts","canPublish","scheduledPublishEnabled","Boolean","hasAutosave","autosave","canSchedulePublish","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","canPublishSpecificLocale","operation","disabled","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","publish","result","publishSpecificLocale","locale","params","stringify","publishAll","defaultLocalePublishOption","activeLocale","locales","find","activeLocaleLabel","undefined","defaultPublish","defaultLabel","secondaryPublish","secondaryLabel","_jsxs","Fragment","_jsx","buttonId","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","type","defaultType","schedulePublishConfig","slug"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\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 docConfig,\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 { 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 schedulePublish =\n typeof entityConfig?.versions?.drafts === 'object' &&\n entityConfig?.versions?.drafts.schedulePublish\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const scheduledPublishEnabled = Boolean(schedulePublish)\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = Boolean(\n typeof entityConfig?.versions?.drafts === 'object' && entityConfig?.versions?.drafts.autosave,\n )\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 canPublishSpecificLocale = 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 = `${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(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 publishSpecificLocale: locale,\n })\n\n const action = `${serverURL}${api}${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}/${id ? `${'/' + id}` : ''}`\n }${params ? '?' + params : ''}`\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 const publishAll =\n !localization || (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 =\n activeLocale &&\n (typeof activeLocale.label === 'string'\n ? activeLocale.label\n : (activeLocale.label?.[localeCode] ?? undefined))\n\n const defaultPublish = publishAll ? publish : () => publishSpecificLocale(activeLocale.code)\n const defaultLabel = publishAll ? label : t('version:publishIn', { locale: activeLocaleLabel })\n\n const secondaryPublish = publishAll ? () => publishSpecificLocale(activeLocale.code) : publish\n const secondaryLabel = publishAll\n ? t('version:publishIn', { locale: activeLocaleLabel })\n : t('version:publishAllLocales')\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={defaultPublish}\n size=\"medium\"\n SubMenuPopupContent={\n canPublishSpecificLocale || 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 {canPublishSpecificLocale && (\n <PopupList.ButtonGroup>\n <PopupList.Button id=\"publish-locale\" onClick={secondaryPublish}>\n {secondaryLabel}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n </React.Fragment>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {localization ? defaultLabel : label}\n </FormSubmit>\n {canSchedulePublish && isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n schedulePublishConfig={typeof schedulePublish === 'object' && schedulePublish}\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|