@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.
@@ -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')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n {!isTrashed && canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\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 &nbsp;&mdash;&nbsp;\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')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n\n {!isTrashed && canUpdate && hasPublishedDoc && statusToRender === 'changed' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\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,3 @@
1
+ import React from 'react';
2
+ export declare function UnpublishButton(): React.JSX.Element;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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":[]}