@payloadcms/ui 3.0.0-beta.116 → 3.0.0-beta.118
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/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +16 -5
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +16 -5
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.scss +4 -0
- package/dist/elements/TableColumns/buildColumnState.js +1 -0
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +16 -5
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-4A6256PR.js → CodeEditor-VPUKDCXS.js} +1 -1
- package/dist/exports/client/{CodeEditor-4A6256PR.js.map → CodeEditor-VPUKDCXS.js.map} +1 -1
- package/dist/exports/client/{DatePicker-2ZXVD574.js → DatePicker-FUJV23KL.js} +2 -2
- package/dist/exports/client/{chunk-ED2SHEMU.js → chunk-UMJJTMDP.js} +1 -1
- package/dist/exports/client/{chunk-ED2SHEMU.js.map → chunk-UMJJTMDP.js.map} +1 -1
- package/dist/exports/client/index.js +10 -7
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/fields/Checkbox/index.js +1 -0
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.d.ts.map +1 -1
- package/dist/fields/FieldLabel/index.js +58 -30
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.scss +24 -2
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +7 -0
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/providers/Config/createClientConfig/fields.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/fields.js +21 -3
- package/dist/providers/Config/createClientConfig/fields.js.map +1 -1
- package/dist/providers/Selection/index.js +3 -3
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +8 -8
- /package/dist/exports/client/{DatePicker-2ZXVD574.js.map → DatePicker-FUJV23KL.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAKrD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAKrD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2ItC,CAAA"}
|
|
@@ -22,7 +22,8 @@ export const DeleteMany = props => {
|
|
|
22
22
|
collection: {
|
|
23
23
|
slug,
|
|
24
24
|
labels: {
|
|
25
|
-
plural
|
|
25
|
+
plural,
|
|
26
|
+
singular
|
|
26
27
|
}
|
|
27
28
|
} = {}
|
|
28
29
|
} = props;
|
|
@@ -75,8 +76,18 @@ export const DeleteMany = props => {
|
|
|
75
76
|
try {
|
|
76
77
|
const json = await res.json();
|
|
77
78
|
toggleModal(modalSlug);
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
const deletedDocs = json?.docs.length || 0;
|
|
80
|
+
const successLabel = deletedDocs > 1 ? plural : singular;
|
|
81
|
+
if (res.status < 400 || deletedDocs > 0) {
|
|
82
|
+
toast.success(t('general:deletedCountSuccessfully', {
|
|
83
|
+
count: deletedDocs,
|
|
84
|
+
label: getTranslation(successLabel, i18n)
|
|
85
|
+
}));
|
|
86
|
+
if (json?.errors.length > 0) {
|
|
87
|
+
toast.error(json.message, {
|
|
88
|
+
description: json.errors.map(error => error.message).join('\n')
|
|
89
|
+
});
|
|
90
|
+
}
|
|
80
91
|
toggleAll();
|
|
81
92
|
router.replace(stringifyParams({
|
|
82
93
|
params: {
|
|
@@ -89,7 +100,7 @@ export const DeleteMany = props => {
|
|
|
89
100
|
}
|
|
90
101
|
if (json.errors) {
|
|
91
102
|
toast.error(json.message, {
|
|
92
|
-
description: json.errors.map(
|
|
103
|
+
description: json.errors.map(error_0 => error_0.message).join('\n')
|
|
93
104
|
});
|
|
94
105
|
} else {
|
|
95
106
|
addDefaultError();
|
|
@@ -99,7 +110,7 @@ export const DeleteMany = props => {
|
|
|
99
110
|
return addDefaultError();
|
|
100
111
|
}
|
|
101
112
|
});
|
|
102
|
-
}, [addDefaultError, api, getQueryParams, i18n
|
|
113
|
+
}, [addDefaultError, api, getQueryParams, i18n, modalSlug, plural, router, selectAll, serverURL, singular, slug, stringifyParams, t, toggleAll, toggleModal, clearRouteCache]);
|
|
103
114
|
if (selectAll === SelectAllStatus.None || !hasDeletePermission) {
|
|
104
115
|
return null;
|
|
105
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","DeleteMany","props","collection","slug","labels","plural","permissions","config","routes","api","serverURL","toggleModal","count","getQueryParams","selectAll","toggleAll","i18n","t","deleting","setDeleting","router","stringifyParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","permission","modalSlug","addDefaultError","error","handleDelete","headers","language","then","res","json","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","DeleteMany","props","collection","slug","labels","plural","singular","permissions","config","routes","api","serverURL","toggleModal","count","getQueryParams","selectAll","toggleAll","i18n","t","deleting","setDeleting","router","stringifyParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","permission","modalSlug","addDefaultError","error","handleDelete","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","label","errors","message","description","map","join","replace","params","page","undefined","e","None","_jsxs","Fragment","_jsx","className","onClick","buttonStyle","id","size","type"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-documents'\n\nexport type Props = {\n collection: ClientCollectionConfig\n title?: string\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { collection: { slug, labels: { plural, singular } } = {} } = props\n\n const { permissions } = useAuth()\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { toggleModal } = useModal()\n const { count, getQueryParams, selectAll, toggleAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [deleting, setDeleting] = useState(false)\n const router = useRouter()\n const { stringifyParams } = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete?.permission\n\n const modalSlug = `delete-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n await requests\n .delete(`${serverURL}${api}/${slug}${getQueryParams()}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:deletedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n toggleAll()\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n replace: true,\n }),\n )\n clearRouteCache()\n return null\n }\n\n if (json.errors) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n modalSlug,\n plural,\n router,\n selectAll,\n serverURL,\n singular,\n slug,\n stringifyParams,\n t,\n toggleAll,\n toggleModal,\n clearRouteCache,\n ])\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>{t('general:aboutToDeleteCount', { count, label: getTranslation(plural, i18n) })}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete} size=\"large\">\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\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/PublishMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAKrD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,sBAAsB,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAKrD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,sBAAsB,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAkJlD,CAAA"}
|
|
@@ -25,7 +25,8 @@ export const PublishMany = props => {
|
|
|
25
25
|
collection: {
|
|
26
26
|
slug,
|
|
27
27
|
labels: {
|
|
28
|
-
plural
|
|
28
|
+
plural,
|
|
29
|
+
singular
|
|
29
30
|
},
|
|
30
31
|
versions
|
|
31
32
|
} = {}
|
|
@@ -81,8 +82,18 @@ export const PublishMany = props => {
|
|
|
81
82
|
try {
|
|
82
83
|
const json = await res.json();
|
|
83
84
|
toggleModal(modalSlug);
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
const deletedDocs = json?.docs.length || 0;
|
|
86
|
+
const successLabel = deletedDocs > 1 ? plural : singular;
|
|
87
|
+
if (res.status < 400 || deletedDocs > 0) {
|
|
88
|
+
toast.success(t('general:updatedCountSuccessfully', {
|
|
89
|
+
count: deletedDocs,
|
|
90
|
+
label: getTranslation(successLabel, i18n)
|
|
91
|
+
}));
|
|
92
|
+
if (json?.errors.length > 0) {
|
|
93
|
+
toast.error(json.message, {
|
|
94
|
+
description: json.errors.map(error => error.message).join('\n')
|
|
95
|
+
});
|
|
96
|
+
}
|
|
86
97
|
router.replace(stringifyParams({
|
|
87
98
|
params: {
|
|
88
99
|
page: selectAll ? '1' : undefined
|
|
@@ -93,7 +104,7 @@ export const PublishMany = props => {
|
|
|
93
104
|
return null;
|
|
94
105
|
}
|
|
95
106
|
if (json.errors) {
|
|
96
|
-
json.errors.forEach(
|
|
107
|
+
json.errors.forEach(error_0 => toast.error(error_0.message));
|
|
97
108
|
} else {
|
|
98
109
|
addDefaultError();
|
|
99
110
|
}
|
|
@@ -102,7 +113,7 @@ export const PublishMany = props => {
|
|
|
102
113
|
return addDefaultError();
|
|
103
114
|
}
|
|
104
115
|
});
|
|
105
|
-
}, [addDefaultError, api, getQueryParams, i18n
|
|
116
|
+
}, [addDefaultError, api, getQueryParams, i18n, modalSlug, plural, selectAll, serverURL, singular, slug, t, toggleModal, router, stringifyParams, clearRouteCache]);
|
|
106
117
|
if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {
|
|
107
118
|
return null;
|
|
108
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","PublishMany","props","clearRouteCache","collection","slug","labels","plural","versions","config","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","router","stringifyParams","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handlePublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","status","success","replace","params","page","undefined","errors","forEach","message","e","drafts","None","_jsxs","Fragment","_jsx","className","onClick","label","buttonStyle","id","size","type"],"sources":["../../../src/elements/PublishMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'publish-many'\n\nexport type PublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const PublishMany: React.FC<PublishManyProps> = (props) => {\n const { clearRouteCache } = useRouteCache()\n\n const { collection: { slug, labels: { plural }, versions } = {} } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const router = useRouter()\n const { stringifyParams } = useSearchParams()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `publish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handlePublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(\n `${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'published' } })}&draft=true`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n if (res.status < 400) {\n toast.success(t('general:updatedSuccessfully'))\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n.language,\n modalSlug,\n selectAll,\n serverURL,\n slug,\n t,\n toggleModal,\n router,\n stringifyParams,\n clearRouteCache,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:publish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmPublish')}</h1>\n <p>{t('version:aboutToPublishSelection', { label: getTranslation(plural, i18n) })}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-publish\"\n onClick={submitted ? undefined : handlePublish}\n size=\"large\"\n >\n {submitted ? t('version:publishing') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","PublishMany","props","clearRouteCache","collection","slug","labels","plural","singular","versions","config","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","router","stringifyParams","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handlePublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","params","page","undefined","forEach","e","drafts","None","_jsxs","Fragment","_jsx","className","onClick","buttonStyle","id","size","type"],"sources":["../../../src/elements/PublishMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'publish-many'\n\nexport type PublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const PublishMany: React.FC<PublishManyProps> = (props) => {\n const { clearRouteCache } = useRouteCache()\n\n const { collection: { slug, labels: { plural, singular }, versions } = {} } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const router = useRouter()\n const { stringifyParams } = useSearchParams()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `publish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handlePublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(\n `${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'published' } })}&draft=true`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n modalSlug,\n plural,\n selectAll,\n serverURL,\n singular,\n slug,\n t,\n toggleModal,\n router,\n stringifyParams,\n clearRouteCache,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:publish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmPublish')}</h1>\n <p>{t('version:aboutToPublishSelection', { label: getTranslation(plural, i18n) })}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-publish\"\n onClick={submitted ? undefined : handlePublish}\n size=\"large\"\n >\n {submitted ? t('version:publishing') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildColumnState.js","names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","buildColumnState","args","beforeRows","columnPreferences","columns","enableRowSelections","fields","sortColumnProps","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","_jsx","unstyled","fieldAffectsDataSubFields","type","Heading","disable","_isPresentational","label","cellProps","Cell","Component","RenderedComponent"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n } = args\n\n let sortedFieldMap = flattenFieldMap(fields)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n if (aIndex === -1) {\n return 1\n }\n if (bIndex === -1) {\n return -1\n }\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => 'name' in field && column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n field &&\n 'admin' in field &&\n 'components' in field.admin &&\n 'Label' in field.admin.components &&\n field.admin.components.Label !== undefined // let it return `null`\n ? field.admin.components.Label\n : undefined\n\n const Label = <FieldLabel field={field} Label={CustomLabelToRender} unstyled />\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || field?._isPresentational || undefined}\n Label={Label}\n label={'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n if (field) {\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n cellProps: {\n field: {\n ...(field || ({} as ClientField)),\n admin: {\n ...(field.admin || {}),\n components: {\n ...(field.admin?.components || {}),\n Cell: field.admin?.components?.Cell || {\n type: 'client',\n Component: DefaultCell,\n RenderedComponent: null,\n },\n Label,\n },\n },\n } as ClientField,\n },\n Heading,\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n accessor: '_select',\n active: true,\n cellProps: {\n field: {\n admin: {\n components: {\n Cell: {\n type: 'client',\n Component: null,\n RenderedComponent: <SelectRow />,\n },\n Label: null,\n },\n },\n } as ClientField,\n },\n Heading: <SelectAll />,\n })\n }\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"buildColumnState.js","names":["React","FieldLabel","flattenFieldMap","SelectAll","SelectRow","SortColumn","DefaultCell","buildColumnState","args","beforeRows","columnPreferences","columns","enableRowSelections","fields","sortColumnProps","useAsTitle","sortedFieldMap","idFieldIndex","findIndex","field","name","idField","splice","unshift","useAsTitleFieldIndex","useAsTitleField","sortTo","sort","a","b","aIndex","column","accessor","bIndex","activeColumnsIndices","sorted","reduce","acc","index","columnPreference","find","preference","active","Array","isArray","length","includes","push","CustomLabelToRender","admin","components","Label","undefined","_jsx","hideLocale","unstyled","fieldAffectsDataSubFields","type","Heading","disable","_isPresentational","label","cellProps","Cell","Component","RenderedComponent"],"sources":["../../../src/elements/TableColumns/buildColumnState.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport React from 'react'\n\nimport type { ColumnPreferences } from '../../providers/ListInfo/index.js'\nimport type { SortColumnProps } from '../SortColumn/index.js'\nimport type { Column } from '../Table/index.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\nimport { SelectAll } from '../SelectAll/index.js'\nimport { SelectRow } from '../SelectRow/index.js'\nimport { SortColumn } from '../SortColumn/index.js'\nimport { DefaultCell } from '../Table/DefaultCell/index.js'\n\ntype Args = {\n beforeRows?: Column[]\n columnPreferences: ColumnPreferences\n columns?: ColumnPreferences\n enableRowSelections: boolean\n enableRowTypes?: boolean\n fields: ClientField[]\n sortColumnProps?: Partial<SortColumnProps>\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const buildColumnState = (args: Args): Column[] => {\n const {\n beforeRows,\n columnPreferences,\n columns,\n enableRowSelections,\n fields,\n sortColumnProps,\n useAsTitle,\n } = args\n\n let sortedFieldMap = flattenFieldMap(fields)\n\n // place the `ID` field first, if it exists\n // do the same for the `useAsTitle` field with precedence over the `ID` field\n // then sort the rest of the fields based on the `defaultColumns` or `columnPreferences`\n const idFieldIndex = sortedFieldMap.findIndex((field) => 'name' in field && field.name === 'id')\n\n if (idFieldIndex > -1) {\n const idField = sortedFieldMap.splice(idFieldIndex, 1)[0]\n sortedFieldMap.unshift(idField)\n }\n\n const useAsTitleFieldIndex = useAsTitle\n ? sortedFieldMap.findIndex((field) => 'name' in field && field.name === useAsTitle)\n : -1\n\n if (useAsTitleFieldIndex > -1) {\n const useAsTitleField = sortedFieldMap.splice(useAsTitleFieldIndex, 1)[0]\n sortedFieldMap.unshift(useAsTitleField)\n }\n\n const sortTo = columnPreferences || columns\n\n if (sortTo) {\n // sort the fields to the order of `defaultColumns` or `columnPreferences`\n sortedFieldMap = sortedFieldMap.sort((a, b) => {\n const aIndex = sortTo.findIndex((column) => 'name' in a && column.accessor === a.name)\n const bIndex = sortTo.findIndex((column) => 'name' in b && column.accessor === b.name)\n if (aIndex === -1 && bIndex === -1) {\n return 0\n }\n if (aIndex === -1) {\n return 1\n }\n if (bIndex === -1) {\n return -1\n }\n return aIndex - bIndex\n })\n }\n\n const activeColumnsIndices = []\n\n const sorted: Column[] = sortedFieldMap.reduce((acc, field, index) => {\n const columnPreference = columnPreferences?.find(\n (preference) => 'name' in field && preference.accessor === field.name,\n )\n\n let active = false\n\n if (columnPreference) {\n active = columnPreference.active\n } else if (columns && Array.isArray(columns) && columns.length > 0) {\n active = columns.find((column) => 'name' in field && column.accessor === field.name)?.active\n } else if (activeColumnsIndices.length < 4) {\n active = true\n }\n\n if (active && !activeColumnsIndices.includes(index)) {\n activeColumnsIndices.push(index)\n }\n\n const CustomLabelToRender =\n field &&\n 'admin' in field &&\n 'components' in field.admin &&\n 'Label' in field.admin.components &&\n field.admin.components.Label !== undefined // let it return `null`\n ? field.admin.components.Label\n : undefined\n\n const Label = <FieldLabel field={field} hideLocale Label={CustomLabelToRender} unstyled />\n\n const fieldAffectsDataSubFields =\n field &&\n field.type &&\n (field.type === 'array' || field.type === 'group' || field.type === 'blocks')\n\n const Heading = (\n <SortColumn\n disable={fieldAffectsDataSubFields || field?._isPresentational || undefined}\n Label={Label}\n label={'label' in field ? (field.label as StaticLabel) : undefined}\n name={'name' in field ? field.name : undefined}\n {...(sortColumnProps || {})}\n />\n )\n\n if (field) {\n const column: Column = {\n accessor: 'name' in field ? field.name : undefined,\n active,\n cellProps: {\n field: {\n ...(field || ({} as ClientField)),\n admin: {\n ...(field.admin || {}),\n components: {\n ...(field.admin?.components || {}),\n Cell: field.admin?.components?.Cell || {\n type: 'client',\n Component: DefaultCell,\n RenderedComponent: null,\n },\n Label,\n },\n },\n } as ClientField,\n },\n Heading,\n }\n\n acc.push(column)\n }\n\n return acc\n }, [])\n\n if (enableRowSelections) {\n sorted.unshift({\n accessor: '_select',\n active: true,\n cellProps: {\n field: {\n admin: {\n components: {\n Cell: {\n type: 'client',\n Component: null,\n RenderedComponent: <SelectRow />,\n },\n Label: null,\n },\n },\n } as ClientField,\n },\n Heading: <SelectAll />,\n })\n }\n\n if (beforeRows) {\n sorted.unshift(...beforeRows)\n }\n\n return sorted\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAIrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,sBAAsB,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAIrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,sBAAsB,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8ItD,CAAA"}
|
|
@@ -22,7 +22,8 @@ export const UnpublishMany = props => {
|
|
|
22
22
|
collection: {
|
|
23
23
|
slug,
|
|
24
24
|
labels: {
|
|
25
|
-
plural
|
|
25
|
+
plural,
|
|
26
|
+
singular
|
|
26
27
|
},
|
|
27
28
|
versions
|
|
28
29
|
} = {}
|
|
@@ -81,8 +82,18 @@ export const UnpublishMany = props => {
|
|
|
81
82
|
try {
|
|
82
83
|
const json = await res.json();
|
|
83
84
|
toggleModal(modalSlug);
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
const deletedDocs = json?.docs.length || 0;
|
|
86
|
+
const successLabel = deletedDocs > 1 ? plural : singular;
|
|
87
|
+
if (res.status < 400 || deletedDocs > 0) {
|
|
88
|
+
toast.success(t('general:updatedCountSuccessfully', {
|
|
89
|
+
count: deletedDocs,
|
|
90
|
+
label: getTranslation(successLabel, i18n)
|
|
91
|
+
}));
|
|
92
|
+
if (json?.errors.length > 0) {
|
|
93
|
+
toast.error(json.message, {
|
|
94
|
+
description: json.errors.map(error => error.message).join('\n')
|
|
95
|
+
});
|
|
96
|
+
}
|
|
86
97
|
router.replace(stringifyParams({
|
|
87
98
|
params: {
|
|
88
99
|
page: selectAll ? '1' : undefined
|
|
@@ -93,7 +104,7 @@ export const UnpublishMany = props => {
|
|
|
93
104
|
return null;
|
|
94
105
|
}
|
|
95
106
|
if (json.errors) {
|
|
96
|
-
json.errors.forEach(
|
|
107
|
+
json.errors.forEach(error_0 => toast.error(error_0.message));
|
|
97
108
|
} else {
|
|
98
109
|
addDefaultError();
|
|
99
110
|
}
|
|
@@ -102,7 +113,7 @@ export const UnpublishMany = props => {
|
|
|
102
113
|
return addDefaultError();
|
|
103
114
|
}
|
|
104
115
|
});
|
|
105
|
-
}, [addDefaultError, api, getQueryParams, i18n
|
|
116
|
+
}, [addDefaultError, api, getQueryParams, i18n, modalSlug, plural, selectAll, serverURL, singular, slug, t, toggleModal, router, clearRouteCache, stringifyParams]);
|
|
106
117
|
if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {
|
|
107
118
|
return null;
|
|
108
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","toast","UnpublishMany","props","collection","slug","labels","plural","versions","config","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","stringifyParams","router","clearRouteCache","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handleUnpublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","status","success","replace","params","page","undefined","errors","forEach","message","e","drafts","None","_jsxs","Fragment","_jsx","className","onClick","label","buttonStyle","id","size","type"],"sources":["../../../src/elements/UnpublishMany/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'unpublish-many'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { toast } from 'sonner'\n\nexport type UnpublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const UnpublishMany: React.FC<UnpublishManyProps> = (props) => {\n const { collection: { slug, labels: { plural }, versions } = {} } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `unpublish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleUnpublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(`${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'draft' } })}`, {\n body: JSON.stringify({\n _status: 'draft',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n if (res.status < 400) {\n toast.success(t('general:updatedSuccessfully'))\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n.language,\n modalSlug,\n selectAll,\n serverURL,\n slug,\n t,\n toggleModal,\n router,\n clearRouteCache,\n stringifyParams,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:unpublish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-unpublish\"\n onClick={submitted ? undefined : handleUnpublish}\n size=\"large\"\n >\n {submitted ? t('version:unpublishing') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","Button","Pill","baseClass","toast","UnpublishMany","props","collection","slug","labels","plural","singular","versions","config","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","stringifyParams","router","clearRouteCache","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handleUnpublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","params","page","undefined","forEach","e","drafts","None","_jsxs","Fragment","_jsx","className","onClick","buttonStyle","id","size","type"],"sources":["../../../src/elements/UnpublishMany/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'unpublish-many'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { toast } from 'sonner'\n\nexport type UnpublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const UnpublishMany: React.FC<UnpublishManyProps> = (props) => {\n const { collection: { slug, labels: { plural, singular }, versions } = {} } = props\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `unpublish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleUnpublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(`${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'draft' } })}`, {\n body: JSON.stringify({\n _status: 'draft',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (res.status < 400 || deletedDocs > 0) {\n toast.success(\n t('general:updatedCountSuccessfully', {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n clearRouteCache() // Use clearRouteCache instead of router.refresh, as we only need to clear the cache if the user has route caching enabled - clearRouteCache checks for this\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n,\n modalSlug,\n plural,\n selectAll,\n serverURL,\n singular,\n slug,\n t,\n toggleModal,\n router,\n clearRouteCache,\n stringifyParams,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:unpublish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublishSelection', { label: getTranslation(plural, i18n) })}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-unpublish\"\n onClick={submitted ? undefined : handleUnpublish}\n size=\"large\"\n >\n {submitted ? t('version:unpublishing') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,4 +23,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
23
23
|
`},ye=ve(ut)(we),lt={config:at},Oe=lt;var st=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return function(o){return r.reduceRight(function(i,a){return a(i)},o)}},je=st;function Me(e,t){return Object.keys(t).forEach(function(r){t[r]instanceof Object&&e[r]&&Object.assign(t[r],Me(e[r],t[r]))}),ee(ee({},e),t)}var Se=Me;var ft={type:"cancelation",msg:"operation is manually canceled"};function dt(e){var t=!1,r=new Promise(function(n,o){e.then(function(i){return t?o(ft):n(i)}),e.catch(o)});return r.cancel=function(){return t=!0},r}var K=dt;var pt=ge.create({config:he,isInitialized:!1,resolve:null,reject:null,monaco:null}),Pe=de(pt,2),_=Pe[0],G=Pe[1];function mt(e){var t=Oe.config(e),r=t.monaco,n=fe(t,["monaco"]);G(function(o){return{config:Se(o.config,n),monaco:r}})}function gt(){var e=_(function(t){var r=t.monaco,n=t.isInitialized,o=t.resolve;return{monaco:r,isInitialized:n,resolve:o}});if(!e.isInitialized){if(G({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),K(te);if(window.monaco&&window.monaco.editor)return Ee(window.monaco),e.resolve(window.monaco),K(te);je(ht,bt)(yt)}return K(te)}function ht(e){return document.body.appendChild(e)}function vt(e){var t=document.createElement("script");return e&&(t.src=e),t}function bt(e){var t=_(function(n){var o=n.config,i=n.reject;return{config:o,reject:i}}),r=vt("".concat(t.config.paths.vs,"/loader.js"));return r.onload=function(){return e()},r.onerror=t.reject,r}function yt(){var e=_(function(r){var n=r.config,o=r.resolve,i=r.reject;return{config:n,resolve:o,reject:i}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(r){Ee(r),e.resolve(r)},function(r){e.reject(r)})}function Ee(e){_().monaco||G({monaco:e})}function wt(){return _(function(e){var t=e.monaco;return t})}var te=new Promise(function(e,t){return G({resolve:e,reject:t})}),Ot={config:mt,init:gt,__getMonacoInstance:wt},L=Ot;import{memo as jt}from"react";import Mt,{useState as Ie,useRef as R,useCallback as Ce,useEffect as Te}from"react";import{memo as St}from"react";import re from"react";import Et from"react";import{useEffect as Dt}from"react";import{useEffect as Wt,useRef as Nt}from"react";import{useState as Hr}from"react";import{memo as qt}from"react";import Bt,{useState as xe,useEffect as Y,useRef as M,useCallback as Ft}from"react";import{useEffect as kt,useRef as Kt}from"react";var Pt={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},ne=Pt,It={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},Ct=It;function Tt({children:e}){return Et.createElement("div",{style:Ct.container},e)}var xt=Tt,Lt=xt;function At({width:e,height:t,isEditorReady:r,loading:n,_ref:o,className:i,wrapperProps:a}){return re.createElement("section",{style:{...ne.wrapper,width:e,height:t},...a},!r&&re.createElement(Lt,null,n),re.createElement("div",{ref:o,style:{...ne.fullWidth,...!r&&ne.hide},className:i}))}var Rt=At,Le=St(Rt);function Vt(e){Dt(e,[])}var Ae=Vt;function zt(e,t,r=!0){let n=Nt(!0);Wt(n.current||!r?()=>{n.current=!1}:e,t)}var w=zt;function $(){}function D(e,t,r,n){return Ht(e,n)||Ut(e,t,r,n)}function Ht(e,t){return e.editor.getModel(Re(e,t))}function Ut(e,t,r,n){return e.editor.createModel(t,r,n?Re(e,n):void 0)}function Re(e,t){return e.Uri.parse(t)}function _t({original:e,modified:t,language:r,originalLanguage:n,modifiedLanguage:o,originalModelPath:i,modifiedModelPath:a,keepCurrentOriginalModel:l=!1,keepCurrentModifiedModel:s=!1,theme:d="light",loading:O="Loading...",options:h={},height:T="100%",width:S="100%",className:P,wrapperProps:E={},beforeMount:j=$,onMount:x=$}){let[y,V]=Ie(!1),[W,p]=Ie(!0),m=R(null),f=R(null),N=R(null),v=R(x),c=R(j),A=R(!1);Ae(()=>{let u=L.init();return u.then(g=>(f.current=g)&&p(!1)).catch(g=>g?.type!=="cancelation"&&console.error("Monaco initialization: error:",g)),()=>m.current?z():u.cancel()}),w(()=>{if(m.current&&f.current){let u=m.current.getOriginalEditor(),g=D(f.current,e||"",n||r||"text",i||"");g!==u.getModel()&&u.setModel(g)}},[i],y),w(()=>{if(m.current&&f.current){let u=m.current.getModifiedEditor(),g=D(f.current,t||"",o||r||"text",a||"");g!==u.getModel()&&u.setModel(g)}},[a],y),w(()=>{let u=m.current.getModifiedEditor();u.getOption(f.current.editor.EditorOption.readOnly)?u.setValue(t||""):t!==u.getValue()&&(u.executeEdits("",[{range:u.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),u.pushUndoStop())},[t],y),w(()=>{m.current?.getModel()?.original.setValue(e||"")},[e],y),w(()=>{let{original:u,modified:g}=m.current.getModel();f.current.editor.setModelLanguage(u,n||r||"text"),f.current.editor.setModelLanguage(g,o||r||"text")},[r,n,o],y),w(()=>{f.current?.editor.setTheme(d)},[d],y),w(()=>{m.current?.updateOptions(h)},[h],y);let q=Ce(()=>{if(!f.current)return;c.current(f.current);let u=D(f.current,e||"",n||r||"text",i||""),g=D(f.current,t||"",o||r||"text",a||"");m.current?.setModel({original:u,modified:g})},[r,t,o,e,n,i,a]),B=Ce(()=>{!A.current&&N.current&&(m.current=f.current.editor.createDiffEditor(N.current,{automaticLayout:!0,...h}),q(),f.current?.editor.setTheme(d),V(!0),A.current=!0)},[h,d,q]);Te(()=>{y&&v.current(m.current,f.current)},[y]),Te(()=>{!W&&!y&&B()},[W,y,B]);function z(){let u=m.current?.getModel();l||u?.original?.dispose(),s||u?.modified?.dispose(),m.current?.dispose()}return Mt.createElement(Le,{width:S,height:T,isEditorReady:y,loading:O,_ref:N,className:P,wrapperProps:E})}var $t=_t,Nr=jt($t);function Gt(e){let t=Kt();return kt(()=>{t.current=e},[e]),t.current}var Yt=Gt,J=new Map;function Jt({defaultValue:e,defaultLanguage:t,defaultPath:r,value:n,language:o,path:i,theme:a="light",line:l,loading:s="Loading...",options:d={},overrideServices:O={},saveViewState:h=!0,keepCurrentModel:T=!1,width:S="100%",height:P="100%",className:E,wrapperProps:j={},beforeMount:x=$,onMount:y=$,onChange:V,onValidate:W=$}){let[p,m]=xe(!1),[f,N]=xe(!0),v=M(null),c=M(null),A=M(null),q=M(y),B=M(x),z=M(),u=M(n),g=Yt(i),ie=M(!1),Q=M(!1);Ae(()=>{let b=L.init();return b.then(I=>(v.current=I)&&N(!1)).catch(I=>I?.type!=="cancelation"&&console.error("Monaco initialization: error:",I)),()=>c.current?Ve():b.cancel()}),w(()=>{let b=D(v.current,e||n||"",t||o||"",i||r||"");b!==c.current?.getModel()&&(h&&J.set(g,c.current?.saveViewState()),c.current?.setModel(b),h&&c.current?.restoreViewState(J.get(i)))},[i],p),w(()=>{c.current?.updateOptions(d)},[d],p),w(()=>{!c.current||n===void 0||(c.current.getOption(v.current.editor.EditorOption.readOnly)?c.current.setValue(n):n!==c.current.getValue()&&(Q.current=!0,c.current.executeEdits("",[{range:c.current.getModel().getFullModelRange(),text:n,forceMoveMarkers:!0}]),c.current.pushUndoStop(),Q.current=!1))},[n],p),w(()=>{let b=c.current?.getModel();b&&o&&v.current?.editor.setModelLanguage(b,o)},[o],p),w(()=>{l!==void 0&&c.current?.revealLine(l)},[l],p),w(()=>{v.current?.editor.setTheme(a)},[a],p);let ae=Ft(()=>{if(!(!A.current||!v.current)&&!ie.current){B.current(v.current);let b=i||r,I=D(v.current,n||e||"",t||o||"",b||"");c.current=v.current?.editor.create(A.current,{model:I,automaticLayout:!0,...d},O),h&&c.current.restoreViewState(J.get(b)),v.current.editor.setTheme(a),l!==void 0&&c.current.revealLine(l),m(!0),ie.current=!0}},[e,t,r,n,o,i,d,O,h,a,l]);Y(()=>{p&&q.current(c.current,v.current)},[p]),Y(()=>{!f&&!p&&ae()},[f,p,ae]),u.current=n,Y(()=>{p&&V&&(z.current?.dispose(),z.current=c.current?.onDidChangeModelContent(b=>{Q.current||V(c.current.getValue(),b)}))},[p,V]),Y(()=>{if(p){let b=v.current.editor.onDidChangeMarkers(I=>{let X=c.current.getModel()?.uri;if(X&&I.find(Z=>Z.path===X.path)){let Z=v.current.editor.getModelMarkers({resource:X});W?.(Z)}});return()=>{b?.dispose()}}return()=>{}},[p,W]);function Ve(){z.current?.dispose(),T?h&&J.set(i,c.current.saveViewState()):c.current.getModel()?.dispose(),c.current.dispose()}return Bt.createElement(Le,{width:S,height:P,isEditorReady:p,loading:s,_ref:A,className:E,wrapperProps:j})}var Qt=Jt,Xt=qt(Qt),oe=Xt;import{useState as er}from"react";var tr=oe.default||oe,rr="code-editor",nr=e=>{let t=Zt(20),r,n,o,i;t[0]!==e?({className:o,options:i,readOnly:n,...r}=e,t[0]=e,t[1]=r,t[2]=n,t[3]=o,t[4]=i):(r=t[1],n=t[2],o=t[3],i=t[4]);let[a,l]=er(20),{theme:s}=ue(),d=r?.defaultLanguage?`language--${r.defaultLanguage}`:"",O=n&&"read-only",h;t[5]!==o||t[6]!==d||t[7]!==O?(h=[rr,o,d,O].filter(Boolean),t[5]=o,t[6]=d,t[7]=O,t[8]=h):h=t[8];let T=h.join(" "),S;if(t[9]!==a||t[10]!==n||t[11]!==i||t[12]!==s||t[13]!==r||t[14]!==T){let P;t[16]!==r.onChange?(P=(j,x)=>{r.onChange?.(j,x),l(j.split(`
|
|
24
24
|
`).length*18+2)},t[16]=r.onChange,t[17]=P):P=t[17];let E;t[18]!==r.onMount?(E=(j,x)=>{r.onMount?.(j,x),l(j.getValue().split(`
|
|
25
25
|
`).length*18+2)},t[18]=r.onMount,t[19]=E):E=t[19],S=De(tr,{className:T,loading:De(ce,{height:a}),options:{detectIndentation:!0,hideCursorInOverviewRuler:!0,minimap:{enabled:!1},overviewRulerBorder:!1,readOnly:!!n,scrollbar:{alwaysConsumeMouseWheel:!1},scrollBeyondLastLine:!1,tabSize:2,wordWrap:"on",...i},theme:s==="dark"?"vs-dark":"vs",...r,height:a,onChange:P,onMount:E}),t[9]=a,t[10]=n,t[11]=i,t[12]=s,t[13]=r,t[14]=T,t[15]=S}else S=t[15];return S},Zr=nr;export{Zr as default};
|
|
26
|
-
//# sourceMappingURL=CodeEditor-
|
|
26
|
+
//# sourceMappingURL=CodeEditor-VPUKDCXS.js.map
|