@payloadcms/ui 3.76.0 → 3.76.1

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.d.ts","sourceRoot":"","sources":["../../../src/elements/CopyLocaleData/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAgB1C,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EA2LlC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/CopyLocaleData/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAgB1C,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAiMlC,CAAA"}
@@ -25,7 +25,7 @@ import './index.scss';
25
25
  const baseClass = 'copy-locale-data';
26
26
  const drawerSlug = 'copy-locale';
27
27
  export const CopyLocaleData = () => {
28
- const $ = _c(35);
28
+ const $ = _c(36);
29
29
  const {
30
30
  config: t0
31
31
  } = useConfig();
@@ -105,7 +105,7 @@ export const CopyLocaleData = () => {
105
105
  }
106
106
  React.useEffect(t4, t5);
107
107
  let t6;
108
- if ($[9] !== admin || $[10] !== collectionSlug || $[11] !== copyDataFromLocale || $[12] !== globalSlug || $[13] !== id || $[14] !== overwriteExisting || $[15] !== router || $[16] !== startRouteTransition || $[17] !== toggleModal) {
108
+ if ($[9] !== admin || $[10] !== collectionSlug || $[11] !== copyDataFromLocale || $[12] !== globalSlug || $[13] !== id || $[14] !== overwriteExisting || $[15] !== router || $[16] !== startRouteTransition || $[17] !== t || $[18] !== toggleModal) {
109
109
  t6 = async t7 => {
110
110
  const {
111
111
  from,
@@ -130,7 +130,10 @@ export const CopyLocaleData = () => {
130
130
  toggleModal(drawerSlug);
131
131
  } catch (t8) {
132
132
  const error = t8;
133
- toast.error(error.message);
133
+ setCopying(false);
134
+ const errorMessage = error.message || "error:unknown";
135
+ const translatedMessage = errorMessage.startsWith("error:") ? t(errorMessage) : errorMessage;
136
+ toast.error(translatedMessage);
134
137
  }
135
138
  };
136
139
  $[9] = admin;
@@ -141,17 +144,18 @@ export const CopyLocaleData = () => {
141
144
  $[14] = overwriteExisting;
142
145
  $[15] = router;
143
146
  $[16] = startRouteTransition;
144
- $[17] = toggleModal;
145
- $[18] = t6;
147
+ $[17] = t;
148
+ $[18] = toggleModal;
149
+ $[19] = t6;
146
150
  } else {
147
- t6 = $[18];
151
+ t6 = $[19];
148
152
  }
149
153
  const copyLocaleData = t6;
150
154
  if (!id && !globalSlug) {
151
155
  return null;
152
156
  }
153
157
  let t7;
154
- if ($[19] !== modified || $[20] !== t || $[21] !== toggleModal) {
158
+ if ($[20] !== modified || $[21] !== t || $[22] !== toggleModal) {
155
159
  t7 = () => {
156
160
  if (modified) {
157
161
  toast.info(t("general:unsavedChanges"));
@@ -159,25 +163,25 @@ export const CopyLocaleData = () => {
159
163
  toggleModal(drawerSlug);
160
164
  }
161
165
  };
162
- $[19] = modified;
163
- $[20] = t;
164
- $[21] = toggleModal;
165
- $[22] = t7;
166
+ $[20] = modified;
167
+ $[21] = t;
168
+ $[22] = toggleModal;
169
+ $[23] = t7;
166
170
  } else {
167
- t7 = $[22];
171
+ t7 = $[23];
168
172
  }
169
173
  let t8;
170
- if ($[23] !== toggleModal) {
174
+ if ($[24] !== toggleModal) {
171
175
  t8 = () => {
172
176
  toggleModal(drawerSlug);
173
177
  };
174
- $[23] = toggleModal;
175
- $[24] = t8;
178
+ $[24] = toggleModal;
179
+ $[25] = t8;
176
180
  } else {
177
- t8 = $[24];
181
+ t8 = $[25];
178
182
  }
179
183
  let t9;
180
- if ($[25] !== copyLocaleData || $[26] !== copying || $[27] !== fromLocale || $[28] !== t || $[29] !== toLocale) {
184
+ if ($[26] !== copyLocaleData || $[27] !== copying || $[28] !== fromLocale || $[29] !== t || $[30] !== toLocale) {
181
185
  t9 = async () => {
182
186
  if (fromLocale === toLocale) {
183
187
  toast.error(t("localization:cannotCopySameLocale"));
@@ -190,44 +194,44 @@ export const CopyLocaleData = () => {
190
194
  });
191
195
  }
192
196
  };
193
- $[25] = copyLocaleData;
194
- $[26] = copying;
195
- $[27] = fromLocale;
196
- $[28] = t;
197
- $[29] = toLocale;
198
- $[30] = t9;
197
+ $[26] = copyLocaleData;
198
+ $[27] = copying;
199
+ $[28] = fromLocale;
200
+ $[29] = t;
201
+ $[30] = toLocale;
202
+ $[31] = t9;
199
203
  } else {
200
- t9 = $[30];
204
+ t9 = $[31];
201
205
  }
202
206
  let t10;
203
- if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
207
+ if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
204
208
  t10 = selectedOption => {
205
209
  if (selectedOption?.value) {
206
210
  setFromLocale(selectedOption.value);
207
211
  }
208
212
  };
209
- $[31] = t10;
213
+ $[32] = t10;
210
214
  } else {
211
- t10 = $[31];
215
+ t10 = $[32];
212
216
  }
213
217
  let t11;
214
- if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
218
+ if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
215
219
  t11 = selectedOption_0 => {
216
220
  if (selectedOption_0?.value) {
217
221
  setToLocale(selectedOption_0.value);
218
222
  }
219
223
  };
220
- $[32] = t11;
224
+ $[33] = t11;
221
225
  } else {
222
- t11 = $[32];
226
+ t11 = $[33];
223
227
  }
224
228
  let t12;
225
- if ($[33] !== overwriteExisting) {
229
+ if ($[34] !== overwriteExisting) {
226
230
  t12 = () => setOverwriteExisting(!overwriteExisting);
227
- $[33] = overwriteExisting;
228
- $[34] = t12;
231
+ $[34] = overwriteExisting;
232
+ $[35] = t12;
229
233
  } else {
230
- t12 = $[34];
234
+ t12 = $[35];
231
235
  }
232
236
  return _jsxs(React.Fragment, {
233
237
  children: [_jsx(PopupList.Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","formatAdminURL","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouteTransition","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","localeOptions","locales","map","_temp","t2","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t3","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t4","t5","useEffect","t6","t7","from","to","docID","overrideData","push","adminRoute","path","t8","error","message","copyLocaleData","info","t9","t10","Symbol","for","selectedOption","t11","selectedOption_0","t12","_jsxs","Fragment","children","_jsx","onClick","className","gutter","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } 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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute: admin,\n path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,\n }) + `?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n admin,\n startRouteTransition,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","formatAdminURL","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouteTransition","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","localeOptions","locales","map","_temp","t2","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t3","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t4","t5","useEffect","t6","t7","from","to","docID","overrideData","push","adminRoute","path","t8","error","errorMessage","message","translatedMessage","startsWith","copyLocaleData","info","t9","t10","Symbol","for","selectedOption","t11","selectedOption_0","t12","_jsxs","Fragment","children","_jsx","onClick","className","gutter","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } 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 { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute: admin,\n path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,\n }) + `?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n setCopying(false)\n const errorMessage = (error as Error).message || 'error:unknown'\n const translatedMessage = errorMessage.startsWith('error:')\n ? t(errorMessage as any)\n : errorMessage\n toast.error(translatedMessage)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n admin,\n startRouteTransition,\n t,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\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/UnpublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAMzD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAY/D,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EAAE,SAAS,GACjB,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,0BAA+B,qBAyMtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishButton/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAMzD,OAAO,KAA2C,MAAM,OAAO,CAAA;AAY/D,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EAAE,SAAS,GACjB,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,0BAA+B,qBAqMtD"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useModal } from '@faceless-ui/modal';
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import { formatAdminURL } from 'payload/shared';
@@ -47,6 +47,7 @@ export function UnpublishButton({
47
47
  label: localeLabel
48
48
  } = useLocale();
49
49
  const [unpublishAll, setUnpublishAll] = useState(false);
50
+ const [hasLocalizedFields, setHasLocalizedFields] = useState(false);
50
51
  const unPublishModalSlug = `confirm-un-publish-${id}`;
51
52
  const {
52
53
  routes: {
@@ -71,8 +72,7 @@ export function UnpublishButton({
71
72
  }
72
73
  }, [collectionSlug, globalSlug, getEntityConfig]);
73
74
  const unpublish = useCallback(unpublishAll_0 => {
74
- ;
75
- (async () => {
75
+ void (async () => {
76
76
  let url;
77
77
  let method;
78
78
  const queryString = qs.stringify({
@@ -140,52 +140,53 @@ export function UnpublishButton({
140
140
  toast.error(t('error:unPublishingDocument'));
141
141
  });
142
142
  }, [dataFromProps, resetForm, collectionSlug, globalSlug, serverURL, api, localeCode, id, i18n.language, incrementVersionCount, setHasPublishedDoc, setMostRecentVersionIsAutosaved, setUnpublishedVersionCount, t]);
143
- const [hasLocalizedFields, setHasLocalizedFields] = useState(false);
144
143
  useEffect(() => {
145
144
  const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields);
146
145
  setHasLocalizedFields(hasLocalizedField);
147
146
  }, [entityConfig?.fields]);
148
- const canUnpublish = React.useMemo(() => hasPublishPermission && hasPublishedDoc && !isTrashed, [hasPublishPermission, hasPublishedDoc, isTrashed]);
147
+ const drafts = entityConfig?.versions?.drafts;
148
+ const hasDraftsEnabled = typeof drafts === 'object' && drafts !== null;
149
+ const canUnpublish = React.useMemo(() => {
150
+ return hasDraftsEnabled && hasPublishPermission && hasPublishedDoc && !isTrashed;
151
+ }, [hasPublishPermission, hasPublishedDoc, isTrashed, hasDraftsEnabled]);
149
152
  const canUnpublishCurrentLocale = React.useMemo(() => {
150
153
  if (!canUnpublish || !hasLocalizedFields) {
151
154
  return false;
152
155
  }
153
- const drafts = entityConfig?.versions?.drafts;
154
- const hasDraftsConfig = typeof drafts === 'object' && drafts !== null;
155
- const localizeStatusConfigured = hasDraftsConfig && drafts.localizeStatus === true;
156
- const experimentalLocalizeStatus = config.experimental && 'localizeStatus' in config.experimental && config.experimental.localizeStatus === true;
157
- return localizeStatusConfigured && experimentalLocalizeStatus;
158
- }, [canUnpublish, hasLocalizedFields, entityConfig?.versions?.drafts, config.experimental]);
156
+ const isLocalizeStatusEnabled = drafts && drafts.localizeStatus === true;
157
+ const isExperimentalEnabled = config.experimental?.localizeStatus === true;
158
+ return isLocalizeStatusEnabled && isExperimentalEnabled;
159
+ }, [canUnpublish, hasLocalizedFields, drafts, config.experimental?.localizeStatus]);
159
160
  const label = getTranslation(localeLabel, i18n);
160
- return /*#__PURE__*/_jsx(React.Fragment, {
161
- children: canUnpublish && /*#__PURE__*/_jsxs(_Fragment, {
162
- children: [canUnpublish && /*#__PURE__*/_jsx(PopupList.Button, {
163
- id: "action-unpublish",
164
- onClick: () => {
165
- setUnpublishAll(true);
166
- toggleModal(unPublishModalSlug);
167
- },
168
- children: labelProp || t('version:unpublish')
169
- }), canUnpublishCurrentLocale && /*#__PURE__*/_jsx(PopupList.Button, {
170
- id: "action-unpublish-locale",
171
- onClick: () => {
172
- setUnpublishAll(false);
173
- toggleModal(unPublishModalSlug);
174
- close();
175
- },
176
- children: labelProp ? labelProp + ` [${label}]` : t('version:unpublishIn', {
177
- locale: label
178
- })
179
- }), /*#__PURE__*/_jsx(ConfirmationModal, {
180
- body: !unpublishAll ? t('version:aboutToUnpublishIn', {
181
- locale: label
182
- }) : t('version:aboutToUnpublish'),
183
- confirmingLabel: t('version:unpublishing'),
184
- heading: t('version:confirmUnpublish'),
185
- modalSlug: unPublishModalSlug,
186
- onConfirm: () => unpublish(unpublishAll)
187
- })]
188
- })
161
+ if (!canUnpublish) {
162
+ return null;
163
+ }
164
+ return /*#__PURE__*/_jsxs(React.Fragment, {
165
+ children: [/*#__PURE__*/_jsx(PopupList.Button, {
166
+ id: "action-unpublish",
167
+ onClick: () => {
168
+ setUnpublishAll(true);
169
+ toggleModal(unPublishModalSlug);
170
+ },
171
+ children: labelProp || t('version:unpublish')
172
+ }), canUnpublishCurrentLocale && /*#__PURE__*/_jsx(PopupList.Button, {
173
+ id: "action-unpublish-locale",
174
+ onClick: () => {
175
+ setUnpublishAll(false);
176
+ toggleModal(unPublishModalSlug);
177
+ },
178
+ children: labelProp ? `${labelProp} [${label}]` : t('version:unpublishIn', {
179
+ locale: label
180
+ })
181
+ }), /*#__PURE__*/_jsx(ConfirmationModal, {
182
+ body: !unpublishAll ? t('version:aboutToUnpublishIn', {
183
+ locale: label
184
+ }) : t('version:aboutToUnpublish'),
185
+ confirmingLabel: t('version:unpublishing'),
186
+ heading: t('version:confirmUnpublish'),
187
+ modalSlug: unPublishModalSlug,
188
+ onConfirm: () => unpublish(unpublishAll)
189
+ })]
189
190
  });
190
191
  }
191
192
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","qs","React","useCallback","useEffect","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","UnpublishButton","label","labelProp","id","collectionSlug","data","dataFromProps","globalSlug","hasPublishedDoc","hasPublishPermission","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","toggleModal","config","getEntityConfig","reset","resetForm","code","localeCode","localeLabel","unpublishAll","setUnpublishAll","unPublishModalSlug","routes","api","serverURL","i18n","t","entityConfig","useMemo","unpublish","url","method","queryString","stringify","depth","locale","undefined","unpublishAllLocales","addQueryPrefix","apiRoute","path","res","body","JSON","_status","headers","language","status","success","json","errors","message","error","catch","hasLocalizedFields","setHasLocalizedFields","hasLocalizedField","fields","canUnpublish","canUnpublishCurrentLocale","drafts","versions","hasDraftsConfig","localizeStatusConfigured","localizeStatus","experimentalLocalizeStatus","experimental","_jsx","Fragment","_jsxs","_Fragment","Button","onClick","close","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UnpublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\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 { 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 label: labelProp,\n}: { label?: string } & UnpublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n data: dataFromProps,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\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 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 = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}${queryString}`,\n serverURL,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${queryString}`,\n serverURL,\n })\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 = React.useMemo(\n () => hasPublishPermission && hasPublishedDoc && !isTrashed,\n [hasPublishPermission, hasPublishedDoc, isTrashed],\n )\n\n const canUnpublishCurrentLocale = React.useMemo(() => {\n if (!canUnpublish || !hasLocalizedFields) { return false }\n\n const drafts = entityConfig?.versions?.drafts\n const hasDraftsConfig = typeof drafts === 'object' && drafts !== null\n const localizeStatusConfigured = hasDraftsConfig && drafts.localizeStatus === true\n const experimentalLocalizeStatus =\n config.experimental &&\n 'localizeStatus' in config.experimental &&\n config.experimental.localizeStatus === true\n\n return localizeStatusConfigured && experimentalLocalizeStatus\n }, [canUnpublish, hasLocalizedFields, entityConfig?.versions?.drafts, config.experimental])\n\n\n const label = getTranslation(localeLabel, i18n)\n\n return (\n <React.Fragment>\n {canUnpublish && (\n <>\n {canUnpublish && <PopupList.Button\n id=\"action-unpublish\"\n onClick={() => {\n setUnpublishAll(true)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp || t('version:unpublish')}\n </PopupList.Button >}\n {\n canUnpublishCurrentLocale && <PopupList.Button\n id=\"action-unpublish-locale\"\n onClick={() => {\n setUnpublishAll(false)\n toggleModal(unPublishModalSlug)\n close()\n }}\n >\n {labelProp ? labelProp + ` [${label}]` : t('version:unpublishIn', { locale: label })}\n </PopupList.Button>\n }\n <ConfirmationModal\n body={\n !unpublishAll\n ? t('version:aboutToUnpublishIn', { locale: label })\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":"AAAA;;;AAIA,SAASA,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AACxD,SAASC,KAAK,QAAQ;AAEtB,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,SAAS,QAAQ;AAC1B,OAAO,SAASC,gBAAgB;EAC9BC,KAAA,EAAOC;AAAS,CACgC,GAAG,CAAC,CAAC;EACrD,MAAM;IACJC,EAAE;IACFC,cAAc;IACdC,IAAA,EAAMC,aAAa;IACnBC,UAAU;IACVC,eAAe;IACfC,oBAAoB;IACpBC,qBAAqB;IACrBC,SAAS;IACTC,kBAAkB;IAClBC,+BAA+B;IAC/BC;EAA0B,CAC3B,GAAGrB,eAAA;EACJ,MAAM;IAAEsB;EAAW,CAAE,GAAGjC,QAAA;EAExB,MAAM;IAAEkC,MAAM;IAAEC;EAAe,CAAE,GAAGzB,SAAA;EACpC,MAAM;IAAE0B,KAAA,EAAOC;EAAS,CAAE,GAAG5B,OAAA;EAC7B,MAAM;IAAE6B,IAAA,EAAMC,UAAU;IAAEpB,KAAA,EAAOqB;EAAW,CAAE,GAAG5B,SAAA;EACjD,MAAM,CAAC6B,YAAA,EAAcC,eAAA,CAAgB,GAAGnC,QAAA,CAAS;EACjD,MAAMoC,kBAAA,GAAqB,sBAAsBtB,EAAA,EAAI;EAErD,MAAM;IACJuB,MAAA,EAAQ;MAAEC;IAAG,CAAE;IACfC;EAAS,CACV,GAAGZ,MAAA;EAEJ,MAAM;IAAEa,IAAI;IAAEC;EAAC,CAAE,GAAGnC,cAAA;EAEpB,MAAMoC,YAAA,GAAe7C,KAAA,CAAM8C,OAAO,CAAC;IACjC,IAAI5B,cAAA,EAAgB;MAClB,OAAOa,eAAA,CAAgB;QAAEb;MAAe;IAC1C;IAEA,IAAIG,UAAA,EAAY;MACd,OAAOU,eAAA,CAAgB;QAAEV;MAAW;IACtC;EACF,GAAG,CAACH,cAAA,EAAgBG,UAAA,EAAYU,eAAA,CAAgB;EAEhD,MAAMgB,SAAA,GAAY9C,WAAA,CACfoC,cAAA;;IACI;MACD,IAAIW,GAAA;MACJ,IAAIC,MAAA;MAEJ,MAAMC,WAAA,GAAcnD,EAAA,CAAGoD,SAAS,CAC9B;QACEC,KAAA,EAAO;QACP,mBAAmB;QACnBC,MAAA,EAAQhB,cAAA,GAAeiB,SAAA,GAAYnB,UAAA;QACnCoB,mBAAA,EAAqBlB;MACvB,GACA;QAAEmB,cAAA,EAAgB;MAAK;MAGzB,IAAItC,cAAA,EAAgB;QAClB8B,GAAA,GAAMlD,cAAA,CAAe;UACnB2D,QAAA,EAAUhB,GAAA;UACViB,IAAA,EAAM,IAAIxC,cAAA,IAAkBD,EAAA,GAAKiC,WAAA,EAAa;UAC9CR;QACF;QACAO,MAAA,GAAS;MACX;MAEA,IAAI5B,UAAA,EAAY;QACd2B,GAAA,GAAMlD,cAAA,CAAe;UACnB2D,QAAA,EAAUhB,GAAA;UACViB,IAAA,EAAM,YAAYrC,UAAA,GAAa6B,WAAA,EAAa;UAC5CR;QACF;QACAO,MAAA,GAAS;MACX;MAEA,IAAI;QACF,MAAMU,GAAA,GAAM,MAAMjD,QAAQ,CAACuC,MAAA,CAAO,CAACD,GAAA,EAAK;UACtCY,IAAA,EAAMC,IAAA,CAAKV,SAAS,CAAC;YAAEW,OAAA,EAAS;UAAQ;UACxCC,OAAA,EAAS;YACP,mBAAmBpB,IAAA,CAAKqB,QAAQ;YAChC,gBAAgB;UAClB;QACF;QAEA,IAAIL,GAAA,CAAIM,MAAM,KAAK,KAAK;UACtB,KAAKhC,SAAA,CAAU;YACb,IAAIb,aAAA,IAAiB,CAAC,CAAC;YACvB0C,OAAA,EAAS;UACX;UAEA1D,KAAA,CAAM8D,OAAO,CAACtB,CAAA,CAAE;UAChBpB,qBAAA;UACAI,0BAAA,CAA2B;UAC3BD,+BAAA,CAAgC;UAChCD,kBAAA,CAAmB;QACrB,OAAO;UACL,IAAI;YACF,MAAMyC,IAAA,GAAO,MAAMR,GAAA,CAAIQ,IAAI;YAC3B,IAAIA,IAAA,CAAKC,MAAM,GAAG,EAAE,EAAEC,OAAA,EAAS;cAC7BjE,KAAA,CAAMkE,KAAK,CAACH,IAAA,CAAKC,MAAM,CAAC,EAAE,CAACC,OAAO;YACpC,OAAO,IAAIF,IAAA,CAAKG,KAAK,EAAE;cACrBlE,KAAA,CAAMkE,KAAK,CAACH,IAAA,CAAKG,KAAK;YACxB,OAAO;cACLlE,KAAA,CAAMkE,KAAK,CAAC1B,CAAA,CAAE;YAChB;UACF,EAAE,MAAM;YACNxC,KAAA,CAAMkE,KAAK,CAAC1B,CAAA,CAAE;UAChB;QACF;MACF,EAAE,MAAM;QACNxC,KAAA,CAAMkE,KAAK,CAAC1B,CAAA,CAAE;MAChB;IACF,KAAK2B,KAAK,CAAC;MACTnE,KAAA,CAAMkE,KAAK,CAAC1B,CAAA,CAAE;IAChB;EACF,GACA,CACExB,aAAA,EACAa,SAAA,EACAf,cAAA,EACAG,UAAA,EACAqB,SAAA,EACAD,GAAA,EACAN,UAAA,EACAlB,EAAA,EACA0B,IAAA,CAAKqB,QAAQ,EACbxC,qBAAA,EACAE,kBAAA,EACAC,+BAAA,EACAC,0BAAA,EACAgB,CAAA,CACD;EAGH,MAAM,CAAC4B,kBAAA,EAAoBC,qBAAA,CAAsB,GAAGtE,QAAA,CAAS;EAE7DD,SAAA,CAAU;IACR,MAAMwE,iBAAA,GAAoB/D,0BAAA,CAA2BkC,YAAA,EAAc8B,MAAA;IACnEF,qBAAA,CAAsBC,iBAAA;EACxB,GAAG,CAAC7B,YAAA,EAAc8B,MAAA,CAAO;EAEzB,MAAMC,YAAA,GAAe5E,KAAA,CAAM8C,OAAO,CAChC,MAAMvB,oBAAA,IAAwBD,eAAA,IAAmB,CAACG,SAAA,EAClD,CAACF,oBAAA,EAAsBD,eAAA,EAAiBG,SAAA,CAAU;EAGpD,MAAMoD,yBAAA,GAA4B7E,KAAA,CAAM8C,OAAO,CAAC;IAC9C,IAAI,CAAC8B,YAAA,IAAgB,CAACJ,kBAAA,EAAoB;MAAE,OAAO;IAAM;IAEzD,MAAMM,MAAA,GAASjC,YAAA,EAAckC,QAAA,EAAUD,MAAA;IACvC,MAAME,eAAA,GAAkB,OAAOF,MAAA,KAAW,YAAYA,MAAA,KAAW;IACjE,MAAMG,wBAAA,GAA2BD,eAAA,IAAmBF,MAAA,CAAOI,cAAc,KAAK;IAC9E,MAAMC,0BAAA,GACJrD,MAAA,CAAOsD,YAAY,IACnB,oBAAoBtD,MAAA,CAAOsD,YAAY,IACvCtD,MAAA,CAAOsD,YAAY,CAACF,cAAc,KAAK;IAEzC,OAAOD,wBAAA,IAA4BE,0BAAA;EACrC,GAAG,CAACP,YAAA,EAAcJ,kBAAA,EAAoB3B,YAAA,EAAckC,QAAA,EAAUD,MAAA,EAAQhD,MAAA,CAAOsD,YAAY,CAAC;EAG1F,MAAMrE,KAAA,GAAQlB,cAAA,CAAeuC,WAAA,EAAaO,IAAA;EAE1C,oBACE0C,IAAA,CAACrF,KAAA,CAAMsF,QAAQ;cACZV,YAAA,iBACCW,KAAA,CAAAC,SAAA;iBACGZ,YAAA,iBAAgBS,IAAA,CAACxE,SAAA,CAAU4E,MAAM;QAChCxE,EAAA,EAAG;QACHyE,OAAA,EAASA,CAAA;UACPpD,eAAA,CAAgB;UAChBT,WAAA,CAAYU,kBAAA;QACd;kBAECvB,SAAA,IAAa4B,CAAA,CAAE;UAGhBiC,yBAAA,iBAA6BQ,IAAA,CAACxE,SAAA,CAAU4E,MAAM;QAC5CxE,EAAA,EAAG;QACHyE,OAAA,EAASA,CAAA;UACPpD,eAAA,CAAgB;UAChBT,WAAA,CAAYU,kBAAA;UACZoD,KAAA;QACF;kBAEC3E,SAAA,GAAYA,SAAA,GAAY,KAAKD,KAAA,GAAQ,GAAG6B,CAAA,CAAE,uBAAuB;UAAES,MAAA,EAAQtC;QAAM;uBAGtFsE,IAAA,CAACzE,iBAAA;QACCgD,IAAA,EACE,CAACvB,YAAA,GACGO,CAAA,CAAE,8BAA8B;UAAES,MAAA,EAAQtC;QAAM,KAChD6B,CAAA,CAAE;QAERgD,eAAA,EAAiBhD,CAAA,CAAE;QACnBiD,OAAA,EAASjD,CAAA,CAAE;QACXkD,SAAA,EAAWvD,kBAAA;QACXwD,SAAA,EAAWA,CAAA,KAAMhD,SAAA,CAAUV,YAAA;;;;AAMvC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","qs","React","useCallback","useEffect","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","traverseForLocalizedFields","ConfirmationModal","PopupList","UnpublishButton","label","labelProp","id","collectionSlug","data","dataFromProps","globalSlug","hasPublishedDoc","hasPublishPermission","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","toggleModal","config","getEntityConfig","reset","resetForm","code","localeCode","localeLabel","unpublishAll","setUnpublishAll","hasLocalizedFields","setHasLocalizedFields","unPublishModalSlug","routes","api","serverURL","i18n","t","entityConfig","useMemo","unpublish","url","method","queryString","stringify","depth","locale","undefined","unpublishAllLocales","addQueryPrefix","apiRoute","path","res","body","JSON","_status","headers","language","status","success","json","errors","message","error","catch","hasLocalizedField","fields","drafts","versions","hasDraftsEnabled","canUnpublish","canUnpublishCurrentLocale","isLocalizeStatusEnabled","localizeStatus","isExperimentalEnabled","experimental","_jsxs","Fragment","_jsx","Button","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/UnpublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UnpublishButtonClientProps } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\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 { 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 label: labelProp,\n}: { label?: string } & UnpublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n data: dataFromProps,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\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 const [hasLocalizedFields, setHasLocalizedFields] = useState(false)\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 void (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 = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}${queryString}`,\n serverURL,\n })\n method = 'patch'\n }\n\n if (globalSlug) {\n url = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${queryString}`,\n serverURL,\n })\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 useEffect(() => {\n const hasLocalizedField = traverseForLocalizedFields(entityConfig?.fields)\n setHasLocalizedFields(hasLocalizedField)\n }, [entityConfig?.fields])\n\n const drafts = entityConfig?.versions?.drafts\n const hasDraftsEnabled = typeof drafts === 'object' && drafts !== null\n\n const canUnpublish = React.useMemo(() => {\n return hasDraftsEnabled && hasPublishPermission && hasPublishedDoc && !isTrashed\n }, [hasPublishPermission, hasPublishedDoc, isTrashed, hasDraftsEnabled])\n\n const canUnpublishCurrentLocale = React.useMemo(() => {\n if (!canUnpublish || !hasLocalizedFields) {\n return false\n }\n\n const isLocalizeStatusEnabled = drafts && drafts.localizeStatus === true\n const isExperimentalEnabled = config.experimental?.localizeStatus === true\n\n return isLocalizeStatusEnabled && isExperimentalEnabled\n }, [canUnpublish, hasLocalizedFields, drafts, config.experimental?.localizeStatus])\n\n const label = getTranslation(localeLabel, i18n)\n\n if (!canUnpublish) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id=\"action-unpublish\"\n onClick={() => {\n setUnpublishAll(true)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp || t('version:unpublish')}\n </PopupList.Button>\n {canUnpublishCurrentLocale && (\n <PopupList.Button\n id=\"action-unpublish-locale\"\n onClick={() => {\n setUnpublishAll(false)\n toggleModal(unPublishModalSlug)\n }}\n >\n {labelProp ? `${labelProp} [${label}]` : t('version:unpublishIn', { locale: label })}\n </PopupList.Button>\n )}\n <ConfirmationModal\n body={\n !unpublishAll\n ? t('version:aboutToUnpublishIn', { locale: label })\n : t('version:aboutToUnpublish')\n }\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => unpublish(unpublishAll)}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}