@payloadcms/ui 3.64.0-internal.deef021 → 3.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/Autosave/index.js +2 -2
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +1 -0
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +1 -0
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +1 -0
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/RestoreMany/index.d.ts.map +1 -1
- package/dist/elements/RestoreMany/index.js +1 -0
- package/dist/elements/RestoreMany/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +1 -0
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +54 -25
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +7 -3
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/providers/Auth/index.d.ts +34 -0
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +14 -19
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +19 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/utilities/normalizeRelationshipValue.d.ts +29 -0
- package/dist/utilities/normalizeRelationshipValue.d.ts.map +1 -0
- package/dist/utilities/normalizeRelationshipValue.js +59 -0
- package/dist/utilities/normalizeRelationshipValue.js.map +1 -0
- package/dist/utilities/normalizeRelationshipValue.spec.js +373 -0
- package/dist/utilities/normalizeRelationshipValue.spec.js.map +1 -0
- package/dist/views/Edit/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Auth/index.js +2 -7
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -105,12 +105,12 @@ export const Autosave = ({
|
|
|
105
105
|
let entitySlug;
|
|
106
106
|
if (collection && id) {
|
|
107
107
|
entitySlug = collection.slug;
|
|
108
|
-
url = `${serverURL}${api}/${entitySlug}/${id}?depth=0&draft=true&autosave=true&locale=${localeRef.current}`;
|
|
108
|
+
url = `${serverURL}${api}/${entitySlug}/${id}?depth=0&draft=true&autosave=true&locale=${localeRef.current}&fallback-locale=null`;
|
|
109
109
|
method = 'PATCH';
|
|
110
110
|
}
|
|
111
111
|
if (globalDoc) {
|
|
112
112
|
entitySlug = globalDoc.slug;
|
|
113
|
-
url = `${serverURL}${api}/globals/${entitySlug}?depth=0&draft=true&autosave=true&locale=${localeRef.current}`;
|
|
113
|
+
url = `${serverURL}${api}/globals/${entitySlug}?depth=0&draft=true&autosave=true&locale=${localeRef.current}&fallback-locale=null`;
|
|
114
114
|
method = 'POST';
|
|
115
115
|
}
|
|
116
116
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["dequal","reduceFieldsToValues","versionDefaults","React","useDeferredValue","useEffect","useRef","useState","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useEffectEvent","useQueue","useConfig","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","LeaveWithoutSaving","baseClass","minimumAnimationTime","Autosave","id","collection","global","globalDoc","config","routes","api","serverURL","docConfig","lastUpdateTime","mostRecentVersionIsAutosaved","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","isValid","setBackgroundProcessing","submit","formState","modified","submitted","code","locale","i18n","t","versionsConfig","versions","interval","autosaveInterval","drafts","autosave","validateOnDraft","Boolean","validate","_saving","setSaving","saving","debouncedFormState","formStateRef","modifiedRef","localeRef","current","queueTask","autosaveTimeoutRef","handleAutosave","undefined","startTimestamp","endTimestamp","hideIndicator","setTimeout","stopAutoSaveIndicator","Date","getTime","url","method","entitySlug","slug","valid","skipSubmission","result","acceptValues","overrideLocalChanges","action","context","getDocPermissions","incrementVersionCount","disableFormWhileProcessing","disableSuccessStatus","overrides","_status","skipValidation","res","ok","prev","newDate","afterProcess","beforeProcess","didMount","previousDebouncedData","updatedAt","_","formData","__","prevFormData","clearTimeout","_jsxs","className","_jsx","Fragment","distance","date"],"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { reduceFieldsToValues, versionDefaults } from 'payload/shared'\nimport React, { useDeferredValue, useEffect, useRef, useState } from 'react'\n\nimport type { OnSaveContext } from '../../views/Edit/index.js'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueue } from '../../hooks/useQueue.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 { formatTimeToNow } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport { LeaveWithoutSaving } from '../LeaveWithoutSaving/index.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n// The minimum time the saving state should be shown\nconst minimumAnimationTime = 1000\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({ id, collection, global: globalDoc }) => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const {\n docConfig,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n } = useDocumentInfo()\n\n const { isValid, setBackgroundProcessing, submit } = useForm()\n\n const [formState] = useAllFormFields()\n const modified = useFormModified()\n const submitted = useFormSubmitted()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const versionsConfig = docConfig?.versions\n let interval = versionDefaults.autosaveInterval\n\n if (versionsConfig.drafts && versionsConfig.drafts.autosave) {\n interval = versionsConfig.drafts.autosave.interval\n }\n\n const validateOnDraft = Boolean(\n docConfig?.versions?.drafts && docConfig?.versions?.drafts.validate,\n )\n\n const [_saving, setSaving] = useState(false)\n\n const saving = useDeferredValue(_saving)\n\n const debouncedFormState = useDebounce(formState, interval)\n\n const formStateRef = useRef(formState)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n formStateRef.current = formState\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n const { queueTask } = useQueue()\n\n const autosaveTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const handleAutosave = useEffectEvent(() => {\n autosaveTimeoutRef.current = undefined\n // We need to log the time in order to figure out if we need to trigger the state off later\n let startTimestamp = undefined\n let endTimestamp = undefined\n\n const hideIndicator = () => {\n // If request was faster than minimum animation time, animate the difference\n if (endTimestamp - startTimestamp < minimumAnimationTime) {\n autosaveTimeoutRef.current = setTimeout(\n () => {\n setSaving(false)\n },\n minimumAnimationTime - (endTimestamp - startTimestamp),\n )\n } else {\n stopAutoSaveIndicator()\n }\n }\n\n queueTask(\n async () => {\n if (modified) {\n startTimestamp = new Date().getTime()\n\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?depth=0&draft=true&autosave=true&locale=${localeRef.current}`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?depth=0&draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n const { valid } = reduceFieldsToValuesWithValidation(formStateRef.current, true)\n\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission && modifiedRef.current && url) {\n const result = await submit<any, OnSaveContext>({\n acceptValues: {\n overrideLocalChanges: false,\n },\n action: url,\n context: {\n getDocPermissions: false,\n incrementVersionCount: !mostRecentVersionIsAutosaved,\n },\n disableFormWhileProcessing: false,\n disableSuccessStatus: true,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: versionsConfig?.drafts && !versionsConfig?.drafts?.validate,\n })\n\n if (result && result?.res?.ok && !mostRecentVersionIsAutosaved) {\n setMostRecentVersionIsAutosaved(true)\n setUnpublishedVersionCount((prev) => prev + 1)\n }\n\n const newDate = new Date()\n\n // We need to log the time in order to figure out if we need to trigger the state off later\n endTimestamp = newDate.getTime()\n\n hideIndicator()\n }\n }\n },\n {\n afterProcess: () => {\n setBackgroundProcessing(false)\n },\n beforeProcess: () => {\n setBackgroundProcessing(true)\n },\n },\n )\n })\n\n const didMount = useRef(false)\n const previousDebouncedData = useRef(reduceFieldsToValues(debouncedFormState))\n\n // When debounced fields change, autosave\n useEffect(() => {\n /**\n * Ensure autosave doesn't run on mount\n */\n if (!didMount.current) {\n didMount.current = true\n return\n }\n\n /**\n * Ensure autosave only runs if the form data changes, not every time the entire form state changes\n * Remove `updatedAt` from comparison as it changes on every autosave interval.\n */\n const { updatedAt: _, ...formData } = reduceFieldsToValues(debouncedFormState)\n const { updatedAt: __, ...prevFormData } = previousDebouncedData.current\n\n if (dequal(formData, prevFormData)) {\n return\n }\n\n previousDebouncedData.current = formData\n\n handleAutosave()\n }, [debouncedFormState])\n\n /**\n * If component unmounts, clear the autosave timeout\n */\n useEffect(() => {\n return () => {\n stopAutoSaveIndicator()\n }\n }, [])\n\n const stopAutoSaveIndicator = useEffectEvent(() => {\n if (autosaveTimeoutRef.current) {\n clearTimeout(autosaveTimeoutRef.current)\n }\n\n setSaving(false)\n })\n\n return (\n <div className={baseClass}>\n {validateOnDraft && !isValid && <LeaveWithoutSaving />}\n {saving && t('general:saving')}\n {!saving && Boolean(lastUpdateTime) && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastUpdateTime, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["dequal","reduceFieldsToValues","versionDefaults","React","useDeferredValue","useEffect","useRef","useState","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useEffectEvent","useQueue","useConfig","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","LeaveWithoutSaving","baseClass","minimumAnimationTime","Autosave","id","collection","global","globalDoc","config","routes","api","serverURL","docConfig","lastUpdateTime","mostRecentVersionIsAutosaved","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","isValid","setBackgroundProcessing","submit","formState","modified","submitted","code","locale","i18n","t","versionsConfig","versions","interval","autosaveInterval","drafts","autosave","validateOnDraft","Boolean","validate","_saving","setSaving","saving","debouncedFormState","formStateRef","modifiedRef","localeRef","current","queueTask","autosaveTimeoutRef","handleAutosave","undefined","startTimestamp","endTimestamp","hideIndicator","setTimeout","stopAutoSaveIndicator","Date","getTime","url","method","entitySlug","slug","valid","skipSubmission","result","acceptValues","overrideLocalChanges","action","context","getDocPermissions","incrementVersionCount","disableFormWhileProcessing","disableSuccessStatus","overrides","_status","skipValidation","res","ok","prev","newDate","afterProcess","beforeProcess","didMount","previousDebouncedData","updatedAt","_","formData","__","prevFormData","clearTimeout","_jsxs","className","_jsx","Fragment","distance","date"],"sources":["../../../src/elements/Autosave/index.tsx"],"sourcesContent":["'use client'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport type { ClientCollectionConfig, ClientGlobalConfig } from 'payload'\n\nimport { dequal } from 'dequal/lite'\nimport { reduceFieldsToValues, versionDefaults } from 'payload/shared'\nimport React, { useDeferredValue, useEffect, useRef, useState } from 'react'\n\nimport type { OnSaveContext } from '../../views/Edit/index.js'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueue } from '../../hooks/useQueue.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 { formatTimeToNow } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport { LeaveWithoutSaving } from '../LeaveWithoutSaving/index.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\n// The minimum time the saving state should be shown\nconst minimumAnimationTime = 1000\n\nexport type Props = {\n collection?: ClientCollectionConfig\n global?: ClientGlobalConfig\n id?: number | string\n publishedDocUpdatedAt: string\n}\n\nexport const Autosave: React.FC<Props> = ({ id, collection, global: globalDoc }) => {\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const {\n docConfig,\n lastUpdateTime,\n mostRecentVersionIsAutosaved,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n } = useDocumentInfo()\n\n const { isValid, setBackgroundProcessing, submit } = useForm()\n\n const [formState] = useAllFormFields()\n const modified = useFormModified()\n const submitted = useFormSubmitted()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const versionsConfig = docConfig?.versions\n let interval = versionDefaults.autosaveInterval\n\n if (versionsConfig.drafts && versionsConfig.drafts.autosave) {\n interval = versionsConfig.drafts.autosave.interval\n }\n\n const validateOnDraft = Boolean(\n docConfig?.versions?.drafts && docConfig?.versions?.drafts.validate,\n )\n\n const [_saving, setSaving] = useState(false)\n\n const saving = useDeferredValue(_saving)\n\n const debouncedFormState = useDebounce(formState, interval)\n\n const formStateRef = useRef(formState)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n\n // Store fields in ref so the autosave func\n // can always retrieve the most to date copies\n // after the timeout has executed\n formStateRef.current = formState\n\n // Store modified in ref so the autosave func\n // can bail out if modified becomes false while\n // timing out during autosave\n modifiedRef.current = modified\n\n // Store locale in ref so the autosave func\n // can always retrieve the most to date locale\n localeRef.current = locale\n\n const { queueTask } = useQueue()\n\n const autosaveTimeoutRef = useRef<NodeJS.Timeout | null>(null)\n\n const handleAutosave = useEffectEvent(() => {\n autosaveTimeoutRef.current = undefined\n // We need to log the time in order to figure out if we need to trigger the state off later\n let startTimestamp = undefined\n let endTimestamp = undefined\n\n const hideIndicator = () => {\n // If request was faster than minimum animation time, animate the difference\n if (endTimestamp - startTimestamp < minimumAnimationTime) {\n autosaveTimeoutRef.current = setTimeout(\n () => {\n setSaving(false)\n },\n minimumAnimationTime - (endTimestamp - startTimestamp),\n )\n } else {\n stopAutoSaveIndicator()\n }\n }\n\n queueTask(\n async () => {\n if (modified) {\n startTimestamp = new Date().getTime()\n\n setSaving(true)\n\n let url: string\n let method: string\n let entitySlug: string\n\n if (collection && id) {\n entitySlug = collection.slug\n url = `${serverURL}${api}/${entitySlug}/${id}?depth=0&draft=true&autosave=true&locale=${localeRef.current}&fallback-locale=null`\n method = 'PATCH'\n }\n\n if (globalDoc) {\n entitySlug = globalDoc.slug\n url = `${serverURL}${api}/globals/${entitySlug}?depth=0&draft=true&autosave=true&locale=${localeRef.current}&fallback-locale=null`\n method = 'POST'\n }\n\n const { valid } = reduceFieldsToValuesWithValidation(formStateRef.current, true)\n\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission && modifiedRef.current && url) {\n const result = await submit<any, OnSaveContext>({\n acceptValues: {\n overrideLocalChanges: false,\n },\n action: url,\n context: {\n getDocPermissions: false,\n incrementVersionCount: !mostRecentVersionIsAutosaved,\n },\n disableFormWhileProcessing: false,\n disableSuccessStatus: true,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: versionsConfig?.drafts && !versionsConfig?.drafts?.validate,\n })\n\n if (result && result?.res?.ok && !mostRecentVersionIsAutosaved) {\n setMostRecentVersionIsAutosaved(true)\n setUnpublishedVersionCount((prev) => prev + 1)\n }\n\n const newDate = new Date()\n\n // We need to log the time in order to figure out if we need to trigger the state off later\n endTimestamp = newDate.getTime()\n\n hideIndicator()\n }\n }\n },\n {\n afterProcess: () => {\n setBackgroundProcessing(false)\n },\n beforeProcess: () => {\n setBackgroundProcessing(true)\n },\n },\n )\n })\n\n const didMount = useRef(false)\n const previousDebouncedData = useRef(reduceFieldsToValues(debouncedFormState))\n\n // When debounced fields change, autosave\n useEffect(() => {\n /**\n * Ensure autosave doesn't run on mount\n */\n if (!didMount.current) {\n didMount.current = true\n return\n }\n\n /**\n * Ensure autosave only runs if the form data changes, not every time the entire form state changes\n * Remove `updatedAt` from comparison as it changes on every autosave interval.\n */\n const { updatedAt: _, ...formData } = reduceFieldsToValues(debouncedFormState)\n const { updatedAt: __, ...prevFormData } = previousDebouncedData.current\n\n if (dequal(formData, prevFormData)) {\n return\n }\n\n previousDebouncedData.current = formData\n\n handleAutosave()\n }, [debouncedFormState])\n\n /**\n * If component unmounts, clear the autosave timeout\n */\n useEffect(() => {\n return () => {\n stopAutoSaveIndicator()\n }\n }, [])\n\n const stopAutoSaveIndicator = useEffectEvent(() => {\n if (autosaveTimeoutRef.current) {\n clearTimeout(autosaveTimeoutRef.current)\n }\n\n setSaving(false)\n })\n\n return (\n <div className={baseClass}>\n {validateOnDraft && !isValid && <LeaveWithoutSaving />}\n {saving && t('general:saving')}\n {!saving && Boolean(lastUpdateTime) && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastUpdateTime, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkEtC,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,OAAO,EAAE,CAAA;QACjB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;QACxB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,UAAU,EAAE;QACV,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,GAAG,CAAC,EAAE,OAAO,CAAA;YACb,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;YACzB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,WAAW,EACX,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAOvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkEtC,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,OAAO,EAAE,CAAA;QACjB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;QACxB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AACD,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,UAAU,EAAE;QACV,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,GAAG,CAAC,EAAE,OAAO,CAAA;YACb,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;YACzB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,WAAW,EACX,WAAW,EACX,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE,kBAAkB,qBAuQpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","props","$","viewType","collection","t0","modalPrefix","slug","trash","undefined","permissions","count","selectAll","selectedIDs","toggleAll","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","selectingAll","AllAvailable","ids","None","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","t1","replace","stringify","page","addQueryPrefix","_jsx","Fragment","children","DeleteMany_v4","afterDelete","search","selections","all","totalCount","length","t","config","routes","api","serverURL","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","result","relationTo","entries","collectionConfig","find","whereConstraint","id","not_equals","in","url","limit","deleteManyResponse","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","wasTrashed","successKey","success","label","errors","error","message","description","map","join","deletedCount","doc","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","collectionLabel","newLabel","_jsxs","className","onClick","elements","0","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nexport type Props = {\n collection: ClientCollectionConfig\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n title?: string\n viewType?: ViewTypes\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { viewType } = props\n const { collection: { slug, trash } = {}, modalPrefix } = props\n\n const { permissions } = useAuth()\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n\n const ids = selectingAll ? [] : selectedIDs\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n : baseWhere\n\n return (\n <React.Fragment>\n <DeleteMany_v4\n afterDelete={() => {\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }}\n modalPrefix={modalPrefix}\n search={parseSearchParams(searchParams)?.search as string}\n selections={{\n [slug]: {\n all: selectAll === SelectAllStatus.AllAvailable,\n ids,\n totalCount: selectingAll ? count : ids.length,\n },\n }}\n trash={trash}\n viewType={viewType}\n where={finalWhere}\n />\n </React.Fragment>\n )\n}\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\ntype DeleteMany_v4Props = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany_v4({\n afterDelete,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteMany_v4Props) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = `${serverURL}${api}/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n const deleteManyResponse =\n viewType === 'trash' || deletePermanently || !collectionConfig.trash\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n const wasTrashed = collectionConfig.trash && !deletePermanently && viewType !== 'trash'\n\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (wasTrashed) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || deletePermanently) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\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\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n locale,\n search,\n serverURL,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && viewType !== 'trash' && (\n <div className=\"delete-documents__checkbox\">\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,EAAEC,eAAe,QAAQ;AAC3C,SAASC,uBAAuB,QAAQ;AACxC,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,MAAW;AAClB,SAASC,KAAK,QAAQ;AAEtB,SAASC,aAAa,QAAQ;AAC9B,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,WAAW,QAAQ;AAC5B,OAAO;AAeP,OAAO,MAAMC,UAAA,GAA8BC,KAAA;EAAA,MAAAC,CAAA,GAAAxB,EAAA;EACzC;IAAAyB;EAAA,IAAqBF,KAAA;EACrB;IAAAG,UAAA,EAAAC,EAAA;IAAAC;EAAA,IAA0DL,KAAA;EAAtC;IAAAM,IAAA;IAAAC;EAAA,IAAAH,EAAoB,KAAAI,SAAA,QAApBJ,EAAoB;EAExC;IAAAK;EAAA,IAAwBtB,OAAA;EACxB;IAAAuB,KAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC;EAAA,IAAqDrB,YAAA;EACrD,MAAAsB,MAAA,GAAelC,SAAA;EACf,MAAAmC,YAAA,GAAqBlC,eAAA;EACrB;IAAAmC;EAAA,IAA4B1B,aAAA;EAE5B,MAAA2B,qBAAA,GAA8BR,WAAA,EAAAS,WAAA,GAA2BZ,IAAA;EACzD,MAAAa,mBAAA,GAA4BF,qBAAA,EAAAG,MAAA;EAE5B,MAAAC,YAAA,GAAqBV,SAAA,KAAApB,eAAA,CAAA+B,YAA0C;EAE/D,MAAAC,GAAA,GAAYF,YAAA,QAAoBT,WAAA;EAAA,IAE5BD,SAAA,KAAApB,eAAA,CAAAiC,IAAkC,KAAKL,mBAAA;IAAA;EAAA;EAI3C,MAAAM,SAAA,GAAkB9B,iBAAA,CAAkBoB,YAAA,GAAAW,KAAA;EAEpC,MAAAC,UAAA,GACEzB,QAAA,KAAa;IAAA0B,GAAA,OAGDC,KAAA,CAAAC,OAAA,CAAcL,SAAA,EAAAG,GAAW,IAAOH,SAAA,CAAAG,GAAA,GAAgBH,SAAA,IAAaA,SAAA,MAAe;MAAAM,SAAA;QAAAC,MAAA;MAAA;IAAA;EAAA,IAIpFP,SAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAhC,CAAA,QAAAe,eAAA,IAAAf,CAAA,QAAAa,MAAA,IAAAb,CAAA,QAAAc,YAAA,IAAAd,CAAA,QAAAU,SAAA,IAAAV,CAAA,QAAAY,SAAA;IAKaoB,EAAA,GAAAA,CAAA;MACXpB,SAAA;MAEAC,MAAA,CAAAoB,OAAA,CACEnD,EAAA,CAAAoD,SAAA;QAAA,GAEOxC,iBAAA,CAAkBoB,YAAA,CAAa;QAAAqB,IAAA,EAC5BzB,SAAA,GAAY,MAAAH;MAAM;QAAA6B,cAAA;MAAA,CAEH;MAI3BrB,eAAA;IAAA;IACFf,CAAA,MAAAe,eAAA;IAAAf,CAAA,MAAAa,MAAA;IAAAb,CAAA,MAAAc,YAAA;IAAAd,CAAA,MAAAU,SAAA;IAAAV,CAAA,MAAAY,SAAA;IAAAZ,CAAA,MAAAgC,EAAA;EAAA;IAAAA,EAAA,GAAAhC,CAAA;EAAA;EAAA,OAhBJqC,IAAA,CAAAtD,KAAA,CAAAuD,QAAA;IAAAC,QAAA,EACEF,IAAA,CAAAG,aAAA;MAAAC,WAAA,EACeT,EAcb;MAAA5B,WAAA;MAAAsC,MAAA,EAEQhD,iBAAA,CAAkBoB,YAAA,GAAA4B,MAAA;MAAAC,UAAA;QAAA,CAEvBtC,IAAA;UAAAuC,GAAA,EACMlC,SAAA,KAAApB,eAAA,CAAA+B,YAA0C;UAAAC,GAAA;UAAAuB,UAAA,EAEnCzB,YAAA,GAAeX,KAAA,GAAQa,GAAA,CAAAwB;QAAU;MAAA;MAAAxC,KAAA;MAAAL,QAAA;MAAAwB,KAAA,EAK1CC;IAAA,C;;CAIf;AAmDA;;;;;AAKA,OAAO,SAASc,cAAc;EAC5BC,WAAW;EACXrC,WAAW;EACXsC,MAAM;EACNC,UAAU;EACVrC,KAAK;EACLL,QAAQ;EACRwB;AAAK,CACc;EACnB,MAAM;IAAEsB;EAAC,CAAE,GAAGvD,cAAA;EAEd,MAAM;IACJwD,MAAA,EAAQ;MACN/B,WAAW;MACXgC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGhE,SAAA;EAEJ,MAAM;IAAEiE,IAAA,EAAMC;EAAM,CAAE,GAAGjE,SAAA;EACzB,MAAM;IAAEkE;EAAI,CAAE,GAAG9D,cAAA;EACjB,MAAM;IAAE+D;EAAS,CAAE,GAAG9E,QAAA;EAEtB,MAAM,CAAC+E,iBAAA,EAAmBC,oBAAA,CAAqB,GAAG1E,KAAA,CAAM2E,QAAQ,CAAC;EACjE,MAAMC,2BAAA,GAA8B,GAAGvD,WAAA,GAAc,GAAGA,WAAA,GAAc,GAAG,4BAA4B;EAErG,MAAMwD,YAAA,GAAe7E,KAAA,CAAM8E,WAAW,CAAC;IACrC,MAAMC,qBAAA,GAAwBC,MAAA,CAAOC,IAAI,CAACrB,UAAA,EAAYG,MAAM,KAAK;IACjE,MAAMmB,MAAA,GAA4B,CAAC;IAEnC,KAAK,MAAM,CAACC,UAAA,EAAY;MAAEtB,GAAG;MAAEtB,GAAA,GAAM;IAAE,CAAE,CAAC,IAAIyC,MAAA,CAAOI,OAAO,CAACxB,UAAA,GAAa;MACxE,MAAMyB,gBAAA,GAAmBnD,WAAA,CAAYoD,IAAI,CAAC,CAAC;QAAEhE;MAAI,CAAE,KAAKA,IAAA,KAAS6D,UAAA;MAEjE,IAAIE,gBAAA,EAAkB;QACpB,IAAIE,eAAA;QAEJ,IAAI1B,GAAA,EAAK;UACP;UACA,IAAIkB,qBAAA,IAAyBrC,KAAA,EAAO;YAClC6C,eAAA,GACErE,QAAA,KAAa,UACT;cACE0B,GAAA,EAAK,C,IACCC,KAAA,CAAMC,OAAO,CAACJ,KAAA,CAAME,GAAG,IAAIF,KAAA,CAAME,GAAG,GAAG,CAACF,KAAA,CAAM,GAClD;gBAAEK,SAAA,EAAW;kBAAEC,MAAA,EAAQ;gBAAK;cAAE;YAElC,IACAN,KAAA;UACR,OAAO;YACL6C,eAAA,GACErE,QAAA,KAAa,UACT;cACE0B,GAAA,EAAK,CAAC;gBAAE4C,EAAA,EAAI;kBAAEC,UAAA,EAAY;gBAAG;cAAE,GAAG;gBAAE1C,SAAA,EAAW;kBAAEC,MAAA,EAAQ;gBAAK;cAAE;YAClE,IACA;cACEwC,EAAA,EAAI;gBAAEC,UAAA,EAAY;cAAG;YACvB;UACR;QACF,OAAO;UACL;UACAF,eAAA,GAAkB;YAChB3C,GAAA,EAAK,CACH;cAAE4C,EAAA,EAAI;gBAAEE,EAAA,EAAInD;cAAI;YAAE,G,IACdrB,QAAA,KAAa,UAAU,CAAC;cAAE6B,SAAA,EAAW;gBAAEC,MAAA,EAAQ;cAAK;YAAE,EAAE,GAAG,EAAE;UAErE;QACF;QAEA,MAAM2C,GAAA,GAAM,GAAGvB,SAAA,GAAYD,GAAA,IAAOgB,UAAA,GAAapF,EAAA,CAAGoD,SAAS,CACzD;UACEyC,KAAA,EAAO;UACPtB,MAAA;UACA5B,KAAA,EAAO5C,uBAAA,CAAwB;YAC7BuF,gBAAA;YACA1B,MAAA;YACAjB,KAAA,EAAO6C;UACT;UACA,IAAIrE,QAAA,KAAa,UAAU;YAAEK,KAAA,EAAO;UAAK,IAAI,CAAC,CAAC;QACjD,GACA;UAAE8B,cAAA,EAAgB;QAAK,IACtB;QAEH,MAAMwC,kBAAA,GACJ3E,QAAA,KAAa,WAAWuD,iBAAA,IAAqB,CAACY,gBAAA,CAAiB9D,KAAK,GAChE,MAAMb,QAAA,CAAS0B,MAAM,CAACuD,GAAA,EAAK;UACzBG,OAAA,EAAS;YACP,mBAAmBvB,IAAA,CAAKwB,QAAQ;YAChC,gBAAgB;UAClB;QACF,KACA,MAAMrF,QAAA,CAASsF,KAAK,CAACL,GAAA,EAAK;UACxBM,IAAA,EAAMC,IAAA,CAAK/C,SAAS,CAAC;YACnBJ,SAAA,EAAW,IAAIoD,IAAA,GAAOC,WAAW;UACnC;UACAN,OAAA,EAAS;YACP,mBAAmBvB,IAAA,CAAKwB,QAAQ;YAChC,gBAAgB;UAClB;QACF;QAEN,IAAI;UACF,MAAM;YAAEM,MAAM;YAAEC;UAAQ,CAAE,GAAGjB,gBAAA,CAAiBkB,MAAM;UACpD,MAAMC,IAAA,GAAO,MAAMX,kBAAA,CAAmBW,IAAI;UAE1C,MAAMC,WAAA,GAAcD,IAAA,EAAME,IAAA,CAAK3C,MAAA,IAAU;UACzC,MAAM4C,YAAA,GAAeF,WAAA,GAAc,IAAIJ,MAAA,GAASC,QAAA;UAEhD,IAAIT,kBAAA,CAAmBe,MAAM,GAAG,OAAOH,WAAA,GAAc,GAAG;YACtD,MAAMI,UAAA,GAAaxB,gBAAA,CAAiB9D,KAAK,IAAI,CAACkD,iBAAA,IAAqBvD,QAAA,KAAa;YAEhF,IAAI4F,UAAA;YAKJ,IAAID,UAAA,EAAY;cACdC,UAAA,GAAa;YACf,OAAO,IAAI5F,QAAA,KAAa,WAAWuD,iBAAA,EAAmB;cACpDqC,UAAA,GAAa;YACf,OAAO;cACLA,UAAA,GAAa;YACf;YAEA7G,KAAA,CAAM8G,OAAO,CACX/C,CAAA,CAAE8C,UAAA,EAAY;cACZpF,KAAA,EAAO+E,WAAA;cACPO,KAAA,EAAOrH,cAAA,CAAegH,YAAA,EAAcpC,IAAA;YACtC;UAEJ;UAEA,IAAIiC,IAAA,EAAMS,MAAA,CAAOlD,MAAA,GAAS,GAAG;YAC3B9D,KAAA,CAAMiH,KAAK,CAACV,IAAA,CAAKW,OAAO,EAAE;cACxBC,WAAA,EAAaZ,IAAA,CAAKS,MAAM,CAACI,GAAG,CAAEH,KAAA,IAAUA,KAAA,CAAMC,OAAO,EAAEG,IAAI,CAAC;YAC9D;UACF;UAEApC,MAAM,CAACC,UAAA,CAAW,GAAG;YACnBoC,YAAA,EAAcd,WAAA;YACdQ,MAAA,EAAQT,IAAA,EAAMS,MAAA,IAAU;YACxB1E,GAAA,EAAKiE,IAAA,EAAME,IAAA,CAAKW,GAAA,CAAKG,GAAA,IAAQA,GAAA,CAAIhC,EAAE,KAAK,EAAE;YAC1C1B,UAAA,EAAY0C,IAAA,CAAKiB;UACnB;UAEA,IAAI5B,kBAAA,CAAmBe,MAAM,GAAG,OAAOJ,IAAA,EAAMS,MAAA,CAAOlD,MAAA,KAAW,GAAG;YAChE9D,KAAA,CAAMiH,KAAK,CAAClD,CAAA,CAAE;YACdkB,MAAM,CAACC,UAAA,CAAW,CAAC8B,MAAM,GAAG,CAACjD,CAAA,CAAE,iBAAiB;UAClD;UAEA;QACF,EAAE,OAAO0D,IAAA,EAAM;UACbzH,KAAA,CAAMiH,KAAK,CAAClD,CAAA,CAAE;UACdkB,MAAM,CAACC,UAAA,CAAW,GAAG;YACnBoC,YAAA,EAAc;YACdN,MAAA,EAAQ,CAACS,IAAA,CAAK;YACdnF,GAAA,EAAK,EAAE;YACPuB,UAAA,EAAY;UACd;UACA;QACF;MACF;IACF;IAEA,IAAI,OAAOJ,WAAA,KAAgB,YAAY;MACrCA,WAAA,CAAYwB,MAAA;IACd;EACF,GAAG,CACDtB,UAAA,EACAF,WAAA,EACAxB,WAAA,EACAuC,iBAAA,EACAH,MAAA,EACAX,MAAA,EACAS,SAAA,EACAD,GAAA,EACAI,IAAA,EACArD,QAAA,EACAwB,KAAA,EACAsB,CAAA,CACD;EAED,MAAM;IAAEgD,KAAA,EAAOW,WAAW;IAAEC,UAAU,EAAVA;EAAU,CAAE,GAAG5C,MAAA,CAAOI,OAAO,CAACxB,UAAA,EAAYiE,MAAM,CAC1E,CAACC,GAAA,EAAK,CAACC,GAAA,EAAKC,KAAA,CAAM,EAAEC,KAAA,EAAOC,KAAA;IACzB,MAAM7C,kBAAA,GAAmBnD,WAAA,CAAYoD,IAAI,CAAC,CAAC;MAAEhE,IAAI,EAAJA;IAAI,CAAE,KAAKA,MAAA,KAASyG,GAAA;IACjE,IAAI1C,kBAAA,EAAkB;MACpB,MAAMuC,UAAA,GAAaE,GAAA,CAAIF,UAAU,KAAKpG,SAAA,GAAYwG,KAAA,CAAMlE,UAAU,GAAGgE,GAAA,CAAIF,UAAU;MACnF,MAAMO,eAAA,GAAkB,GAAGL,GAAA,CAAIF,UAAU,KAAKpG,SAAA,GAAY,GAAGwG,KAAA,CAAMlE,UAAU,GAAG,GAAG,KAAKnE,cAAA,CACtFqI,KAAA,CAAMlE,UAAU,GAAG,IAAIuB,kBAAA,CAAiBkB,MAAM,CAACF,MAAM,GAAGhB,kBAAA,CAAiBkB,MAAM,CAACD,QAAQ,EACxF/B,IAAA,GACC;MAEH,IAAI6D,QAAA;MAEJ,IAAIH,KAAA,KAAUC,KAAA,CAAMnE,MAAM,GAAG,KAAKkE,KAAA,KAAU,GAAG;QAC7CG,QAAA,GAAW,GAAGN,GAAA,CAAId,KAAK,QAAQmB,eAAA,EAAiB;MAClD,OAAO,IAAIF,KAAA,GAAQ,GAAG;QACpBG,QAAA,GAAW,GAAGN,GAAA,CAAId,KAAK,KAAKmB,eAAA,EAAiB;MAC/C,OAAO;QACLC,QAAA,GAAWD,eAAA;MACb;MAEA,OAAO;QACLnB,KAAA,EAAOoB,QAAA;QACPR;MACF;IACF;IACA,OAAOE,GAAA;EACT,GACA;IACEd,KAAA,EAAO;IACPY,UAAA,EAAYpG;EACd;EAGF,oBACE6G,KAAA,CAACrI,KAAA,CAAMuD,QAAQ;4BACbD,IAAA,CAACzC,mBAAA;MACC,cAAYmD,CAAA,CAAE;MACdsE,SAAA,EAAU;MACVC,OAAA,EAASA,CAAA;QACP/D,SAAA,CAAUI,2BAAA;MACZ;gBAECZ,CAAA,CAAE;qBAELV,IAAA,CAAC1C,iBAAA;MACCqF,IAAA,eACEoC,KAAA,CAACrI,KAAA,CAAMuD,QAAQ;gCACbD,IAAA,CAAC;oBACE/B,KAAA,GACCL,QAAA,KAAa,uBACXoC,IAAA,CAACxC,WAAA;YACC0H,QAAA,EAAU;cACR,KAAKC,CAAC;gBAAEjF;cAAQ,CAAE,kBAAKF,IAAA,CAAC;0BAAQE;;cAChC,KAAKkF,CAAC;gBAAElF,QAAQ,EAARA;cAAQ,CAAE,kBAAKF,IAAA,CAAC;0BAAQE;;YAClC;YACAmF,OAAA,EAAQ;YACR3E,CAAA,EAAGA,CAAA;YACH4E,SAAA,EAAW;cACTlH,KAAA,EAAOkG,YAAA,IAAc;cACrBZ,KAAA,EAAOW;YACT;eAGF3D,CAAA,CAAE,6BAA6B;YAAEtC,KAAA,EAAOkG,YAAA;YAAYZ,KAAA,EAAOW;UAAY,KAGzE3D,CAAA,CAAE,8BAA8B;YAAEtC,KAAA,EAAOkG,YAAA;YAAYZ,KAAA,EAAOW;UAAY;YAG3EpG,KAAA,IAASL,QAAA,KAAa,wBACrBoC,IAAA,CAAC;UAAIgF,SAAA,EAAU;oBACb,aAAAhF,IAAA,CAACpD,aAAA;YACC2I,OAAA,EAASpE,iBAAA;YACTe,EAAA,EAAG;YACHwB,KAAA,EAAOhD,CAAA,CAAE;YACT8E,IAAA,EAAK;YACLC,QAAA,EAAWC,CAAA,IAAMtE,oBAAA,CAAqBsE,CAAA,CAAEC,MAAM,CAACJ,OAAO;;;;MAMhEK,eAAA,EAAiBlF,CAAA,CAAE;MACnBmF,OAAA,EAASnF,CAAA,CAAE;MACXoF,SAAA,EAAWxE,2BAAA;MACXyE,SAAA,EAAWxE;;;AAInB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","props","$","viewType","collection","t0","modalPrefix","slug","trash","undefined","permissions","count","selectAll","selectedIDs","toggleAll","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","selectingAll","AllAvailable","ids","None","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","t1","replace","stringify","page","addQueryPrefix","_jsx","Fragment","children","DeleteMany_v4","afterDelete","search","selections","all","totalCount","length","t","config","routes","api","serverURL","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","result","relationTo","entries","collectionConfig","find","whereConstraint","id","not_equals","in","url","limit","select","deleteManyResponse","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","wasTrashed","successKey","success","label","errors","error","message","description","map","join","deletedCount","doc","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","collectionLabel","newLabel","_jsxs","className","onClick","elements","0","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nexport type Props = {\n collection: ClientCollectionConfig\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n title?: string\n viewType?: ViewTypes\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { viewType } = props\n const { collection: { slug, trash } = {}, modalPrefix } = props\n\n const { permissions } = useAuth()\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n\n const ids = selectingAll ? [] : selectedIDs\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n : baseWhere\n\n return (\n <React.Fragment>\n <DeleteMany_v4\n afterDelete={() => {\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }}\n modalPrefix={modalPrefix}\n search={parseSearchParams(searchParams)?.search as string}\n selections={{\n [slug]: {\n all: selectAll === SelectAllStatus.AllAvailable,\n ids,\n totalCount: selectingAll ? count : ids.length,\n },\n }}\n trash={trash}\n viewType={viewType}\n where={finalWhere}\n />\n </React.Fragment>\n )\n}\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\ntype DeleteMany_v4Props = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany_v4({\n afterDelete,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteMany_v4Props) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = `${serverURL}${api}/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n const deleteManyResponse =\n viewType === 'trash' || deletePermanently || !collectionConfig.trash\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n const wasTrashed = collectionConfig.trash && !deletePermanently && viewType !== 'trash'\n\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (wasTrashed) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || deletePermanently) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\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\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n locale,\n search,\n serverURL,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && viewType !== 'trash' && (\n <div className=\"delete-documents__checkbox\">\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,SAAS,CAAA;AAOhD,OAAO,KAAoD,MAAM,OAAO,CAAA;AAIxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAkBvE,OAAO,cAAc,CAAA;AACrB,OAAO,qCAAqC,CAAA;AAC5C,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AA+E1D,KAAK,0BAA0B,GAAG;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,cAAc,EAAE,WAAW,EAAE,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAClD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,aAAa,CAAA;AAEjB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,KAAK,EAAE,MAAM,SAAS,CAAA;AAOhD,OAAO,KAAoD,MAAM,OAAO,CAAA;AAIxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAkBvE,OAAO,cAAc,CAAA;AACrB,OAAO,qCAAqC,CAAA;AAC5C,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AA+E1D,KAAK,0BAA0B,GAAG;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;OAEG;IACH,cAAc,EAAE,WAAW,EAAE,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAA;IAClD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,aAAa,CAAA;AAEjB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CA0QtE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","combineWhereConstraints","mergeListSearchAndWhere","unflatten","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderField","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","useLocale","OperationContext","useRouteCache","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","parseSearchParams","FieldSelect","baseClass","Submit","t0","$","action","disabled","submit","t","t1","method","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","overrides","_status","SaveDraftButton","buttonStyle","EditManyDrawerContent","props","collection","fields","labels","plural","singular","count","drawerSlug","ids","onSuccess","onSuccessFromProps","selectAll","selectedFields","setSelectedFields","where","permissions","user","code","locale","closeModal","config","routes","api","apiRoute","serverURL","getFormState","i18n","isInitializing","setIsInitializing","router","abortFormStateRef","useRef","clearRouteCache","collectionPermissions","collections","slug","searchParams","select","reduce","acc","option","value","path","onChange","formState","prevFormState","submitted","controller","state","collectionSlug","docPermissions","docPreferences","operation","schemaPath","signal","current","abortFormState","queryString","whereConstraints","push","queryWithSearch","collectionConfig","search","get","id","not_equals","in","stringify","addQueryPrefix","replace","page","undefined","onFieldSelect","dispatchFields","selected","type","currentEditor","hasPublishedDoc","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","_jsxs","label","length","map","i","field","fieldPermissions","clientFieldConfig","indexPath","parentPath","parentSchemaPath","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { SelectType, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { combineWhereConstraints, mergeListSearchAndWhere, unflatten } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { OnFieldSelect } from '../FieldSelect/index.js'\nimport type { FieldOption } from '../FieldSelect/reduceFieldOptions.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderField } from '../../forms/RenderFields/RenderField.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\nimport '../../forms/RenderFields/index.scss'\nimport { baseClass, type EditManyProps } from './index.js'\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\ntype EditManyDrawerContentProps = {\n /**\n * The total count of selected items\n */\n count?: number\n /**\n * The slug of the drawer\n */\n drawerSlug: string\n /**\n * The IDs of the selected items\n */\n ids?: (number | string)[]\n /**\n * The function to call after a successful action\n */\n onSuccess?: () => void\n /**\n * Whether all items are selected\n */\n selectAll?: boolean\n /**\n * The fields that are selected to bulk edit\n */\n selectedFields: FieldOption[]\n /**\n * The function to set the selected fields to bulk edit\n */\n setSelectedFields: (fields: FieldOption[]) => void\n where?: Where\n} & EditManyProps\n\nexport const EditManyDrawerContent: React.FC<EditManyDrawerContentProps> = (props) => {\n const {\n collection,\n collection: { fields, labels: { plural, singular } } = {},\n count,\n drawerSlug,\n ids,\n onSuccess: onSuccessFromProps,\n selectAll,\n selectedFields,\n setSelectedFields,\n where,\n } = props\n\n const { permissions, user } = useAuth()\n const { code: locale } = useLocale()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { i18n, t } = useTranslation()\n\n const [isInitializing, setIsInitializing] = useState(false)\n\n const router = useRouter()\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n const collectionPermissions = permissions?.collections?.[collection.slug]\n const searchParams = useSearchParams()\n\n const select = useMemo<SelectType>(() => {\n return unflatten(\n selectedFields.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n )\n }, [selectedFields])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: collection.slug,\n select,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, collection, collectionPermissions, select],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo((): string => {\n const whereConstraints: Where[] = []\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (selectAll) {\n // Match the current filter/search, or default to all docs\n whereConstraints.push(\n (parseSearchParams(searchParams)?.where as Where) || {\n id: {\n not_equals: '',\n },\n },\n )\n } else {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache()\n closeModal(drawerSlug)\n\n if (typeof onSuccessFromProps === 'function') {\n onSuccessFromProps()\n }\n }\n\n const onFieldSelect = useCallback<OnFieldSelect>(\n async ({ dispatchFields, formState, selected }) => {\n setIsInitializing(true)\n\n setSelectedFields(selected || [])\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState,\n operation: 'update',\n schemaPath: collection.slug,\n select: unflatten(\n selected.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n ),\n skipValidation: true,\n })\n\n dispatchFields({\n type: 'UPDATE_MANY',\n formState: state,\n })\n\n setIsInitializing(false)\n },\n [getFormState, collection.slug, collectionPermissions, setSelectedFields],\n )\n\n return (\n <DocumentInfoProvider\n collectionSlug={collection.slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n isInitializing={isInitializing}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect\n fields={fields}\n onChange={onFieldSelect}\n permissions={collectionPermissions.fields}\n />\n {selectedFields.length === 0 ? null : (\n <div className=\"render-fields\">\n {selectedFields.map((option, i) => {\n const {\n value: { field, fieldPermissions, path },\n } = option\n\n return (\n <RenderField\n clientFieldConfig={field}\n indexPath=\"\"\n key={`${path}-${i}`}\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n permissions={fieldPermissions}\n />\n )\n })}\n </div>\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n <PublishButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}`}\n disabled={selectedFields.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext>\n </DocumentInfoProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DrawerContent.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","combineWhereConstraints","mergeListSearchAndWhere","unflatten","qs","React","useCallback","useEffect","useMemo","useState","useForm","Form","RenderField","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","useLocale","OperationContext","useRouteCache","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","parseSearchParams","FieldSelect","baseClass","Submit","t0","$","action","disabled","submit","t","t1","method","skipValidation","save","t2","_jsx","className","onClick","children","PublishButton","overrides","_status","SaveDraftButton","buttonStyle","EditManyDrawerContent","props","collection","fields","labels","plural","singular","count","drawerSlug","ids","onSuccess","onSuccessFromProps","selectAll","selectedFields","setSelectedFields","where","permissions","user","code","locale","closeModal","config","routes","api","apiRoute","serverURL","getFormState","i18n","isInitializing","setIsInitializing","router","abortFormStateRef","useRef","clearRouteCache","collectionPermissions","collections","slug","searchParams","select","reduce","acc","option","value","path","onChange","formState","prevFormState","submitted","controller","state","collectionSlug","docPermissions","docPreferences","operation","schemaPath","signal","current","abortFormState","queryString","whereConstraints","push","queryWithSearch","collectionConfig","search","get","id","not_equals","in","stringify","addQueryPrefix","replace","page","undefined","onFieldSelect","dispatchFields","selected","type","currentEditor","hasPublishedDoc","initialData","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","versionCount","_jsxs","label","length","map","i","field","fieldPermissions","clientFieldConfig","indexPath","parentPath","parentSchemaPath","versions","drafts","Fragment"],"sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport type { SelectType, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { combineWhereConstraints, mergeListSearchAndWhere, unflatten } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { OnFieldSelect } from '../FieldSelect/index.js'\nimport type { FieldOption } from '../FieldSelect/reduceFieldOptions.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderField } from '../../forms/RenderFields/RenderField.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\nimport '../../forms/RenderFields/index.scss'\nimport { baseClass, type EditManyProps } from './index.js'\n\nconst Submit: React.FC<{\n readonly action: string\n readonly disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{\n action: string\n disabled: boolean\n}> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit\n buttonStyle=\"secondary\"\n className={`${baseClass}__draft`}\n disabled={disabled}\n onClick={save}\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\ntype EditManyDrawerContentProps = {\n /**\n * The total count of selected items\n */\n count?: number\n /**\n * The slug of the drawer\n */\n drawerSlug: string\n /**\n * The IDs of the selected items\n */\n ids?: (number | string)[]\n /**\n * The function to call after a successful action\n */\n onSuccess?: () => void\n /**\n * Whether all items are selected\n */\n selectAll?: boolean\n /**\n * The fields that are selected to bulk edit\n */\n selectedFields: FieldOption[]\n /**\n * The function to set the selected fields to bulk edit\n */\n setSelectedFields: (fields: FieldOption[]) => void\n where?: Where\n} & EditManyProps\n\nexport const EditManyDrawerContent: React.FC<EditManyDrawerContentProps> = (props) => {\n const {\n collection,\n collection: { fields, labels: { plural, singular } } = {},\n count,\n drawerSlug,\n ids,\n onSuccess: onSuccessFromProps,\n selectAll,\n selectedFields,\n setSelectedFields,\n where,\n } = props\n\n const { permissions, user } = useAuth()\n const { code: locale } = useLocale()\n\n const { closeModal } = useModal()\n\n const {\n config: {\n routes: { api: apiRoute },\n serverURL,\n },\n } = useConfig()\n\n const { getFormState } = useServerFunctions()\n\n const { i18n, t } = useTranslation()\n\n const [isInitializing, setIsInitializing] = useState(false)\n\n const router = useRouter()\n const abortFormStateRef = React.useRef<AbortController>(null)\n const { clearRouteCache } = useRouteCache()\n const collectionPermissions = permissions?.collections?.[collection.slug]\n const searchParams = useSearchParams()\n\n const select = useMemo<SelectType>(() => {\n return unflatten(\n selectedFields.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n )\n }, [selectedFields])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortFormStateRef)\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState: prevFormState,\n operation: 'update',\n schemaPath: collection.slug,\n select,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortFormStateRef.current = null\n\n return state\n },\n [getFormState, collection, collectionPermissions, select],\n )\n\n useEffect(() => {\n const abortFormState = abortFormStateRef.current\n\n return () => {\n abortAndIgnore(abortFormState)\n }\n }, [])\n\n const queryString = useMemo((): string => {\n const whereConstraints: Where[] = []\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (selectAll) {\n // Match the current filter/search, or default to all docs\n whereConstraints.push(\n (parseSearchParams(searchParams)?.where as Where) || {\n id: {\n not_equals: '',\n },\n },\n )\n } else {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n select: {},\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const onSuccess = () => {\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n clearRouteCache()\n closeModal(drawerSlug)\n\n if (typeof onSuccessFromProps === 'function') {\n onSuccessFromProps()\n }\n }\n\n const onFieldSelect = useCallback<OnFieldSelect>(\n async ({ dispatchFields, formState, selected }) => {\n setIsInitializing(true)\n\n setSelectedFields(selected || [])\n\n const { state } = await getFormState({\n collectionSlug: collection.slug,\n docPermissions: collectionPermissions,\n docPreferences: null,\n formState,\n operation: 'update',\n schemaPath: collection.slug,\n select: unflatten(\n selected.reduce((acc, option) => {\n acc[option.value.path] = true\n return acc\n }, {} as SelectType),\n ),\n skipValidation: true,\n })\n\n dispatchFields({\n type: 'UPDATE_MANY',\n formState: state,\n })\n\n setIsInitializing(false)\n },\n [getFormState, collection.slug, collectionPermissions, setSelectedFields],\n )\n\n return (\n <DocumentInfoProvider\n collectionSlug={collection.slug}\n currentEditor={user}\n hasPublishedDoc={false}\n id={null}\n initialData={{}}\n isLocked={false}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n versionCount={0}\n >\n <OperationContext value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', {\n count,\n label: getTranslation(count > 1 ? plural : singular, i18n),\n })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n isInitializing={isInitializing}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect\n fields={fields}\n onChange={onFieldSelect}\n permissions={collectionPermissions.fields}\n />\n {selectedFields.length === 0 ? null : (\n <div className=\"render-fields\">\n {selectedFields.map((option, i) => {\n const {\n value: { field, fieldPermissions, path },\n } = option\n\n return (\n <RenderField\n clientFieldConfig={field}\n indexPath=\"\"\n key={`${path}-${i}`}\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n permissions={fieldPermissions}\n />\n )\n })}\n </div>\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n <PublishButton\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}&draft=true`}\n disabled={selectedFields.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${collection.slug}${queryString}`}\n disabled={selectedFields.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext>\n </DocumentInfoProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAUlD,KAAK,6BAA6B,GAAG;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,gBAAgB,CAAA;AAEpB,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,
|
|
1
|
+
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/PublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAUlD,KAAK,6BAA6B,GAAG;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,gBAAgB,CAAA;AAEpB,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,qBAyK5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.js","names":["getTranslation","useRouter","useSearchParams","combineWhereConstraints","mergeListSearchAndWhere","qs","React","useCallback","toast","useConfig","useLocale","useRouteCache","useTranslation","requests","parseSearchParams","ConfirmationModal","PublishManyDrawerContent","props","collection","slug","labels","plural","singular","drawerSlug","ids","onSuccess","selectAll","where","clearRouteCache","config","routes","api","serverURL","code","locale","router","searchParams","i18n","t","addDefaultError","error","queryString","useMemo","whereConstraints","_status","not_equals","push","queryWithSearch","collectionConfig","search","get","id","in","stringify","addQueryPrefix","handlePublish","patch","body","JSON","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","page","undefined","forEach","_err","_jsx","cancelLabel","confirmingLabel","confirmLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/PublishMany/DrawerContent.tsx"],"sourcesContent":["import type { Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { combineWhereConstraints, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishManyProps } from './index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\n\ntype PublishManyDrawerContentProps = {\n drawerSlug: string\n ids: (number | string)[]\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n} & PublishManyProps\n\nexport function PublishManyDrawerContent(props: PublishManyDrawerContentProps) {\n const {\n collection,\n collection: { slug, labels: { plural, singular } } = {},\n drawerSlug,\n ids,\n onSuccess,\n selectAll,\n where,\n } = props\n\n const { clearRouteCache } = useRouteCache()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n\n const router = useRouter()\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const queryString = React.useMemo((): string => {\n const whereConstraints: Where[] = [\n {\n _status: {\n not_equals: 'published',\n },\n },\n ]\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (selectAll) {\n // Match the current filter/search, or default to all docs\n whereConstraints.push(\n (parseSearchParams(searchParams)?.where as Where) || {\n id: {\n not_equals: '',\n },\n },\n )\n } else {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const handlePublish = useCallback(async () => {\n await requests\n .patch(`${serverURL}${api}/${slug}${queryString}&draft=true`, {\n body: JSON.stringify({\n _status: 'published',\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\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\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n\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 (_err) {\n return addDefaultError()\n }\n })\n }, [\n serverURL,\n api,\n slug,\n queryString,\n i18n,\n plural,\n singular,\n t,\n router,\n searchParams,\n selectAll,\n clearRouteCache,\n addDefaultError,\n onSuccess,\n ])\n\n return (\n <ConfirmationModal\n body={t('version:aboutToPublishSelection', { label: getTranslation(plural, i18n) })}\n cancelLabel={t('general:cancel')}\n confirmingLabel={t('version:publishing')}\n confirmLabel={t('general:confirm')}\n heading={t('version:confirmPublish')}\n modalSlug={drawerSlug}\n onConfirm={handlePublish}\n />\n )\n}\n"],"mappings":";AAEA,SAASA,cAAc,QAAQ;AAC/B,SAASC,SAAS,EAAEC,eAAe,QAAQ;AAC3C,SAASC,uBAAuB,EAAEC,uBAAuB,QAAQ;AACjE,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAItB,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,QAAQ;AAUlC,OAAO,SAASC,yBAAyBC,KAAoC;EAC3E,MAAM;IACJC,UAAU;IACVA,UAAA,EAAY;MAAEC,IAAI;MAAEC,MAAA,EAAQ;QAAEC,MAAM;QAAEC;MAAQ;IAAE,CAAE,GAAG,CAAC,CAAC;IACvDC,UAAU;IACVC,GAAG;IACHC,SAAS;IACTC,SAAS;IACTC;EAAK,CACN,GAAGV,KAAA;EAEJ,MAAM;IAAEW;EAAe,CAAE,GAAGjB,aAAA;EAE5B,MAAM;IACJkB,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGvB,SAAA;EAEJ,MAAM;IAAEwB,IAAA,EAAMC;EAAM,CAAE,GAAGxB,SAAA;EAEzB,MAAMyB,MAAA,GAASlC,SAAA;EACf,MAAMmC,YAAA,GAAelC,eAAA;EACrB,MAAM;IAAEmC,IAAI;IAAEC;EAAC,CAAE,GAAG1B,cAAA;EAEpB,MAAM2B,eAAA,GAAkBhC,WAAA,CAAY;IAClCC,KAAA,CAAMgC,KAAK,CAACF,CAAA,CAAE;EAChB,GAAG,CAACA,CAAA,CAAE;EAEN,MAAMG,WAAA,GAAcnC,KAAA,CAAMoC,OAAO,CAAC;IAChC,MAAMC,gBAAA,GAA4B,CAChC;MACEC,OAAA,EAAS;QACPC,UAAA,EAAY;MACd;IACF,EACD;IAED,IAAIlB,KAAA,EAAO;MACTgB,gBAAA,CAAiBG,IAAI,CAACnB,KAAA;IACxB;IAEA,MAAMoB,eAAA,GAAkB3C,uBAAA,CAAwB;MAC9C4C,gBAAA,EAAkB9B,UAAA;MAClB+B,MAAA,EAAQb,YAAA,CAAac,GAAG,CAAC;IAC3B;IAEA,IAAIH,eAAA,EAAiB;MACnBJ,gBAAA,CAAiBG,IAAI,CAACC,eAAA;IACxB;IAEA,IAAIrB,SAAA,EAAW;MACb;MACAiB,gBAAA,CAAiBG,IAAI,CACnBhC,iBAAC,CAAkBsB,YAAA,GAAeT,KAAA,IAAmB;QACnDwB,EAAA,EAAI;UACFN,UAAA,EAAY;QACd;MACF;IAEJ,OAAO;MACL;MACAF,gBAAA,CAAiBG,IAAI,CAAC;QACpBK,EAAA,EAAI;UACFC,EAAA,EAAI5B,GAAA,IAAO;QACb;MACF;IACF;IAEA,OAAOnB,EAAA,CAAGgD,SAAS,CACjB;MACEnB,MAAA;
|
|
1
|
+
{"version":3,"file":"DrawerContent.js","names":["getTranslation","useRouter","useSearchParams","combineWhereConstraints","mergeListSearchAndWhere","qs","React","useCallback","toast","useConfig","useLocale","useRouteCache","useTranslation","requests","parseSearchParams","ConfirmationModal","PublishManyDrawerContent","props","collection","slug","labels","plural","singular","drawerSlug","ids","onSuccess","selectAll","where","clearRouteCache","config","routes","api","serverURL","code","locale","router","searchParams","i18n","t","addDefaultError","error","queryString","useMemo","whereConstraints","_status","not_equals","push","queryWithSearch","collectionConfig","search","get","id","in","stringify","select","addQueryPrefix","handlePublish","patch","body","JSON","headers","language","then","res","json","deletedDocs","docs","length","successLabel","status","success","count","label","errors","message","description","map","join","replace","page","undefined","forEach","_err","_jsx","cancelLabel","confirmingLabel","confirmLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/PublishMany/DrawerContent.tsx"],"sourcesContent":["import type { Where } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { combineWhereConstraints, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishManyProps } from './index.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\n\ntype PublishManyDrawerContentProps = {\n drawerSlug: string\n ids: (number | string)[]\n onSuccess?: () => void\n selectAll: boolean\n where?: Where\n} & PublishManyProps\n\nexport function PublishManyDrawerContent(props: PublishManyDrawerContentProps) {\n const {\n collection,\n collection: { slug, labels: { plural, singular } } = {},\n drawerSlug,\n ids,\n onSuccess,\n selectAll,\n where,\n } = props\n\n const { clearRouteCache } = useRouteCache()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n\n const router = useRouter()\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const queryString = React.useMemo((): string => {\n const whereConstraints: Where[] = [\n {\n _status: {\n not_equals: 'published',\n },\n },\n ]\n\n if (where) {\n whereConstraints.push(where)\n }\n\n const queryWithSearch = mergeListSearchAndWhere({\n collectionConfig: collection,\n search: searchParams.get('search'),\n })\n\n if (queryWithSearch) {\n whereConstraints.push(queryWithSearch)\n }\n\n if (selectAll) {\n // Match the current filter/search, or default to all docs\n whereConstraints.push(\n (parseSearchParams(searchParams)?.where as Where) || {\n id: {\n not_equals: '',\n },\n },\n )\n } else {\n // If we're not selecting all, we need to select specific docs\n whereConstraints.push({\n id: {\n in: ids || [],\n },\n })\n }\n\n return qs.stringify(\n {\n locale,\n select: {},\n where: combineWhereConstraints(whereConstraints),\n },\n { addQueryPrefix: true },\n )\n }, [collection, searchParams, selectAll, ids, locale, where])\n\n const handlePublish = useCallback(async () => {\n await requests\n .patch(`${serverURL}${api}/${slug}${queryString}&draft=true`, {\n body: JSON.stringify({\n _status: 'published',\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\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\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n\n if (typeof onSuccess === 'function') {\n onSuccess()\n }\n\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 (_err) {\n return addDefaultError()\n }\n })\n }, [\n serverURL,\n api,\n slug,\n queryString,\n i18n,\n plural,\n singular,\n t,\n router,\n searchParams,\n selectAll,\n clearRouteCache,\n addDefaultError,\n onSuccess,\n ])\n\n return (\n <ConfirmationModal\n body={t('version:aboutToPublishSelection', { label: getTranslation(plural, i18n) })}\n cancelLabel={t('general:cancel')}\n confirmingLabel={t('version:publishing')}\n confirmLabel={t('general:confirm')}\n heading={t('version:confirmPublish')}\n modalSlug={drawerSlug}\n onConfirm={handlePublish}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RestoreMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAS,MAAM,SAAS,CAAA;AAOvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/RestoreMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAS,MAAM,SAAS,CAAA;AAOvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,OAAO,cAAc,CAAA;AAMrB,MAAM,MAAM,KAAK,GAAG;IAClB,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgLvC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","confirmManyRestoreDrawerSlug","baseClass","RestoreMany","props","collection","slug","viewType","permissions","config","collections","routes","serverURL","code","locale","router","clearRouteCache","searchParams","count","getSelectedIds","selectAll","toggleAll","openModal","i18n","t","restoreAsPublished","setRestoreAsPublished","useState","collectionPermissions","hasUpdatePermission","update","None","selectingAll","AllAvailable","selectedIDs","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","handleRestore","collectionConfig","find","c","whereConstraint","id","in","url","api","stringify","limit","trash","search","addQueryPrefix","body","versions","drafts","_status","restoreManyResponse","patch","JSON","headers","language","plural","singular","labels","json","restoredDocs","docs","length","successLabel","status","success","label","errors","error","message","description","map","e","join","err","replace","page","undefined","s","labelString","_jsxs","Fragment","_jsx","className","onClick","checked","name","onToggle","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/RestoreMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport './index.scss'\n\nconst confirmManyRestoreDrawerSlug = `confirm-restore-many-docs`\n\nconst baseClass = 'restore-many'\n\nexport type Props = {\n collection: ClientCollectionConfig\n viewType?: ViewTypes\n}\n\nexport const RestoreMany: React.FC<Props> = (props) => {\n const { collection: { slug } = {}, viewType } = props\n\n const { permissions } = useAuth()\n const {\n config: { collections, routes, serverURL },\n } = useConfig()\n const { code: locale } = useLocale()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n const searchParams = useSearchParams()\n const { count, getSelectedIds, selectAll, toggleAll } = useSelection()\n const { openModal } = useModal()\n\n const { i18n, t } = useTranslation()\n\n const [restoreAsPublished, setRestoreAsPublished] = React.useState(false)\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission || viewType !== 'trash') {\n return null\n }\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n const selectedIDs = !selectingAll ? getSelectedIds() : []\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere = {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n\n const handleRestore = async () => {\n const collectionConfig = collections.find((c) => c.slug === slug)\n if (!collectionConfig) {\n return\n }\n\n let whereConstraint: Where\n\n if (selectingAll) {\n whereConstraint = finalWhere\n } else {\n whereConstraint = {\n and: [{ id: { in: selectedIDs } }, { deletedAt: { exists: true } }],\n }\n }\n\n const url = `${serverURL}${routes.api}/${slug}${qs.stringify(\n {\n limit: 0,\n locale,\n trash: true, // Ensure trashed docs are returned\n where: mergeListSearchAndWhere({\n collectionConfig,\n search: parseSearchParams(searchParams)?.search as string,\n where: whereConstraint,\n }),\n },\n { addQueryPrefix: true },\n )}`\n\n const body: Record<string, unknown> = {\n deletedAt: null,\n }\n\n // Only include _status if drafts are enabled\n if (collectionConfig?.versions?.drafts) {\n body._status = restoreAsPublished ? 'published' : 'draft'\n }\n\n const restoreManyResponse = await requests.patch(url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await restoreManyResponse.json()\n\n const restoredDocs = json?.docs?.length || 0\n const successLabel = restoredDocs > 1 ? plural : singular\n\n if (restoreManyResponse.status < 400 || restoredDocs > 0) {\n toast.success(\n t('general:restoredCountSuccessfully', {\n count: restoredDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors?.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((e) => e.message).join('\\n'),\n })\n }\n } catch (err) {\n toast.error(t('error:unknown'))\n }\n\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectingAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }\n\n const collectionConfig = collections.find(({ slug: s }) => s === slug)\n\n const labelString = getTranslation(\n count === 1 ? collectionConfig.labels.singular : collectionConfig.labels.plural,\n i18n,\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:restore')}\n className=\"restore-documents__toggle\"\n onClick={() => {\n openModal(confirmManyRestoreDrawerSlug)\n }}\n >\n {t('general:restore')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n {t(\n collectionConfig?.versions?.drafts\n ? 'general:aboutToRestoreAsDraftCount'\n : 'general:aboutToRestoreCount',\n {\n count,\n label: labelString,\n },\n )}\n {collectionConfig?.versions?.drafts && (\n <div className={`${baseClass}__checkbox`}>\n <CheckboxInput\n checked={restoreAsPublished}\n id=\"restore-as-published-many\"\n label={t('general:restoreAsPublished')}\n name=\"restore-as-published-many\"\n onToggle={(e) => setRestoreAsPublished(e.target.checked)}\n />\n </div>\n )}\n </React.Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:restoring')}\n heading={t('general:confirmRestoration')}\n modalSlug={confirmManyRestoreDrawerSlug}\n onConfirm={handleRestore}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","confirmManyRestoreDrawerSlug","baseClass","RestoreMany","props","collection","slug","viewType","permissions","config","collections","routes","serverURL","code","locale","router","clearRouteCache","searchParams","count","getSelectedIds","selectAll","toggleAll","openModal","i18n","t","restoreAsPublished","setRestoreAsPublished","useState","collectionPermissions","hasUpdatePermission","update","None","selectingAll","AllAvailable","selectedIDs","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","handleRestore","collectionConfig","find","c","whereConstraint","id","in","url","api","stringify","limit","select","trash","search","addQueryPrefix","body","versions","drafts","_status","restoreManyResponse","patch","JSON","headers","language","plural","singular","labels","json","restoredDocs","docs","length","successLabel","status","success","label","errors","error","message","description","map","e","join","err","replace","page","undefined","s","labelString","_jsxs","Fragment","_jsx","className","onClick","checked","name","onToggle","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/RestoreMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport './index.scss'\n\nconst confirmManyRestoreDrawerSlug = `confirm-restore-many-docs`\n\nconst baseClass = 'restore-many'\n\nexport type Props = {\n collection: ClientCollectionConfig\n viewType?: ViewTypes\n}\n\nexport const RestoreMany: React.FC<Props> = (props) => {\n const { collection: { slug } = {}, viewType } = props\n\n const { permissions } = useAuth()\n const {\n config: { collections, routes, serverURL },\n } = useConfig()\n const { code: locale } = useLocale()\n const router = useRouter()\n const { clearRouteCache } = useRouteCache()\n const searchParams = useSearchParams()\n const { count, getSelectedIds, selectAll, toggleAll } = useSelection()\n const { openModal } = useModal()\n\n const { i18n, t } = useTranslation()\n\n const [restoreAsPublished, setRestoreAsPublished] = React.useState(false)\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission || viewType !== 'trash') {\n return null\n }\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n const selectedIDs = !selectingAll ? getSelectedIds() : []\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere = {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n\n const handleRestore = async () => {\n const collectionConfig = collections.find((c) => c.slug === slug)\n if (!collectionConfig) {\n return\n }\n\n let whereConstraint: Where\n\n if (selectingAll) {\n whereConstraint = finalWhere\n } else {\n whereConstraint = {\n and: [{ id: { in: selectedIDs } }, { deletedAt: { exists: true } }],\n }\n }\n\n const url = `${serverURL}${routes.api}/${slug}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n trash: true, // Ensure trashed docs are returned\n where: mergeListSearchAndWhere({\n collectionConfig,\n search: parseSearchParams(searchParams)?.search as string,\n where: whereConstraint,\n }),\n },\n { addQueryPrefix: true },\n )}`\n\n const body: Record<string, unknown> = {\n deletedAt: null,\n }\n\n // Only include _status if drafts are enabled\n if (collectionConfig?.versions?.drafts) {\n body._status = restoreAsPublished ? 'published' : 'draft'\n }\n\n const restoreManyResponse = await requests.patch(url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await restoreManyResponse.json()\n\n const restoredDocs = json?.docs?.length || 0\n const successLabel = restoredDocs > 1 ? plural : singular\n\n if (restoreManyResponse.status < 400 || restoredDocs > 0) {\n toast.success(\n t('general:restoredCountSuccessfully', {\n count: restoredDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors?.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((e) => e.message).join('\\n'),\n })\n }\n } catch (err) {\n toast.error(t('error:unknown'))\n }\n\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectingAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }\n\n const collectionConfig = collections.find(({ slug: s }) => s === slug)\n\n const labelString = getTranslation(\n count === 1 ? collectionConfig.labels.singular : collectionConfig.labels.plural,\n i18n,\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:restore')}\n className=\"restore-documents__toggle\"\n onClick={() => {\n openModal(confirmManyRestoreDrawerSlug)\n }}\n >\n {t('general:restore')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n {t(\n collectionConfig?.versions?.drafts\n ? 'general:aboutToRestoreAsDraftCount'\n : 'general:aboutToRestoreCount',\n {\n count,\n label: labelString,\n },\n )}\n {collectionConfig?.versions?.drafts && (\n <div className={`${baseClass}__checkbox`}>\n <CheckboxInput\n checked={restoreAsPublished}\n id=\"restore-as-published-many\"\n label={t('general:restoreAsPublished')}\n name=\"restore-as-published-many\"\n onToggle={(e) => setRestoreAsPublished(e.target.checked)}\n />\n </div>\n )}\n </React.Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:restoring')}\n heading={t('general:confirmRestoration')}\n modalSlug={confirmManyRestoreDrawerSlug}\n onConfirm={handleRestore}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAUpD,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,kBAAkB,CAAA;AAEtB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,
|
|
1
|
+
{"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAUpD,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,kBAAkB,CAAA;AAEtB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,qBA0JhF"}
|