@payloadcms/ui 3.72.0-canary.0 → 3.72.0-internal.3e70d4c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/Autosave/index.js +3 -3
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +2 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +33 -12
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +13 -41
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/UnpublishButton/index.d.ts +3 -0
- package/dist/elements/UnpublishButton/index.d.ts.map +1 -0
- package/dist/elements/UnpublishButton/index.js +181 -0
- package/dist/elements/UnpublishButton/index.js.map +1 -0
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +1 -0
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/utilities/traverseForLocalizedFields.d.ts +2 -2
- package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","formatAdminURL","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","displayStatusKey","performAction","action","url","method","body","_status","apiRoute","path","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n isTrashed,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const displayStatusKey = isTrashed\n ? hasPublishedDoc\n ? 'previouslyPublished'\n : 'previouslyDraft'\n : statusToRender\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${displayStatusKey}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n {!isTrashed && canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id={`action-unpublish`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToUnpublish')}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => performAction('unpublish')}\n />\n </React.Fragment>\n )}\n {!isTrashed && canUpdate && hasPublishedDoc && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction('revert')}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","formatAdminURL","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","reset","resetForm","code","locale","i18n","t","revertModalSlug","statusToRender","displayStatusKey","performAction","url","method","apiRoute","path","publishedDoc","get","headers","language","then","res","json","body","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n isTrashed,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const displayStatusKey = isTrashed\n ? hasPublishedDoc\n ? 'previouslyPublished'\n : 'previouslyDraft'\n : statusToRender\n\n const performAction = useCallback(async () => {\n let url\n let method\n\n if (collectionSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`,\n })\n method = 'post'\n }\n\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n const body = publishedDoc\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n setUnpublishedVersionCount(0)\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:revertingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:revertingDocument'))\n }\n }\n }, [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n ])\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${displayStatusKey}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n\n {!isTrashed && canUpdate && hasPublishedDoc && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction()}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishButton/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAa/D,wBAAgB,eAAe,sBA0L9B"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
|
+
import { useModal } from '@faceless-ui/modal';
|
|
5
|
+
import { getTranslation } from '@payloadcms/translations';
|
|
6
|
+
import * as qs from 'qs-esm';
|
|
7
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
8
|
+
import { toast } from 'sonner';
|
|
9
|
+
import { useForm } from '../../forms/Form/context.js';
|
|
10
|
+
import { FormSubmit } from '../../forms/Submit/index.js';
|
|
11
|
+
import { useConfig } from '../../providers/Config/index.js';
|
|
12
|
+
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
13
|
+
import { useLocale } from '../../providers/Locale/index.js';
|
|
14
|
+
import { useTranslation } from '../../providers/Translation/index.js';
|
|
15
|
+
import { requests } from '../../utilities/api.js';
|
|
16
|
+
import { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js';
|
|
17
|
+
import { ConfirmationModal } from '../ConfirmationModal/index.js';
|
|
18
|
+
import { PopupList } from '../Popup/index.js';
|
|
19
|
+
export function UnpublishButton() {
|
|
20
|
+
const {
|
|
21
|
+
id,
|
|
22
|
+
collectionSlug,
|
|
23
|
+
data: dataFromProps,
|
|
24
|
+
globalSlug,
|
|
25
|
+
hasPublishedDoc,
|
|
26
|
+
incrementVersionCount,
|
|
27
|
+
isTrashed,
|
|
28
|
+
setHasPublishedDoc,
|
|
29
|
+
setMostRecentVersionIsAutosaved,
|
|
30
|
+
setUnpublishedVersionCount
|
|
31
|
+
} = useDocumentInfo();
|
|
32
|
+
const {
|
|
33
|
+
toggleModal
|
|
34
|
+
} = useModal();
|
|
35
|
+
const {
|
|
36
|
+
config,
|
|
37
|
+
getEntityConfig
|
|
38
|
+
} = useConfig();
|
|
39
|
+
const {
|
|
40
|
+
reset: resetForm
|
|
41
|
+
} = useForm();
|
|
42
|
+
const {
|
|
43
|
+
code: localeCode,
|
|
44
|
+
label: localeLabel
|
|
45
|
+
} = useLocale();
|
|
46
|
+
const [unpublishAll, setUnpublishAll] = useState(false);
|
|
47
|
+
const unPublishModalSlug = `confirm-un-publish-${id}`;
|
|
48
|
+
const {
|
|
49
|
+
routes: {
|
|
50
|
+
api
|
|
51
|
+
},
|
|
52
|
+
serverURL
|
|
53
|
+
} = config;
|
|
54
|
+
const {
|
|
55
|
+
i18n,
|
|
56
|
+
t
|
|
57
|
+
} = useTranslation();
|
|
58
|
+
const entityConfig = React.useMemo(() => {
|
|
59
|
+
if (collectionSlug) {
|
|
60
|
+
return getEntityConfig({
|
|
61
|
+
collectionSlug
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (globalSlug) {
|
|
65
|
+
return getEntityConfig({
|
|
66
|
+
globalSlug
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}, [collectionSlug, globalSlug, getEntityConfig]);
|
|
70
|
+
const unpublish = useCallback(unpublishAll_0 => {
|
|
71
|
+
;
|
|
72
|
+
(async () => {
|
|
73
|
+
let url;
|
|
74
|
+
let method;
|
|
75
|
+
const queryString = qs.stringify({
|
|
76
|
+
depth: 0,
|
|
77
|
+
'fallback-locale': 'null',
|
|
78
|
+
locale: unpublishAll_0 ? undefined : localeCode,
|
|
79
|
+
unpublishAllLocales: unpublishAll_0
|
|
80
|
+
}, {
|
|
81
|
+
addQueryPrefix: true
|
|
82
|
+
});
|
|
83
|
+
if (collectionSlug) {
|
|
84
|
+
url = `${serverURL}${api}/${collectionSlug}/${id}${queryString}`;
|
|
85
|
+
method = 'patch';
|
|
86
|
+
}
|
|
87
|
+
if (globalSlug) {
|
|
88
|
+
url = `${serverURL}${api}/globals/${globalSlug}${queryString}`;
|
|
89
|
+
method = 'post';
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
const res = await requests[method](url, {
|
|
93
|
+
body: JSON.stringify({
|
|
94
|
+
_status: 'draft'
|
|
95
|
+
}),
|
|
96
|
+
headers: {
|
|
97
|
+
'Accept-Language': i18n.language,
|
|
98
|
+
'Content-Type': 'application/json'
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
if (res.status === 200) {
|
|
102
|
+
void resetForm({
|
|
103
|
+
...(dataFromProps || {}),
|
|
104
|
+
_status: 'draft'
|
|
105
|
+
});
|
|
106
|
+
toast.success(t('version:unpublishedSuccessfully'));
|
|
107
|
+
incrementVersionCount();
|
|
108
|
+
setUnpublishedVersionCount(1);
|
|
109
|
+
setMostRecentVersionIsAutosaved(false);
|
|
110
|
+
setHasPublishedDoc(false);
|
|
111
|
+
} else {
|
|
112
|
+
try {
|
|
113
|
+
const json = await res.json();
|
|
114
|
+
if (json.errors?.[0]?.message) {
|
|
115
|
+
toast.error(json.errors[0].message);
|
|
116
|
+
} else if (json.error) {
|
|
117
|
+
toast.error(json.error);
|
|
118
|
+
} else {
|
|
119
|
+
toast.error(t('error:unPublishingDocument'));
|
|
120
|
+
}
|
|
121
|
+
} catch {
|
|
122
|
+
toast.error(t('error:unPublishingDocument'));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
} catch {
|
|
126
|
+
toast.error(t('error:unPublishingDocument'));
|
|
127
|
+
}
|
|
128
|
+
})().catch(() => {
|
|
129
|
+
toast.error(t('error:unPublishingDocument'));
|
|
130
|
+
});
|
|
131
|
+
}, [dataFromProps, resetForm, collectionSlug, globalSlug, serverURL, api, localeCode, id, i18n.language, incrementVersionCount, setHasPublishedDoc, setMostRecentVersionIsAutosaved, setUnpublishedVersionCount, t]);
|
|
132
|
+
const [hasLocalizedFields, setHasLocalizedFields] = useState(false);
|
|
133
|
+
useEffect(() => {
|
|
134
|
+
const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields);
|
|
135
|
+
setHasLocalizedFields(hasLocalizedField);
|
|
136
|
+
}, [entityConfig?.fields]);
|
|
137
|
+
const canUnpublish = hasPublishedDoc && !isTrashed;
|
|
138
|
+
const canUnpublishCurrentLocale = hasLocalizedFields && canUnpublish;
|
|
139
|
+
return /*#__PURE__*/_jsx(React.Fragment, {
|
|
140
|
+
children: canUnpublish && /*#__PURE__*/_jsxs(_Fragment, {
|
|
141
|
+
children: [/*#__PURE__*/_jsx(FormSubmit, {
|
|
142
|
+
buttonId: "action-unpublish",
|
|
143
|
+
disabled: !canUnpublish,
|
|
144
|
+
enableSubMenu: canUnpublishCurrentLocale,
|
|
145
|
+
onClick: () => {
|
|
146
|
+
setUnpublishAll(true);
|
|
147
|
+
toggleModal(unPublishModalSlug);
|
|
148
|
+
},
|
|
149
|
+
size: "medium",
|
|
150
|
+
SubMenuPopupContent: canUnpublishCurrentLocale ? ({
|
|
151
|
+
close
|
|
152
|
+
}) => {
|
|
153
|
+
return /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
|
|
154
|
+
children: /*#__PURE__*/_jsx(PopupList.Button, {
|
|
155
|
+
id: "action-unpublish-locale",
|
|
156
|
+
onClick: () => {
|
|
157
|
+
setUnpublishAll(false);
|
|
158
|
+
toggleModal(unPublishModalSlug);
|
|
159
|
+
close();
|
|
160
|
+
},
|
|
161
|
+
children: t('version:unpublishIn', {
|
|
162
|
+
locale: getTranslation(localeLabel, i18n)
|
|
163
|
+
})
|
|
164
|
+
})
|
|
165
|
+
});
|
|
166
|
+
} : undefined,
|
|
167
|
+
type: "button",
|
|
168
|
+
children: t('version:unpublish')
|
|
169
|
+
}), /*#__PURE__*/_jsx(ConfirmationModal, {
|
|
170
|
+
body: !unpublishAll ? t('version:aboutToUnpublishIn', {
|
|
171
|
+
locale: getTranslation(localeLabel, i18n)
|
|
172
|
+
}) : t('version:aboutToUnpublish'),
|
|
173
|
+
confirmingLabel: t('version:unpublishing'),
|
|
174
|
+
heading: t('version:confirmUnpublish'),
|
|
175
|
+
modalSlug: unPublishModalSlug,
|
|
176
|
+
onConfirm: () => unpublish(unpublishAll)
|
|
177
|
+
})]
|
|
178
|
+
})
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","qs","React","useCallback","useEffect","useState","toast","useForm","FormSubmit","useConfig","useDocumentInfo","useLocale","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","UnpublishButton","id","collectionSlug","data","dataFromProps","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","toggleModal","config","getEntityConfig","reset","resetForm","code","localeCode","label","localeLabel","unpublishAll","setUnpublishAll","unPublishModalSlug","routes","api","serverURL","i18n","t","entityConfig","useMemo","unpublish","url","method","queryString","stringify","depth","locale","undefined","unpublishAllLocales","addQueryPrefix","res","body","JSON","_status","headers","language","status","success","json","errors","message","error","catch","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","canUnpublish","canUnpublishCurrentLocale","_jsx","Fragment","_jsxs","_Fragment","buttonId","disabled","enableSubMenu","onClick","size","SubMenuPopupContent","close","ButtonGroup","Button","type","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.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 { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nexport function UnpublishButton() {\n const {\n id,\n collectionSlug,\n data: dataFromProps,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n isTrashed,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n\n const { config, getEntityConfig } = useConfig()\n const { reset: resetForm } = useForm()\n const { code: localeCode, label: localeLabel } = useLocale()\n const [unpublishAll, setUnpublishAll] = useState(false)\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n\n const {\n routes: { api },\n serverURL,\n } = config\n\n const { i18n, t } = useTranslation()\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 unpublish = useCallback(\n (unpublishAll?: boolean) => {\n ; (async () => {\n let url\n let method\n\n const queryString = qs.stringify(\n {\n depth: 0,\n 'fallback-locale': 'null',\n locale: unpublishAll ? undefined : localeCode,\n unpublishAllLocales: unpublishAll,\n },\n { addQueryPrefix: true },\n )\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}${queryString}`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}${queryString}`\n method = 'post'\n }\n\n try {\n const res = await requests[method](url, {\n body: JSON.stringify({ _status: 'draft' }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n void resetForm({\n ...(dataFromProps || {}),\n _status: 'draft',\n })\n\n toast.success(t('version:unpublishedSuccessfully'))\n incrementVersionCount()\n setUnpublishedVersionCount(1)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(false)\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 } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n } catch {\n toast.error(t('error:unPublishingDocument'))\n }\n })().catch(() => {\n toast.error(t('error:unPublishingDocument'))\n })\n },\n [\n dataFromProps,\n resetForm,\n collectionSlug,\n globalSlug,\n serverURL,\n api,\n localeCode,\n id,\n i18n.language,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n t,\n ],\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 canUnpublish = hasPublishedDoc && !isTrashed\n const canUnpublishCurrentLocale = hasLocalizedFields && canUnpublish\n\n return (\n <React.Fragment>\n {canUnpublish && (\n <>\n <FormSubmit\n buttonId=\"action-unpublish\"\n disabled={!canUnpublish}\n enableSubMenu={canUnpublishCurrentLocale}\n onClick={() => {\n setUnpublishAll(true)\n toggleModal(unPublishModalSlug)\n }}\n size=\"medium\"\n SubMenuPopupContent={\n canUnpublishCurrentLocale\n ? ({ close }) => {\n return (\n <PopupList.ButtonGroup>\n <PopupList.Button\n id=\"action-unpublish-locale\"\n onClick={() => {\n setUnpublishAll(false)\n toggleModal(unPublishModalSlug)\n close()\n }}\n >\n {t('version:unpublishIn', { locale: getTranslation(localeLabel, i18n) })}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }\n : undefined\n }\n type=\"button\"\n >\n {t('version:unpublish')}\n </FormSubmit>\n <ConfirmationModal\n body={\n !unpublishAll\n ? t('version:aboutToUnpublishIn', { locale: getTranslation(localeLabel, i18n) })\n : t('version:aboutToUnpublish')\n }\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => unpublish(unpublishAll)}\n />\n </>\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|