@payloadcms/ui 3.57.0-internal.f26caed → 3.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +74 -38
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.scss +14 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts +6 -1
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +52 -14
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +2 -2
- package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/reducer.js +5 -5
- package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
- package/dist/elements/BulkUpload/index.d.ts +30 -5
- package/dist/elements/BulkUpload/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/index.js +130 -28
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +1 -0
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
- package/dist/elements/DocumentLocked/index.js +41 -33
- package/dist/elements/DocumentLocked/index.js.map +1 -1
- package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -1
- package/dist/elements/DocumentTakeOver/index.js +27 -19
- package/dist/elements/DocumentTakeOver/index.js.map +1 -1
- package/dist/elements/Drawer/index.d.ts.map +1 -1
- package/dist/elements/Drawer/index.js +1 -0
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
- package/dist/elements/FullscreenModal/index.js +1 -0
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/LivePreview/IFrame/index.d.ts +1 -7
- package/dist/elements/LivePreview/IFrame/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/IFrame/index.js +39 -18
- package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +135 -61
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/PublishButton/index.js +1 -1
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/SearchBar/index.scss +4 -0
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +9 -19
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +20 -14
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts +4 -2
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +6 -2
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.scss +11 -9
- package/dist/elements/Toasts/fieldErrors.js +1 -1
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/exports/client/index.js +24 -24
- 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/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +3 -3
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +36 -16
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +1 -5
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Upload/Input.js +20 -20
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/Form/index.js +1 -2
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +8 -0
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/types.d.ts +2 -2
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +223 -236
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +33 -2
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +2 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts +6 -0
- package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +76 -73
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/useField/types.d.ts +5 -9
- package/dist/forms/useField/types.d.ts.map +1 -1
- package/dist/forms/useField/types.js.map +1 -1
- package/dist/providers/LivePreview/context.d.ts +17 -2
- package/dist/providers/LivePreview/context.d.ts.map +1 -1
- package/dist/providers/LivePreview/context.js +3 -2
- package/dist/providers/LivePreview/context.js.map +1 -1
- package/dist/providers/LivePreview/index.d.ts +2 -2
- package/dist/providers/LivePreview/index.d.ts.map +1 -1
- package/dist/providers/LivePreview/index.js +33 -19
- package/dist/providers/LivePreview/index.js.map +1 -1
- package/dist/providers/RouteCache/index.d.ts.map +1 -1
- package/dist/providers/RouteCache/index.js +62 -25
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.d.ts +2 -1
- package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js +2 -0
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +39 -2
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts +2 -0
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +20 -1
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/formatAbsoluteURL.d.ts +8 -0
- package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -0
- package/dist/utilities/formatAbsoluteURL.js +15 -0
- package/dist/utilities/formatAbsoluteURL.js.map +1 -0
- package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.js +0 -4
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
- package/dist/utilities/handleLivePreview.d.ts +58 -0
- package/dist/utilities/handleLivePreview.d.ts.map +1 -0
- package/dist/utilities/handleLivePreview.js +96 -0
- package/dist/utilities/handleLivePreview.js.map +1 -0
- package/dist/utilities/handleTakeOver.d.ts +17 -4
- package/dist/utilities/handleTakeOver.d.ts.map +1 -1
- package/dist/utilities/handleTakeOver.js +18 -2
- package/dist/utilities/handleTakeOver.js.map +1 -1
- package/dist/utilities/renderTable.d.ts +3 -2
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +2 -0
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +48 -13
- package/dist/views/Edit/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1,30 +1,51 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
3
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
5
|
import React from 'react';
|
|
5
6
|
import { useLivePreviewContext } from '../../../providers/LivePreview/context.js';
|
|
6
7
|
import './index.scss';
|
|
7
8
|
const baseClass = 'live-preview-iframe';
|
|
8
|
-
export const IFrame =
|
|
9
|
-
const
|
|
10
|
-
ref,
|
|
11
|
-
setIframeHasLoaded,
|
|
12
|
-
url
|
|
13
|
-
} = props;
|
|
9
|
+
export const IFrame = () => {
|
|
10
|
+
const $ = _c(8);
|
|
14
11
|
const {
|
|
12
|
+
iframeRef,
|
|
13
|
+
setLoadedURL,
|
|
14
|
+
url,
|
|
15
15
|
zoom
|
|
16
16
|
} = useLivePreviewContext();
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
});
|
|
17
|
+
let t0;
|
|
18
|
+
if ($[0] !== setLoadedURL || $[1] !== url) {
|
|
19
|
+
t0 = () => {
|
|
20
|
+
setLoadedURL(url);
|
|
21
|
+
};
|
|
22
|
+
$[0] = setLoadedURL;
|
|
23
|
+
$[1] = url;
|
|
24
|
+
$[2] = t0;
|
|
25
|
+
} else {
|
|
26
|
+
t0 = $[2];
|
|
27
|
+
}
|
|
28
|
+
const t1 = typeof zoom === "number" ? `scale(${zoom}) ` : undefined;
|
|
29
|
+
let t2;
|
|
30
|
+
if ($[3] !== iframeRef || $[4] !== t0 || $[5] !== t1 || $[6] !== url) {
|
|
31
|
+
t2 = _jsx("iframe", {
|
|
32
|
+
className: baseClass,
|
|
33
|
+
onLoad: t0,
|
|
34
|
+
ref: iframeRef,
|
|
35
|
+
src: url,
|
|
36
|
+
style: {
|
|
37
|
+
transform: t1
|
|
38
|
+
},
|
|
39
|
+
title: url
|
|
40
|
+
}, url);
|
|
41
|
+
$[3] = iframeRef;
|
|
42
|
+
$[4] = t0;
|
|
43
|
+
$[5] = t1;
|
|
44
|
+
$[6] = url;
|
|
45
|
+
$[7] = t2;
|
|
46
|
+
} else {
|
|
47
|
+
t2 = $[7];
|
|
48
|
+
}
|
|
49
|
+
return t2;
|
|
29
50
|
};
|
|
30
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useLivePreviewContext","baseClass","IFrame","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useLivePreviewContext","baseClass","IFrame","$","iframeRef","setLoadedURL","url","zoom","t0","t1","undefined","t2","_jsx","className","onLoad","ref","src","style","transform","title"],"sources":["../../../../src/elements/LivePreview/IFrame/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useLivePreviewContext } from '../../../providers/LivePreview/context.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-iframe'\n\nexport const IFrame: React.FC = () => {\n const { iframeRef, setLoadedURL, url, zoom } = useLivePreviewContext()\n\n return (\n <iframe\n className={baseClass}\n key={url}\n onLoad={() => {\n setLoadedURL(url)\n }}\n ref={iframeRef}\n src={url}\n style={{\n transform: typeof zoom === 'number' ? `scale(${zoom}) ` : undefined,\n }}\n title={url}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,MAAA,GAAmBA,CAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAC9B;IAAAM,SAAA;IAAAC,YAAA;IAAAC,GAAA;IAAAC;EAAA,IAA+CP,qBAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAL,CAAA,QAAAE,YAAA,IAAAF,CAAA,QAAAG,GAAA;IAMnCE,EAAA,GAAAA,CAAA;MACNH,YAAA,CAAaC,GAAA;IAAA;IACfH,CAAA,MAAAE,YAAA;IAAAF,CAAA,MAAAG,GAAA;IAAAH,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAIa,MAAAM,EAAA,UAAOF,IAAA,KAAS,WAAW,SAASA,IAAA,IAAQ,GAAAG,SAAG;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAK,EAAA,IAAAL,CAAA,QAAAM,EAAA,IAAAN,CAAA,QAAAG,GAAA;IAT9DK,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EAAAZ,SAAA;MAAAa,MAAA,EAGSN,EAER;MAAAO,GAAA,EACKX,SAAA;MAAAY,GAAA,EACAV,GAAA;MAAAW,KAAA;QAAAC,SAAA,EAEQT;MAA+C;MAAAU,KAAA,EAErDb;IAAA,GATFA,GAAA;IAAAH,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAK,EAAA;IAAAL,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAG,GAAA;IAAAH,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAA,OAFPQ,EAEO;AAAA,CAYX","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/LivePreview/Window/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,KAAoB,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/LivePreview/Window/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,KAAoB,MAAM,OAAO,CAAA;AAWxC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwHrD,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
3
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
5
|
import { reduceFieldsToValues } from 'payload/shared';
|
|
5
6
|
import React, { useEffect } from 'react';
|
|
@@ -10,20 +11,20 @@ import { useLivePreviewContext } from '../../../providers/LivePreview/context.js
|
|
|
10
11
|
import { useLocale } from '../../../providers/Locale/index.js';
|
|
11
12
|
import { ShimmerEffect } from '../../ShimmerEffect/index.js';
|
|
12
13
|
import { DeviceContainer } from '../Device/index.js';
|
|
13
|
-
import './index.scss';
|
|
14
14
|
import { IFrame } from '../IFrame/index.js';
|
|
15
15
|
import { LivePreviewToolbar } from '../Toolbar/index.js';
|
|
16
|
+
import './index.scss';
|
|
16
17
|
const baseClass = 'live-preview-window';
|
|
17
18
|
export const LivePreviewWindow = props => {
|
|
19
|
+
const $ = _c(49);
|
|
18
20
|
const {
|
|
19
21
|
appIsReady,
|
|
20
22
|
breakpoint,
|
|
21
|
-
iframeHasLoaded,
|
|
22
23
|
iframeRef,
|
|
23
24
|
isLivePreviewing,
|
|
25
|
+
loadedURL,
|
|
24
26
|
popupRef,
|
|
25
27
|
previewWindowType,
|
|
26
|
-
setIframeHasLoaded,
|
|
27
28
|
url
|
|
28
29
|
} = useLivePreviewContext();
|
|
29
30
|
const locale = useLocale();
|
|
@@ -36,78 +37,151 @@ export const LivePreviewWindow = props => {
|
|
|
36
37
|
collectionSlug,
|
|
37
38
|
globalSlug
|
|
38
39
|
} = useDocumentInfo();
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
40
|
+
let t0;
|
|
41
|
+
if ($[0] !== appIsReady || $[1] !== collectionSlug || $[2] !== formState || $[3] !== globalSlug || $[4] !== id || $[5] !== iframeRef || $[6] !== isLivePreviewing || $[7] !== locale || $[8] !== mostRecentUpdate || $[9] !== popupRef || $[10] !== previewWindowType || $[11] !== url) {
|
|
42
|
+
t0 = () => {
|
|
43
|
+
if (!isLivePreviewing || !appIsReady) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (formState) {
|
|
47
|
+
const values = reduceFieldsToValues(formState, true);
|
|
48
|
+
if (!values.id) {
|
|
49
|
+
values.id = id;
|
|
50
|
+
}
|
|
51
|
+
const message = {
|
|
52
|
+
type: "payload-live-preview",
|
|
53
|
+
collectionSlug,
|
|
54
|
+
data: values,
|
|
55
|
+
externallyUpdatedRelationship: mostRecentUpdate,
|
|
56
|
+
globalSlug,
|
|
57
|
+
locale: locale.code
|
|
58
|
+
};
|
|
59
|
+
if (previewWindowType === "popup" && popupRef.current) {
|
|
60
|
+
popupRef.current.postMessage(message, url);
|
|
61
|
+
}
|
|
62
|
+
if (previewWindowType === "iframe" && iframeRef.current) {
|
|
63
|
+
iframeRef.current.contentWindow?.postMessage(message, url);
|
|
64
|
+
}
|
|
52
65
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
};
|
|
67
|
+
$[0] = appIsReady;
|
|
68
|
+
$[1] = collectionSlug;
|
|
69
|
+
$[2] = formState;
|
|
70
|
+
$[3] = globalSlug;
|
|
71
|
+
$[4] = id;
|
|
72
|
+
$[5] = iframeRef;
|
|
73
|
+
$[6] = isLivePreviewing;
|
|
74
|
+
$[7] = locale;
|
|
75
|
+
$[8] = mostRecentUpdate;
|
|
76
|
+
$[9] = popupRef;
|
|
77
|
+
$[10] = previewWindowType;
|
|
78
|
+
$[11] = url;
|
|
79
|
+
$[12] = t0;
|
|
80
|
+
} else {
|
|
81
|
+
t0 = $[12];
|
|
82
|
+
}
|
|
83
|
+
let t1;
|
|
84
|
+
if ($[13] !== appIsReady || $[14] !== collectionSlug || $[15] !== formState || $[16] !== globalSlug || $[17] !== id || $[18] !== iframeRef || $[19] !== isLivePreviewing || $[20] !== loadedURL || $[21] !== locale || $[22] !== mostRecentUpdate || $[23] !== popupRef || $[24] !== previewWindowType || $[25] !== url) {
|
|
85
|
+
t1 = [formState, url, collectionSlug, globalSlug, id, previewWindowType, popupRef, appIsReady, iframeRef, mostRecentUpdate, locale, isLivePreviewing, loadedURL];
|
|
86
|
+
$[13] = appIsReady;
|
|
87
|
+
$[14] = collectionSlug;
|
|
88
|
+
$[15] = formState;
|
|
89
|
+
$[16] = globalSlug;
|
|
90
|
+
$[17] = id;
|
|
91
|
+
$[18] = iframeRef;
|
|
92
|
+
$[19] = isLivePreviewing;
|
|
93
|
+
$[20] = loadedURL;
|
|
94
|
+
$[21] = locale;
|
|
95
|
+
$[22] = mostRecentUpdate;
|
|
96
|
+
$[23] = popupRef;
|
|
97
|
+
$[24] = previewWindowType;
|
|
98
|
+
$[25] = url;
|
|
99
|
+
$[26] = t1;
|
|
100
|
+
} else {
|
|
101
|
+
t1 = $[26];
|
|
102
|
+
}
|
|
103
|
+
useEffect(t0, t1);
|
|
104
|
+
let t2;
|
|
105
|
+
if ($[27] !== appIsReady || $[28] !== iframeRef || $[29] !== isLivePreviewing || $[30] !== popupRef || $[31] !== previewWindowType || $[32] !== url) {
|
|
106
|
+
t2 = () => {
|
|
107
|
+
if (!isLivePreviewing || !appIsReady) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const message_0 = {
|
|
111
|
+
type: "payload-document-event"
|
|
60
112
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
popupRef.current.postMessage(message, url);
|
|
113
|
+
if (previewWindowType === "popup" && popupRef.current) {
|
|
114
|
+
popupRef.current.postMessage(message_0, url);
|
|
64
115
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
iframeRef.current.contentWindow?.postMessage(message, url);
|
|
116
|
+
if (previewWindowType === "iframe" && iframeRef.current) {
|
|
117
|
+
iframeRef.current.contentWindow?.postMessage(message_0, url);
|
|
68
118
|
}
|
|
69
|
-
}
|
|
70
|
-
}, [formState, url, collectionSlug, globalSlug, iframeHasLoaded, id, previewWindowType, popupRef, appIsReady, iframeRef, setIframeHasLoaded, mostRecentUpdate, locale, isLivePreviewing]);
|
|
71
|
-
// To support SSR, we transmit a `window.postMessage` event without a payload
|
|
72
|
-
// This is because the event will ultimately trigger a server-side roundtrip
|
|
73
|
-
// i.e., save, save draft, autosave, etc. will fire `router.refresh()`
|
|
74
|
-
useEffect(() => {
|
|
75
|
-
if (!isLivePreviewing || !appIsReady) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
const message_0 = {
|
|
79
|
-
type: 'payload-document-event'
|
|
80
119
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
120
|
+
$[27] = appIsReady;
|
|
121
|
+
$[28] = iframeRef;
|
|
122
|
+
$[29] = isLivePreviewing;
|
|
123
|
+
$[30] = popupRef;
|
|
124
|
+
$[31] = previewWindowType;
|
|
125
|
+
$[32] = url;
|
|
126
|
+
$[33] = t2;
|
|
127
|
+
} else {
|
|
128
|
+
t2 = $[33];
|
|
129
|
+
}
|
|
130
|
+
let t3;
|
|
131
|
+
if ($[34] !== appIsReady || $[35] !== iframeRef || $[36] !== isLivePreviewing || $[37] !== mostRecentUpdate || $[38] !== popupRef || $[39] !== previewWindowType || $[40] !== url) {
|
|
132
|
+
t3 = [mostRecentUpdate, iframeRef, popupRef, previewWindowType, url, isLivePreviewing, appIsReady];
|
|
133
|
+
$[34] = appIsReady;
|
|
134
|
+
$[35] = iframeRef;
|
|
135
|
+
$[36] = isLivePreviewing;
|
|
136
|
+
$[37] = mostRecentUpdate;
|
|
137
|
+
$[38] = popupRef;
|
|
138
|
+
$[39] = previewWindowType;
|
|
139
|
+
$[40] = url;
|
|
140
|
+
$[41] = t3;
|
|
141
|
+
} else {
|
|
142
|
+
t3 = $[41];
|
|
143
|
+
}
|
|
144
|
+
useEffect(t2, t3);
|
|
145
|
+
if (previewWindowType !== "iframe") {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
const t4 = isLivePreviewing && `${baseClass}--is-live-previewing`;
|
|
149
|
+
const t5 = breakpoint && breakpoint !== "responsive" && `${baseClass}--has-breakpoint`;
|
|
150
|
+
let t6;
|
|
151
|
+
if ($[42] !== t4 || $[43] !== t5) {
|
|
152
|
+
t6 = [baseClass, t4, t5].filter(Boolean);
|
|
153
|
+
$[42] = t4;
|
|
154
|
+
$[43] = t5;
|
|
155
|
+
$[44] = t6;
|
|
156
|
+
} else {
|
|
157
|
+
t6 = $[44];
|
|
158
|
+
}
|
|
159
|
+
const t7 = t6.join(" ");
|
|
160
|
+
let t8;
|
|
161
|
+
if ($[45] !== props || $[46] !== t7 || $[47] !== url) {
|
|
162
|
+
t8 = _jsx("div", {
|
|
163
|
+
className: t7,
|
|
164
|
+
children: _jsxs("div", {
|
|
94
165
|
className: `${baseClass}__wrapper`,
|
|
95
|
-
children: [
|
|
166
|
+
children: [_jsx(LivePreviewToolbar, {
|
|
96
167
|
...props
|
|
97
|
-
}),
|
|
168
|
+
}), _jsx("div", {
|
|
98
169
|
className: `${baseClass}__main`,
|
|
99
|
-
children:
|
|
100
|
-
children: url ?
|
|
101
|
-
ref: iframeRef,
|
|
102
|
-
setIframeHasLoaded: setIframeHasLoaded,
|
|
103
|
-
url: url
|
|
104
|
-
}) : /*#__PURE__*/_jsx(ShimmerEffect, {
|
|
170
|
+
children: _jsx(DeviceContainer, {
|
|
171
|
+
children: url ? _jsx(IFrame, {}) : _jsx(ShimmerEffect, {
|
|
105
172
|
height: "100%"
|
|
106
173
|
})
|
|
107
174
|
})
|
|
108
175
|
})]
|
|
109
176
|
})
|
|
110
177
|
});
|
|
178
|
+
$[45] = props;
|
|
179
|
+
$[46] = t7;
|
|
180
|
+
$[47] = url;
|
|
181
|
+
$[48] = t8;
|
|
182
|
+
} else {
|
|
183
|
+
t8 = $[48];
|
|
111
184
|
}
|
|
185
|
+
return t8;
|
|
112
186
|
};
|
|
113
187
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["reduceFieldsToValues","React","useEffect","useAllFormFields","useDocumentEvents","useDocumentInfo","useLivePreviewContext","useLocale","ShimmerEffect","DeviceContainer","IFrame","LivePreviewToolbar","baseClass","LivePreviewWindow","props","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","reduceFieldsToValues","React","useEffect","useAllFormFields","useDocumentEvents","useDocumentInfo","useLivePreviewContext","useLocale","ShimmerEffect","DeviceContainer","IFrame","LivePreviewToolbar","baseClass","LivePreviewWindow","props","$","appIsReady","breakpoint","iframeRef","isLivePreviewing","loadedURL","popupRef","previewWindowType","url","locale","mostRecentUpdate","formState","id","collectionSlug","globalSlug","t0","values","message","type","data","externallyUpdatedRelationship","code","current","postMessage","contentWindow","t1","t2","message_0","t3","t4","t5","t6","filter","Boolean","t7","join","t8","_jsx","className","children","_jsxs","height"],"sources":["../../../../src/elements/LivePreview/Window/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload'\n\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React, { useEffect } from 'react'\n\nimport { useAllFormFields } from '../../../forms/Form/context.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useLivePreviewContext } from '../../../providers/LivePreview/context.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport { DeviceContainer } from '../Device/index.js'\nimport { IFrame } from '../IFrame/index.js'\nimport { LivePreviewToolbar } from '../Toolbar/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-window'\n\nexport const LivePreviewWindow: React.FC<EditViewProps> = (props) => {\n const {\n appIsReady,\n breakpoint,\n iframeRef,\n isLivePreviewing,\n loadedURL,\n popupRef,\n previewWindowType,\n url,\n } = useLivePreviewContext()\n\n const locale = useLocale()\n\n const { mostRecentUpdate } = useDocumentEvents()\n\n const [formState] = useAllFormFields()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n /**\n * For client-side apps, send data through `window.postMessage`\n * The preview could either be an iframe embedded on the page\n * Or it could be a separate popup window\n * We need to transmit data to both accordingly\n */\n useEffect(() => {\n if (!isLivePreviewing || !appIsReady) {\n return\n }\n\n // For performance, do not reduce fields to values until after the iframe or popup has loaded\n if (formState) {\n const values = reduceFieldsToValues(formState, true)\n\n if (!values.id) {\n values.id = id\n }\n\n const message = {\n type: 'payload-live-preview',\n collectionSlug,\n data: values,\n externallyUpdatedRelationship: mostRecentUpdate,\n globalSlug,\n locale: locale.code,\n }\n\n // Post message to external popup window\n if (previewWindowType === 'popup' && popupRef.current) {\n popupRef.current.postMessage(message, url)\n }\n\n // Post message to embedded iframe\n if (previewWindowType === 'iframe' && iframeRef.current) {\n iframeRef.current.contentWindow?.postMessage(message, url)\n }\n }\n }, [\n formState,\n url,\n collectionSlug,\n globalSlug,\n id,\n previewWindowType,\n popupRef,\n appIsReady,\n iframeRef,\n mostRecentUpdate,\n locale,\n isLivePreviewing,\n loadedURL,\n ])\n\n /**\n * To support SSR, we transmit a `window.postMessage` event without a payload\n * This is because the event will ultimately trigger a server-side roundtrip\n * i.e., save, save draft, autosave, etc. will fire `router.refresh()`\n */\n useEffect(() => {\n if (!isLivePreviewing || !appIsReady) {\n return\n }\n\n const message = {\n type: 'payload-document-event',\n }\n\n // Post message to external popup window\n if (previewWindowType === 'popup' && popupRef.current) {\n popupRef.current.postMessage(message, url)\n }\n\n // Post message to embedded iframe\n if (previewWindowType === 'iframe' && iframeRef.current) {\n iframeRef.current.contentWindow?.postMessage(message, url)\n }\n }, [mostRecentUpdate, iframeRef, popupRef, previewWindowType, url, isLivePreviewing, appIsReady])\n\n if (previewWindowType !== 'iframe') {\n return null\n }\n\n return (\n <div\n className={[\n baseClass,\n isLivePreviewing && `${baseClass}--is-live-previewing`,\n breakpoint && breakpoint !== 'responsive' && `${baseClass}--has-breakpoint`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__wrapper`}>\n <LivePreviewToolbar {...props} />\n <div className={`${baseClass}__main`}>\n <DeviceContainer>{url ? <IFrame /> : <ShimmerEffect height=\"100%\" />}</DeviceContainer>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -145,7 +145,7 @@ export function PublishButton({
|
|
|
145
145
|
const params = qs.stringify({
|
|
146
146
|
publishSpecificLocale: locale
|
|
147
147
|
});
|
|
148
|
-
const action_0 = `${serverURL}${api}${globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}
|
|
148
|
+
const action_0 = `${serverURL}${api}${globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`}${params ? '?' + params : ''}`;
|
|
149
149
|
const result_0 = await submit({
|
|
150
150
|
action: action_0,
|
|
151
151
|
overrides: {
|
|
@@ -1 +1 @@
|
|
|
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":[]}
|
|
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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAEA,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":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EA4M1B,CAAA"}
|
|
@@ -23,7 +23,6 @@ export const Status = () => {
|
|
|
23
23
|
hasPublishedDoc,
|
|
24
24
|
incrementVersionCount,
|
|
25
25
|
isTrashed,
|
|
26
|
-
savedDocumentData: doc,
|
|
27
26
|
setHasPublishedDoc,
|
|
28
27
|
setMostRecentVersionIsAutosaved,
|
|
29
28
|
setUnpublishedVersionCount,
|
|
@@ -38,8 +37,7 @@ export const Status = () => {
|
|
|
38
37
|
api
|
|
39
38
|
},
|
|
40
39
|
serverURL
|
|
41
|
-
}
|
|
42
|
-
getEntityConfig
|
|
40
|
+
}
|
|
43
41
|
} = useConfig();
|
|
44
42
|
const {
|
|
45
43
|
reset: resetForm
|
|
@@ -53,21 +51,13 @@ export const Status = () => {
|
|
|
53
51
|
} = useTranslation();
|
|
54
52
|
const unPublishModalSlug = `confirm-un-publish-${id}`;
|
|
55
53
|
const revertModalSlug = `confirm-revert-${id}`;
|
|
56
|
-
let statusToRender
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
})
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const docConfig = collectionConfig || globalConfig;
|
|
64
|
-
const autosaveEnabled = typeof docConfig?.versions?.drafts === 'object' ? docConfig.versions.drafts.autosave : false;
|
|
65
|
-
if (autosaveEnabled) {
|
|
66
|
-
if (hasPublishedDoc) {
|
|
67
|
-
statusToRender = unpublishedVersionCount > 0 ? 'changed' : 'published';
|
|
68
|
-
}
|
|
69
|
-
} else {
|
|
70
|
-
statusToRender = doc._status || 'draft';
|
|
54
|
+
let statusToRender;
|
|
55
|
+
if (unpublishedVersionCount > 0 && hasPublishedDoc) {
|
|
56
|
+
statusToRender = 'changed';
|
|
57
|
+
} else if (!hasPublishedDoc) {
|
|
58
|
+
statusToRender = 'draft';
|
|
59
|
+
} else if (hasPublishedDoc && unpublishedVersionCount <= 0) {
|
|
60
|
+
statusToRender = 'published';
|
|
71
61
|
}
|
|
72
62
|
const displayStatusKey = isTrashed ? hasPublishedDoc ? 'previouslyPublished' : 'previouslyDraft' : statusToRender;
|
|
73
63
|
const performAction = useCallback(async action => {
|
|
@@ -164,7 +154,7 @@ export const Status = () => {
|
|
|
164
154
|
modalSlug: unPublishModalSlug,
|
|
165
155
|
onConfirm: () => performAction('unpublish')
|
|
166
156
|
})]
|
|
167
|
-
}),
|
|
157
|
+
}), !isTrashed && canUpdate && hasPublishedDoc && statusToRender === 'changed' && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
168
158
|
children: [" — ", /*#__PURE__*/_jsx(Button, {
|
|
169
159
|
buttonStyle: "none",
|
|
170
160
|
className: `${baseClass}__action`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","savedDocumentData","doc","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","serverURL","getEntityConfig","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","collectionConfig","globalConfig","docConfig","autosaveEnabled","versions","drafts","autosave","_status","displayStatusKey","performAction","action","url","method","body","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","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 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 savedDocumentData: doc,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\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' = 'draft'\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const docConfig = collectionConfig || globalConfig\n const autosaveEnabled =\n typeof docConfig?.versions?.drafts === 'object' ? docConfig.versions.drafts.autosave : false\n\n if (autosaveEnabled) {\n if (hasPublishedDoc) {\n statusToRender = unpublishedVersionCount > 0 ? 'changed' : 'published'\n }\n } else {\n statusToRender = doc._status || 'draft'\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 = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\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 serverURL,\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 && statusToRender === 'changed') ||\n statusToRender === 'draft') && (\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","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","serverURL","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","displayStatusKey","performAction","action","url","method","body","_status","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 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 serverURL,\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 = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\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 serverURL,\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 &&\n canUpdate &&\n hasPublishedDoc &&\n 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":[]}
|