@payloadcms/ui 3.0.0-beta.44 → 3.0.0-beta.45
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 +1 -1
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js +1 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js +2 -4
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +3 -7
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js +2 -4
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.js +1 -1
- package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
- package/dist/elements/PublishMany/index.js +1 -1
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/Status/index.js +1 -1
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +1 -1
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/exports/elements.d.ts +2 -5
- package/dist/exports/elements.d.ts.map +1 -1
- package/dist/exports/elements.js +2 -7
- package/dist/exports/elements.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +39 -9
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/providers/Auth/index.js +1 -1
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.js +10 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +2 -6
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Error.d.ts +3 -0
- package/dist/providers/ToastContainer/icons/Error.d.ts.map +1 -0
- package/dist/providers/ToastContainer/icons/Error.js +25 -0
- package/dist/providers/ToastContainer/icons/Error.js.map +1 -0
- package/dist/providers/ToastContainer/icons/Info.d.ts +3 -0
- package/dist/providers/ToastContainer/icons/Info.d.ts.map +1 -0
- package/dist/providers/ToastContainer/icons/Info.js +25 -0
- package/dist/providers/ToastContainer/icons/Info.js.map +1 -0
- package/dist/providers/ToastContainer/icons/Success.d.ts +3 -0
- package/dist/providers/ToastContainer/icons/Success.d.ts.map +1 -0
- package/dist/providers/ToastContainer/icons/Success.js +25 -0
- package/dist/providers/ToastContainer/icons/Success.js.map +1 -0
- package/dist/providers/ToastContainer/icons/Warning.d.ts +3 -0
- package/dist/providers/ToastContainer/icons/Warning.d.ts.map +1 -0
- package/dist/providers/ToastContainer/icons/Warning.js +25 -0
- package/dist/providers/ToastContainer/icons/Warning.js.map +1 -0
- package/dist/providers/ToastContainer/index.d.ts +3 -0
- package/dist/providers/ToastContainer/index.d.ts.map +1 -0
- package/dist/providers/ToastContainer/index.js +39 -0
- package/dist/providers/ToastContainer/index.js.map +1 -0
- package/dist/scss/app.scss +1 -1
- package/dist/scss/toasts.scss +111 -0
- package/package.json +5 -5
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { versionDefaults } from 'payload/versions';
|
|
4
4
|
import React, { useEffect, useRef, useState } from 'react';
|
|
5
|
-
import { toast } from '
|
|
5
|
+
import { toast } from 'sonner';
|
|
6
6
|
import { useAllFormFields, useForm, useFormModified, useFormSubmitted } from '../../forms/Form/context.js';
|
|
7
7
|
import { useDebounce } from '../../hooks/useDebounce.js';
|
|
8
8
|
import { useConfig } from '../../providers/Config/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"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/types'\n\nimport { versionDefaults } from 'payload/versions'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/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/formatDate.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\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> = ({\n id,\n collection,\n global: globalDoc,\n publishedDocUpdatedAt,\n}) => {\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { docConfig, getVersions, versions } = useDocumentInfo()\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, setSubmitted } = useForm()\n const submitted = useFormSubmitted()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const formModified = useFormModified()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n let interval = versionDefaults.autosaveInterval\n if (versionsConfig.drafts && versionsConfig.drafts.autosave)\n interval = versionsConfig.drafts.autosave.interval\n\n const [saving, setSaving] = useState(false)\n const [lastSaved, setLastSaved] = useState<number>()\n const debouncedFields = useDebounce(fields, interval)\n const modified = useDebounce(formModified, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n const debouncedRef = useRef(debouncedFields)\n\n debouncedRef.current = debouncedFields\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 fieldRef.current = fields\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 // When debounced fields change, autosave\n useEffect(() => {\n const abortController = new AbortController()\n let autosaveTimeout = undefined\n\n const autosave = () => {\n if (modified) {\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}?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}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n autosaveTimeout = setTimeout(async () => {\n if (modifiedRef.current) {\n const { data, valid } = {\n ...reduceFieldsToValuesWithValidation(fieldRef.current, true),\n }\n data._status = 'draft'\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission) {\n const res = await fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n signal: abortController.signal,\n })\n\n if (res.status === 200) {\n const newDate = new Date()\n setLastSaved(newDate.getTime())\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n void getVersions()\n }\n\n if (\n versionsConfig?.drafts &&\n versionsConfig?.drafts?.validate &&\n res.status === 400\n ) {\n const json = await res.json()\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n setSubmitted(true)\n setSaving(false)\n return\n }\n }\n }\n }\n\n setSaving(false)\n }, 1000)\n }\n }\n }\n\n void autosave()\n\n return () => {\n clearTimeout(autosaveTimeout)\n if (abortController.signal) abortController.abort()\n setSaving(false)\n }\n }, [\n api,\n collection,\n dispatchFields,\n getVersions,\n globalDoc,\n i18n,\n id,\n interval,\n modified,\n reportUpdate,\n serverURL,\n setSubmitted,\n versionsConfig?.drafts,\n debouncedFields,\n submitted,\n ])\n\n useEffect(() => {\n if (versions?.docs?.[0]) {\n setLastSaved(new Date(versions.docs[0].updatedAt).getTime())\n } else if (publishedDocUpdatedAt) {\n setLastSaved(new Date(publishedDocUpdatedAt).getTime())\n }\n }, [publishedDocUpdatedAt, versions])\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && lastSaved && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastSaved, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"names":["versionDefaults","React","useEffect","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","baseClass","Autosave","id","collection","global","globalDoc","publishedDocUpdatedAt","routes","api","serverURL","docConfig","getVersions","versions","reportUpdate","dispatchFields","setSubmitted","submitted","versionsConfig","fields","formModified","code","locale","i18n","t","interval","autosaveInterval","drafts","autosave","saving","setSaving","lastSaved","setLastSaved","debouncedFields","modified","fieldRef","modifiedRef","localeRef","debouncedRef","current","abortController","AbortController","autosaveTimeout","undefined","url","method","entitySlug","slug","setTimeout","data","valid","_status","skipSubmission","validate","res","fetch","body","JSON","stringify","credentials","headers","language","signal","status","newDate","Date","getTime","updatedAt","toISOString","json","Array","isArray","errors","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","clearTimeout","abort","docs","div","className","Fragment","distance","date"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"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/types'\n\nimport { versionDefaults } from 'payload/versions'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport {\n useAllFormFields,\n useForm,\n useFormModified,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/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/formatDate.js'\nimport { reduceFieldsToValuesWithValidation } from '../../utilities/reduceFieldsToValuesWithValidation.js'\nimport './index.scss'\n\nconst baseClass = 'autosave'\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> = ({\n id,\n collection,\n global: globalDoc,\n publishedDocUpdatedAt,\n}) => {\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { docConfig, getVersions, versions } = useDocumentInfo()\n const { reportUpdate } = useDocumentEvents()\n const { dispatchFields, setSubmitted } = useForm()\n const submitted = useFormSubmitted()\n const versionsConfig = docConfig?.versions\n\n const [fields] = useAllFormFields()\n const formModified = useFormModified()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n let interval = versionDefaults.autosaveInterval\n if (versionsConfig.drafts && versionsConfig.drafts.autosave)\n interval = versionsConfig.drafts.autosave.interval\n\n const [saving, setSaving] = useState(false)\n const [lastSaved, setLastSaved] = useState<number>()\n const debouncedFields = useDebounce(fields, interval)\n const modified = useDebounce(formModified, interval)\n const fieldRef = useRef(fields)\n const modifiedRef = useRef(modified)\n const localeRef = useRef(locale)\n const debouncedRef = useRef(debouncedFields)\n\n debouncedRef.current = debouncedFields\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 fieldRef.current = fields\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 // When debounced fields change, autosave\n useEffect(() => {\n const abortController = new AbortController()\n let autosaveTimeout = undefined\n\n const autosave = () => {\n if (modified) {\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}?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}?draft=true&autosave=true&locale=${localeRef.current}`\n method = 'POST'\n }\n\n if (url) {\n autosaveTimeout = setTimeout(async () => {\n if (modifiedRef.current) {\n const { data, valid } = {\n ...reduceFieldsToValuesWithValidation(fieldRef.current, true),\n }\n data._status = 'draft'\n const skipSubmission =\n submitted && !valid && versionsConfig?.drafts && versionsConfig?.drafts?.validate\n\n if (!skipSubmission) {\n const res = await fetch(url, {\n body: JSON.stringify(data),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method,\n signal: abortController.signal,\n })\n\n if (res.status === 200) {\n const newDate = new Date()\n setLastSaved(newDate.getTime())\n reportUpdate({\n id,\n entitySlug,\n updatedAt: newDate.toISOString(),\n })\n void getVersions()\n }\n\n if (\n versionsConfig?.drafts &&\n versionsConfig?.drafts?.validate &&\n res.status === 400\n ) {\n const json = await res.json()\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data)) {\n err.data.forEach((dataError) => {\n if (dataError?.field) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n toast.error(err.message || i18n.t('error:unknown'))\n })\n\n setSubmitted(true)\n setSaving(false)\n return\n }\n }\n }\n }\n\n setSaving(false)\n }, 1000)\n }\n }\n }\n\n void autosave()\n\n return () => {\n clearTimeout(autosaveTimeout)\n if (abortController.signal) abortController.abort()\n setSaving(false)\n }\n }, [\n api,\n collection,\n dispatchFields,\n getVersions,\n globalDoc,\n i18n,\n id,\n interval,\n modified,\n reportUpdate,\n serverURL,\n setSubmitted,\n versionsConfig?.drafts,\n debouncedFields,\n submitted,\n ])\n\n useEffect(() => {\n if (versions?.docs?.[0]) {\n setLastSaved(new Date(versions.docs[0].updatedAt).getTime())\n } else if (publishedDocUpdatedAt) {\n setLastSaved(new Date(publishedDocUpdatedAt).getTime())\n }\n }, [publishedDocUpdatedAt, versions])\n\n return (\n <div className={baseClass}>\n {saving && t('general:saving')}\n {!saving && lastSaved && (\n <React.Fragment>\n {t('version:lastSavedAgo', {\n distance: formatTimeToNow({ date: lastSaved, i18n }),\n })}\n </React.Fragment>\n )}\n </div>\n )\n}\n"],"names":["versionDefaults","React","useEffect","useRef","useState","toast","useAllFormFields","useForm","useFormModified","useFormSubmitted","useDebounce","useConfig","useDocumentEvents","useDocumentInfo","useLocale","useTranslation","formatTimeToNow","reduceFieldsToValuesWithValidation","baseClass","Autosave","id","collection","global","globalDoc","publishedDocUpdatedAt","routes","api","serverURL","docConfig","getVersions","versions","reportUpdate","dispatchFields","setSubmitted","submitted","versionsConfig","fields","formModified","code","locale","i18n","t","interval","autosaveInterval","drafts","autosave","saving","setSaving","lastSaved","setLastSaved","debouncedFields","modified","fieldRef","modifiedRef","localeRef","debouncedRef","current","abortController","AbortController","autosaveTimeout","undefined","url","method","entitySlug","slug","setTimeout","data","valid","_status","skipSubmission","validate","res","fetch","body","JSON","stringify","credentials","headers","language","signal","status","newDate","Date","getTime","updatedAt","toISOString","json","Array","isArray","errors","fieldErrors","nonFieldErrors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","push","forEach","dataError","field","type","error","clearTimeout","abort","docs","div","className","Fragment","distance","date"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAIA,SAASA,eAAe,QAAQ,mBAAkB;AAClD,OAAOC,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAC1D,SAASC,KAAK,QAAQ,SAAQ;AAE9B,SACEC,gBAAgB,EAChBC,OAAO,EACPC,eAAe,EACfC,gBAAgB,QACX,8BAA6B;AACpC,SAASC,WAAW,QAAQ,6BAA4B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,iBAAiB,QAAQ,0CAAyC;AAC3E,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,gCAA+B;AAC/D,SAASC,kCAAkC,QAAQ,wDAAuD;AAG1G,MAAMC,YAAY;AASlB,OAAO,MAAMC,WAA4B,CAAC,EACxCC,EAAE,EACFC,UAAU,EACVC,QAAQC,SAAS,EACjBC,qBAAqB,EACtB;IACC,MAAM,EACJC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGhB;IACJ,MAAM,EAAEiB,SAAS,EAAEC,WAAW,EAAEC,QAAQ,EAAE,GAAGjB;IAC7C,MAAM,EAAEkB,YAAY,EAAE,GAAGnB;IACzB,MAAM,EAAEoB,cAAc,EAAEC,YAAY,EAAE,GAAG1B;IACzC,MAAM2B,YAAYzB;IAClB,MAAM0B,iBAAiBP,WAAWE;IAElC,MAAM,CAACM,OAAO,GAAG9B;IACjB,MAAM+B,eAAe7B;IACrB,MAAM,EAAE8B,MAAMC,MAAM,EAAE,GAAGzB;IACzB,MAAM,EAAE0B,IAAI,EAAEC,CAAC,EAAE,GAAG1B;IAEpB,IAAI2B,WAAW1C,gBAAgB2C,gBAAgB;IAC/C,IAAIR,eAAeS,MAAM,IAAIT,eAAeS,MAAM,CAACC,QAAQ,EACzDH,WAAWP,eAAeS,MAAM,CAACC,QAAQ,CAACH,QAAQ;IAEpD,MAAM,CAACI,QAAQC,UAAU,GAAG3C,SAAS;IACrC,MAAM,CAAC4C,WAAWC,aAAa,GAAG7C;IAClC,MAAM8C,kBAAkBxC,YAAY0B,QAAQM;IAC5C,MAAMS,WAAWzC,YAAY2B,cAAcK;IAC3C,MAAMU,WAAWjD,OAAOiC;IACxB,MAAMiB,cAAclD,OAAOgD;IAC3B,MAAMG,YAAYnD,OAAOoC;IACzB,MAAMgB,eAAepD,OAAO+C;IAE5BK,aAAaC,OAAO,GAAGN;IAEvB,2CAA2C;IAC3C,8CAA8C;IAC9C,iCAAiC;IACjCE,SAASI,OAAO,GAAGpB;IAEnB,6CAA6C;IAC7C,+CAA+C;IAC/C,6BAA6B;IAC7BiB,YAAYG,OAAO,GAAGL;IAEtB,2CAA2C;IAC3C,8CAA8C;IAC9CG,UAAUE,OAAO,GAAGjB;IAEpB,yCAAyC;IACzCrC,UAAU;QACR,MAAMuD,kBAAkB,IAAIC;QAC5B,IAAIC,kBAAkBC;QAEtB,MAAMf,WAAW;YACf,IAAIM,UAAU;gBACZJ,UAAU;gBAEV,IAAIc;gBACJ,IAAIC;gBACJ,IAAIC;gBAEJ,IAAI1C,cAAcD,IAAI;oBACpB2C,aAAa1C,WAAW2C,IAAI;oBAC5BH,MAAM,CAAC,EAAElC,UAAU,EAAED,IAAI,CAAC,EAAEqC,WAAW,CAAC,EAAE3C,GAAG,iCAAiC,EAAEkC,UAAUE,OAAO,CAAC,CAAC;oBACnGM,SAAS;gBACX;gBAEA,IAAIvC,WAAW;oBACbwC,aAAaxC,UAAUyC,IAAI;oBAC3BH,MAAM,CAAC,EAAElC,UAAU,EAAED,IAAI,SAAS,EAAEqC,WAAW,iCAAiC,EAAET,UAAUE,OAAO,CAAC,CAAC;oBACrGM,SAAS;gBACX;gBAEA,IAAID,KAAK;oBACPF,kBAAkBM,WAAW;wBAC3B,IAAIZ,YAAYG,OAAO,EAAE;4BACvB,MAAM,EAAEU,IAAI,EAAEC,KAAK,EAAE,GAAG;gCACtB,GAAGlD,mCAAmCmC,SAASI,OAAO,EAAE,KAAK;4BAC/D;4BACAU,KAAKE,OAAO,GAAG;4BACf,MAAMC,iBACJnC,aAAa,CAACiC,SAAShC,gBAAgBS,UAAUT,gBAAgBS,QAAQ0B;4BAE3E,IAAI,CAACD,gBAAgB;gCACnB,MAAME,MAAM,MAAMC,MAAMX,KAAK;oCAC3BY,MAAMC,KAAKC,SAAS,CAACT;oCACrBU,aAAa;oCACbC,SAAS;wCACP,mBAAmBrC,KAAKsC,QAAQ;wCAChC,gBAAgB;oCAClB;oCACAhB;oCACAiB,QAAQtB,gBAAgBsB,MAAM;gCAChC;gCAEA,IAAIR,IAAIS,MAAM,KAAK,KAAK;oCACtB,MAAMC,UAAU,IAAIC;oCACpBjC,aAAagC,QAAQE,OAAO;oCAC5BpD,aAAa;wCACXX;wCACA2C;wCACAqB,WAAWH,QAAQI,WAAW;oCAChC;oCACA,KAAKxD;gCACP;gCAEA,IACEM,gBAAgBS,UAChBT,gBAAgBS,QAAQ0B,YACxBC,IAAIS,MAAM,KAAK,KACf;oCACA,MAAMM,OAAO,MAAMf,IAAIe,IAAI;oCAC3B,IAAIC,MAAMC,OAAO,CAACF,KAAKG,MAAM,GAAG;wCAC9B,MAAM,CAACC,aAAaC,eAAe,GAAGL,KAAKG,MAAM,CAACG,MAAM,CACtD,CAAC,CAACC,WAAWC,aAAa,EAAEC;4CAC1B,MAAMC,eAAe,EAAE;4CACvB,MAAMC,kBAAkB,EAAE;4CAE1B,IAAIF,KAAKG,SAAS;gDAChBD,gBAAgBE,IAAI,CAACJ;4CACvB;4CAEA,IAAIR,MAAMC,OAAO,CAACO,KAAK7B,OAAO;gDAC5B6B,IAAI7B,IAAI,CAACkC,OAAO,CAAC,CAACC;oDAChB,IAAIA,WAAWC,OAAO;wDACpBN,aAAaG,IAAI,CAACE;oDACpB,OAAO;wDACLJ,gBAAgBE,IAAI,CAACE;oDACvB;gDACF;4CACF;4CAEA,OAAO;gDACL;uDAAIR;uDAAcG;iDAAa;gDAC/B;uDAAIF;uDAAiBG;iDAAgB;6CACtC;wCACH,GACA;4CAAC,EAAE;4CAAE,EAAE;yCAAC;wCAGVjE,eAAe;4CACbuE,MAAM;4CACNd,QAAQC;wCACV;wCAEAC,eAAeS,OAAO,CAAC,CAACL;4CACtB1F,MAAMmG,KAAK,CAACT,IAAIG,OAAO,IAAI1D,KAAKC,CAAC,CAAC;wCACpC;wCAEAR,aAAa;wCACbc,UAAU;wCACV;oCACF;gCACF;4BACF;wBACF;wBAEAA,UAAU;oBACZ,GAAG;gBACL;YACF;QACF;QAEA,KAAKF;QAEL,OAAO;YACL4D,aAAa9C;YACb,IAAIF,gBAAgBsB,MAAM,EAAEtB,gBAAgBiD,KAAK;YACjD3D,UAAU;QACZ;IACF,GAAG;QACDrB;QACAL;QACAW;QACAH;QACAN;QACAiB;QACApB;QACAsB;QACAS;QACApB;QACAJ;QACAM;QACAE,gBAAgBS;QAChBM;QACAhB;KACD;IAEDhC,UAAU;QACR,IAAI4B,UAAU6E,MAAM,CAAC,EAAE,EAAE;YACvB1D,aAAa,IAAIiC,KAAKpD,SAAS6E,IAAI,CAAC,EAAE,CAACvB,SAAS,EAAED,OAAO;QAC3D,OAAO,IAAI3D,uBAAuB;YAChCyB,aAAa,IAAIiC,KAAK1D,uBAAuB2D,OAAO;QACtD;IACF,GAAG;QAAC3D;QAAuBM;KAAS;IAEpC,qBACE,MAAC8E;QAAIC,WAAW3F;;YACb4B,UAAUL,EAAE;YACZ,CAACK,UAAUE,2BACV,KAAC/C,MAAM6G,QAAQ;0BACZrE,EAAE,wBAAwB;oBACzBsE,UAAU/F,gBAAgB;wBAAEgG,MAAMhE;wBAAWR;oBAAK;gBACpD;;;;AAKV,EAAC"}
|
|
@@ -4,7 +4,7 @@ import { Modal, useModal } from '@faceless-ui/modal';
|
|
|
4
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
5
|
import { useRouter } from 'next/navigation.js';
|
|
6
6
|
import React, { useCallback, useState } from 'react';
|
|
7
|
-
import { toast } from '
|
|
7
|
+
import { toast } from 'sonner';
|
|
8
8
|
import { useForm } from '../../forms/Form/context.js';
|
|
9
9
|
import { useConfig } from '../../providers/Config/index.js';
|
|
10
10
|
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n buttonId?: string\n collectionSlug: SanitizedCollectionConfig['slug']\n id?: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n title?: string\n useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const { id, buttonId, collectionSlug, singularLabel, title: titleFromProps } = props\n\n const {\n routes: { admin, api },\n serverURL,\n } = useConfig()\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\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 if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n return router.push(`${admin}/collections/${collectionSlug}`)\n }\n toggleModal(modalSlug)\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n admin,\n addDefaultError,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal className={baseClass} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__template`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete}>\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useTranslation","MinimalTemplate","requests","Button","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","singularLabel","title","titleFromProps","routes","admin","api","serverURL","setModified","deleting","setDeleting","toggleModal","router","i18n","t","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","errors","forEach","e","Fragment","onClick","className","slug","h1","p","elements","children","strong","i18nKey","variables","div","buttonStyle","undefined","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { Modal, useModal } from '@faceless-ui/modal';
|
|
|
4
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
5
|
import { useRouter } from 'next/navigation.js';
|
|
6
6
|
import React, { useCallback, useState } from 'react';
|
|
7
|
-
import { toast } from '
|
|
7
|
+
import { toast } from 'sonner';
|
|
8
8
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
9
9
|
import { useConfig } from '../../providers/Config/index.js';
|
|
10
10
|
import { useRouteCache } from '../../providers/RouteCache/index.js';
|
|
@@ -47,9 +47,7 @@ export const DeleteMany = (props)=>{
|
|
|
47
47
|
const json = await res.json();
|
|
48
48
|
toggleModal(modalSlug);
|
|
49
49
|
if (res.status < 400) {
|
|
50
|
-
toast.success(json.message || t('general:deletedSuccessfully')
|
|
51
|
-
autoClose: 3000
|
|
52
|
-
});
|
|
50
|
+
toast.success(json.message || t('general:deletedSuccessfully'));
|
|
53
51
|
toggleAll();
|
|
54
52
|
router.replace(stringifyParams({
|
|
55
53
|
params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-documents'\n\nexport type Props = {\n collection: ClientCollectionConfig\n title?: string\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { collection: { slug, labels: { plural } } = {} } = props\n\n const { permissions } = useAuth()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { toggleModal } = useModal()\n const { count, getQueryParams, selectAll, toggleAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [deleting, setDeleting] = useState(false)\n const router = useRouter()\n const { stringifyParams } = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete?.permission\n\n const modalSlug = `delete-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n await requests\n .delete(`${serverURL}${api}/${slug}${getQueryParams()}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n if (res.status < 400) {\n toast.success(json.message || t('general:deletedSuccessfully'))\n toggleAll()\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n replace: true,\n }),\n )\n clearRouteCache()\n return null\n }\n\n if (json.errors) {\n toast.error(json.message)\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n.language,\n modalSlug,\n router,\n selectAll,\n serverURL,\n slug,\n stringifyParams,\n t,\n toggleAll,\n toggleModal,\n clearRouteCache,\n ])\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__template`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>{t('general:aboutToDeleteCount', { count, label: getTranslation(plural, i18n) })}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-delete\" onClick={deleting ? undefined : handleDelete}>\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","MinimalTemplate","requests","Button","Pill","baseClass","DeleteMany","props","collection","slug","labels","plural","permissions","routes","api","serverURL","toggleModal","count","getQueryParams","selectAll","toggleAll","i18n","t","deleting","setDeleting","router","stringifyParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","permission","modalSlug","addDefaultError","error","handleDelete","headers","language","then","res","json","status","success","message","replace","params","page","undefined","errors","e","None","Fragment","className","onClick","h1","p","label","buttonStyle","id","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import { useModal } from '@faceless-ui/modal';
|
|
4
4
|
import queryString from 'qs';
|
|
5
5
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
6
|
-
import { toast } from '
|
|
6
|
+
import { toast } from 'sonner';
|
|
7
7
|
import { useRelatedCollections } from '../../fields/Relationship/AddNew/useRelatedCollections.js';
|
|
8
8
|
import { X } from '../../icons/X/index.js';
|
|
9
9
|
import { useComponentMap } from '../../providers/ComponentMap/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport queryString from 'qs'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport queryString from 'qs'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { useRelatedCollections } from '../../fields/Relationship/AddNew/useRelatedCollections.js'\nimport { X } from '../../icons/X/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider, useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useFormQueryParams } from '../../providers/FormQueryParams/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport { RenderTitle } from '../RenderTitle/index.js'\nimport { baseClass } from './index.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n Header,\n collectionSlug,\n drawerSlug,\n onSave: onSaveFromProps,\n}) => {\n const config = useConfig()\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const { closeModal, modalState, toggleModal } = useModal()\n const locale = useLocale()\n const { t } = useTranslation()\n const [docID, setDocID] = useState(existingDocID)\n const [isOpen, setIsOpen] = useState(false)\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n const { formQueryParams } = useFormQueryParams()\n const formattedQueryParams = queryString.stringify(formQueryParams)\n\n const { componentMap } = useComponentMap()\n\n const { Edit } = componentMap[`${collectionSlug ? 'collections' : 'globals'}`][collectionSlug]\n const isEditing = Boolean(docID)\n const apiURL = docID\n ? `${serverURL}${apiRoute}/${collectionSlug}/${docID}?locale=${locale.code}`\n : null\n const action = `${serverURL}${apiRoute}/${collectionSlug}${\n isEditing ? `/${docID}` : ''\n }?${formattedQueryParams}`\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const onLoadError = React.useCallback(\n (data) => {\n if (isOpen) {\n closeModal(drawerSlug)\n toast.error(data.errors?.[0].message || t('error:unspecific'))\n }\n },\n [closeModal, drawerSlug, isOpen, t],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setDocID(args.doc.id)\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig],\n )\n\n return (\n <DocumentInfoProvider\n BeforeDocument={\n <Gutter className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-content`}>\n <h2 className={`${baseClass}__header-text`}>\n {Header || <RenderTitle element=\"span\" />}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header-close`}\n onClick={() => toggleModal(drawerSlug)}\n type=\"button\"\n >\n <X />\n </button>\n </div>\n <DocumentTitle />\n </Gutter>\n }\n action={action}\n apiURL={apiURL}\n collectionSlug={collectionConfig.slug}\n disableActions\n disableLeaveWithoutSaving\n id={docID}\n isEditing={isEditing}\n onLoadError={onLoadError}\n onSave={onSave}\n >\n {Edit}\n </DocumentInfoProvider>\n )\n}\n\nconst DocumentTitle: React.FC = () => {\n const { id, title } = useDocumentInfo()\n return id && id !== title ? <IDLabel id={id.toString()} /> : null\n}\n"],"names":["useModal","queryString","React","useCallback","useEffect","useState","toast","useRelatedCollections","X","useComponentMap","useConfig","DocumentInfoProvider","useDocumentInfo","useFormQueryParams","useLocale","useTranslation","Gutter","IDLabel","RenderTitle","baseClass","DocumentDrawerContent","id","existingDocID","Header","collectionSlug","drawerSlug","onSave","onSaveFromProps","config","routes","api","apiRoute","serverURL","closeModal","modalState","toggleModal","locale","t","docID","setDocID","isOpen","setIsOpen","collectionConfig","formQueryParams","formattedQueryParams","stringify","componentMap","Edit","isEditing","Boolean","apiURL","code","action","onLoadError","data","error","errors","message","args","doc","BeforeDocument","className","div","h2","element","button","aria-label","onClick","type","DocumentTitle","slug","disableActions","disableLeaveWithoutSaving","title","toString"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAK9D,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAK9D,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsG7C,CAAA"}
|
|
@@ -4,7 +4,7 @@ import { Modal, useModal } from '@faceless-ui/modal';
|
|
|
4
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
5
|
import { useRouter } from 'next/navigation.js';
|
|
6
6
|
import React, { useCallback, useState } from 'react';
|
|
7
|
-
import { toast } from '
|
|
7
|
+
import { toast } from 'sonner';
|
|
8
8
|
import { useForm, useFormModified } from '../../forms/Form/context.js';
|
|
9
9
|
import { useConfig } from '../../providers/Config/index.js';
|
|
10
10
|
import { useLocale } from '../../providers/Locale/index.js';
|
|
@@ -43,17 +43,13 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
|
|
|
43
43
|
if (res.status < 400) {
|
|
44
44
|
toast.success(message || t('general:successfullyDuplicated', {
|
|
45
45
|
label: getTranslation(singularLabel, i18n)
|
|
46
|
-
})
|
|
47
|
-
autoClose: 3000
|
|
48
|
-
});
|
|
46
|
+
}));
|
|
49
47
|
setModified(false);
|
|
50
48
|
router.push(`${admin}/collections/${slug}/${doc.id}?locale=${locale.code}`);
|
|
51
49
|
} else {
|
|
52
50
|
toast.error(errors?.[0].message || message || t('error:unspecific', {
|
|
53
51
|
label: getTranslation(singularLabel, i18n)
|
|
54
|
-
})
|
|
55
|
-
autoClose: 5000
|
|
56
|
-
});
|
|
52
|
+
}));
|
|
57
53
|
}
|
|
58
54
|
});
|
|
59
55
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n id: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({ id, slug, singularLabel }) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const {\n routes: { admin },\n } = useConfig()\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(`${serverURL}${api}/${slug}/${id}/duplicate?locale=${locale.code}`, {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n })\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n setModified(false)\n router.push(`${admin}/collections/${slug}/${doc.id}?locale=${locale.code}`)\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n api,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n setModified,\n router,\n admin,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={confirm}>\n {t('general:duplicateWithoutSaving')}\n </Button>\n </MinimalTemplate>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useLocale","useTranslation","MinimalTemplate","requests","Button","PopupList","baseClass","DuplicateDocument","id","slug","singularLabel","router","modified","toggleModal","locale","setModified","routes","api","serverURL","admin","hasClicked","setHasClicked","i18n","t","modalSlug","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","error","confirm","Fragment","onClick","className","h1","p","buttonStyle","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Modal, useModal } from '@faceless-ui/modal';
|
|
4
4
|
import React from 'react';
|
|
5
|
-
import { toast } from '
|
|
5
|
+
import { toast } from 'sonner';
|
|
6
6
|
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
7
7
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
8
8
|
import { MinimalTemplate } from '../../templates/Minimal/index.js';
|
|
@@ -18,9 +18,7 @@ export const GenerateConfirmation = (props)=>{
|
|
|
18
18
|
const handleGenerate = ()=>{
|
|
19
19
|
setKey();
|
|
20
20
|
toggleModal(modalSlug);
|
|
21
|
-
toast.success(t('authentication:newAPIKeyGenerated')
|
|
22
|
-
autoClose: 3000
|
|
23
|
-
});
|
|
21
|
+
toast.success(t('authentication:newAPIKeyGenerated'));
|
|
24
22
|
highlightField(true);
|
|
25
23
|
};
|
|
26
24
|
return /*#__PURE__*/ _jsxs(React.Fragment, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/GenerateConfirmation/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/GenerateConfirmation/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { Button } from '../Button/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'generate-confirmation'\n\nexport type GenerateConfirmationProps = {\n highlightField: (Boolean) => void\n setKey: () => void\n}\n\nexport const GenerateConfirmation: React.FC<GenerateConfirmationProps> = (props) => {\n const { highlightField, setKey } = props\n\n const { id } = useDocumentInfo()\n const { toggleModal } = useModal()\n const { t } = useTranslation()\n\n const modalSlug = `generate-confirmation-${id}`\n\n const handleGenerate = () => {\n setKey()\n toggleModal(modalSlug)\n toast.success(t('authentication:newAPIKeyGenerated'))\n highlightField(true)\n }\n\n return (\n <React.Fragment>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n size=\"small\"\n >\n {t('authentication:generateNewAPIKey')}\n </Button>\n <Modal className={baseClass} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__template`}>\n <h1>{t('authentication:confirmGeneration')}</h1>\n <p>\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"authentication:generatingNewAPIKeyWillInvalidate\"\n t={t}\n />\n </p>\n\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={handleGenerate}>{t('authentication:generate')}</Button>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","React","toast","useDocumentInfo","useTranslation","MinimalTemplate","Button","Translation","baseClass","GenerateConfirmation","props","highlightField","setKey","id","toggleModal","t","modalSlug","handleGenerate","success","Fragment","buttonStyle","onClick","size","className","slug","h1","p","elements","children","strong","i18nKey","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,KAAK,EAAEC,QAAQ,QAAQ,qBAAoB;AACpD,OAAOC,WAAW,QAAO;AACzB,SAASC,KAAK,QAAQ,SAAQ;AAE9B,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,WAAW,QAAQ,0BAAyB;AAGrD,MAAMC,YAAY;AAOlB,OAAO,MAAMC,uBAA4D,CAACC;IACxE,MAAM,EAAEC,cAAc,EAAEC,MAAM,EAAE,GAAGF;IAEnC,MAAM,EAAEG,EAAE,EAAE,GAAGV;IACf,MAAM,EAAEW,WAAW,EAAE,GAAGd;IACxB,MAAM,EAAEe,CAAC,EAAE,GAAGX;IAEd,MAAMY,YAAY,CAAC,sBAAsB,EAAEH,GAAG,CAAC;IAE/C,MAAMI,iBAAiB;QACrBL;QACAE,YAAYE;QACZd,MAAMgB,OAAO,CAACH,EAAE;QAChBJ,eAAe;IACjB;IAEA,qBACE,MAACV,MAAMkB,QAAQ;;0BACb,KAACb;gBACCc,aAAY;gBACZC,SAAS;oBACPP,YAAYE;gBACd;gBACAM,MAAK;0BAEJP,EAAE;;0BAEL,KAAChB;gBAAMwB,WAAWf;gBAAWgB,MAAMR;0BACjC,cAAA,MAACX;oBAAgBkB,WAAW,CAAC,EAAEf,UAAU,UAAU,CAAC;;sCAClD,KAACiB;sCAAIV,EAAE;;sCACP,KAACW;sCACC,cAAA,KAACnB;gCACCoB,UAAU;oCACR,GAAG,CAAC,EAAEC,QAAQ,EAAE,iBAAK,KAACC;sDAAQD;;gCAChC;gCACAE,SAAQ;gCACRf,GAAGA;;;sCAIP,KAACT;4BACCc,aAAY;4BACZC,SAAS;gCACPP,YAAYE;4BACd;4BACAe,MAAK;sCAEJhB,EAAE;;sCAEL,KAACT;4BAAOe,SAASJ;sCAAiBF,EAAE;;;;;;;AAK9C,EAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useCallback, useRef, useState } from 'react';
|
|
3
|
-
import { toast } from '
|
|
3
|
+
import { toast } from 'sonner';
|
|
4
4
|
import { useConfig } from '../../providers/Config/index.js';
|
|
5
5
|
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
6
6
|
import { useLocale } from '../../providers/Locale/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/PreviewButton/usePreviewURL.tsx"],"sourcesContent":["'use client'\nimport { useCallback, useRef, useState } from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/PreviewButton/usePreviewURL.tsx"],"sourcesContent":["'use client'\nimport { useCallback, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\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'\n\nexport const usePreviewURL = (): {\n generatePreviewURL: ({ openPreviewWindow }: { openPreviewWindow?: boolean }) => void\n isLoading: boolean\n label: string\n previewURL: string\n} => {\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const [isLoading, setIsLoading] = useState(false)\n const [previewURL, setPreviewURL] = useState('')\n const { code: locale } = useLocale()\n\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n\n const { t } = useTranslation()\n\n const isGeneratingPreviewURL = useRef(false)\n\n // we need to regenerate the preview URL every time the button is clicked\n // to do this we need to fetch the document data fresh from the API\n // this will ensure the latest data is used when generating the preview URL\n const generatePreviewURL = useCallback(\n async ({ openPreviewWindow = false }) => {\n if (isGeneratingPreviewURL.current) return\n isGeneratingPreviewURL.current = true\n\n try {\n setIsLoading(true)\n\n let url = `${serverURL}${api}`\n if (collectionSlug) url = `${url}/${collectionSlug}/${id}/preview`\n if (globalSlug) url = `${url}/globals/${globalSlug}/preview`\n\n const res = await fetch(`${url}${locale ? `?locale=${locale}` : ''}`)\n\n if (!res.ok) throw new Error()\n const newPreviewURL = await res.json()\n if (!newPreviewURL) throw new Error()\n setPreviewURL(newPreviewURL)\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n if (openPreviewWindow) window.open(newPreviewURL, '_blank')\n } catch (err) {\n setIsLoading(false)\n isGeneratingPreviewURL.current = false\n toast.error(t('error:previewing'))\n }\n },\n [serverURL, api, collectionSlug, globalSlug, id, locale, t],\n )\n\n return {\n generatePreviewURL,\n isLoading,\n label: isLoading ? t('general:loading') : t('version:preview'),\n previewURL,\n }\n}\n"],"names":["useCallback","useRef","useState","toast","useConfig","useDocumentInfo","useLocale","useTranslation","usePreviewURL","id","collectionSlug","globalSlug","isLoading","setIsLoading","previewURL","setPreviewURL","code","locale","routes","api","serverURL","t","isGeneratingPreviewURL","generatePreviewURL","openPreviewWindow","current","url","res","fetch","ok","Error","newPreviewURL","json","window","open","err","error","label"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,SAASA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AACrD,SAASC,KAAK,QAAQ,SAAQ;AAE9B,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAErE,OAAO,MAAMC,gBAAgB;IAM3B,MAAM,EAAEC,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAE,GAAGN;IAE3C,MAAM,CAACO,WAAWC,aAAa,GAAGX,SAAS;IAC3C,MAAM,CAACY,YAAYC,cAAc,GAAGb,SAAS;IAC7C,MAAM,EAAEc,MAAMC,MAAM,EAAE,GAAGX;IAEzB,MAAM,EACJY,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGhB;IAEJ,MAAM,EAAEiB,CAAC,EAAE,GAAGd;IAEd,MAAMe,yBAAyBrB,OAAO;IAEtC,yEAAyE;IACzE,mEAAmE;IACnE,2EAA2E;IAC3E,MAAMsB,qBAAqBvB,YACzB,OAAO,EAAEwB,oBAAoB,KAAK,EAAE;QAClC,IAAIF,uBAAuBG,OAAO,EAAE;QACpCH,uBAAuBG,OAAO,GAAG;QAEjC,IAAI;YACFZ,aAAa;YAEb,IAAIa,MAAM,CAAC,EAAEN,UAAU,EAAED,IAAI,CAAC;YAC9B,IAAIT,gBAAgBgB,MAAM,CAAC,EAAEA,IAAI,CAAC,EAAEhB,eAAe,CAAC,EAAED,GAAG,QAAQ,CAAC;YAClE,IAAIE,YAAYe,MAAM,CAAC,EAAEA,IAAI,SAAS,EAAEf,WAAW,QAAQ,CAAC;YAE5D,MAAMgB,MAAM,MAAMC,MAAM,CAAC,EAAEF,IAAI,EAAET,SAAS,CAAC,QAAQ,EAAEA,OAAO,CAAC,GAAG,GAAG,CAAC;YAEpE,IAAI,CAACU,IAAIE,EAAE,EAAE,MAAM,IAAIC;YACvB,MAAMC,gBAAgB,MAAMJ,IAAIK,IAAI;YACpC,IAAI,CAACD,eAAe,MAAM,IAAID;YAC9Bf,cAAcgB;YACdlB,aAAa;YACbS,uBAAuBG,OAAO,GAAG;YACjC,IAAID,mBAAmBS,OAAOC,IAAI,CAACH,eAAe;QACpD,EAAE,OAAOI,KAAK;YACZtB,aAAa;YACbS,uBAAuBG,OAAO,GAAG;YACjCtB,MAAMiC,KAAK,CAACf,EAAE;QAChB;IACF,GACA;QAACD;QAAWD;QAAKT;QAAgBC;QAAYF;QAAIQ;QAAQI;KAAE;IAG7D,OAAO;QACLE;QACAX;QACAyB,OAAOzB,YAAYS,EAAE,qBAAqBA,EAAE;QAC5CP;IACF;AACF,EAAC"}
|
|
@@ -4,7 +4,7 @@ import { Modal, useModal } from '@faceless-ui/modal';
|
|
|
4
4
|
import { getTranslation } from '@payloadcms/translations';
|
|
5
5
|
import { useRouter } from 'next/navigation.js';
|
|
6
6
|
import React, { useCallback, useState } from 'react';
|
|
7
|
-
import { toast } from '
|
|
7
|
+
import { toast } from 'sonner';
|
|
8
8
|
import { useAuth } from '../../providers/Auth/index.js';
|
|
9
9
|
import { useConfig } from '../../providers/Config/index.js';
|
|
10
10
|
import { useRouteCache } from '../../providers/RouteCache/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/PublishMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from '
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/PublishMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'publish-many'\n\nexport type PublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const PublishMany: React.FC<PublishManyProps> = (props) => {\n const { clearRouteCache } = useRouteCache()\n\n const { collection: { slug, labels: { plural }, versions } = {} } = props\n\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const router = useRouter()\n const { stringifyParams } = useSearchParams()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `publish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handlePublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(\n `${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'published' } })}&draft=true`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n if (res.status < 400) {\n toast.success(t('general:updatedSuccessfully'))\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n\n clearRouteCache()\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n.language,\n modalSlug,\n selectAll,\n serverURL,\n slug,\n t,\n toggleModal,\n router,\n stringifyParams,\n clearRouteCache,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:publish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__template`}>\n <h1>{t('version:confirmPublish')}</h1>\n <p>{t('version:aboutToPublishSelection', { label: getTranslation(plural, i18n) })}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-publish\" onClick={submitted ? undefined : handlePublish}>\n {submitted ? t('version:publishing') : t('general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","MinimalTemplate","requests","Button","Pill","baseClass","PublishMany","props","clearRouteCache","collection","slug","labels","plural","versions","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","router","stringifyParams","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handlePublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","status","success","replace","params","page","undefined","errors","forEach","message","e","drafts","None","Fragment","className","onClick","h1","p","label","buttonStyle","id","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Modal, useModal } from '@faceless-ui/modal';
|
|
4
4
|
import React, { useCallback, useState } from 'react';
|
|
5
|
-
import { toast } from '
|
|
5
|
+
import { toast } from 'sonner';
|
|
6
6
|
import { useForm } from '../../forms/Form/context.js';
|
|
7
7
|
import { useConfig } from '../../providers/Config/index.js';
|
|
8
8
|
import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n getVersions,\n globalSlug,\n publishedDoc,\n unpublishedVersions,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const [processing, setProcessing] = useState(false)\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersions?.docs?.length > 0 && publishedDoc) {\n statusToRender = 'changed'\n } else if (!publishedDoc) {\n statusToRender = 'draft'\n } else if (publishedDoc && unpublishedVersions?.docs?.length <= 1) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n setProcessing(true)\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (action === 'revert') {\n body = publishedDoc\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null`\n method = 'patch'\n }\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null`\n method = 'post'\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n getVersions()\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n\n setProcessing(false)\n if (action === 'revert') {\n toggleModal(revertModalSlug)\n }\n\n if (action === 'unpublish') {\n toggleModal(unPublishModalSlug)\n }\n },\n [\n api,\n collectionSlug,\n getVersions,\n globalSlug,\n i18n.language,\n id,\n locale,\n publishedDoc,\n resetForm,\n revertModalSlug,\n serverURL,\n t,\n toggleModal,\n unPublishModalSlug,\n ],\n )\n\n const canUpdate = docPermissions?.update?.permission\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={unPublishModalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublish')}</p>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(unPublishModalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : () => performAction('unpublish')}>\n {t(processing ? 'version:unpublishing' : 'general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={revertModalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('version:confirmRevertToSaved')}</h1>\n <p>{t('version:aboutToRevertToPublished')}</p>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(revertModalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"action-revert-to-published-confirm\"\n onClick={processing ? undefined : () => performAction('revert')}\n >\n {t(processing ? 'version:reverting' : 'general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"names":["Modal","useModal","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","MinimalTemplate","requests","Button","baseClass","Status","id","collectionSlug","docPermissions","getVersions","globalSlug","publishedDoc","unpublishedVersions","toggleModal","routes","api","serverURL","processing","setProcessing","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","docs","length","performAction","action","url","method","body","_status","res","JSON","stringify","headers","language","status","data","json","result","doc","success","message","error","canUpdate","update","permission","div","className","title","span","Fragment","buttonStyle","onClick","slug","h1","p","undefined","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n getVersions,\n globalSlug,\n publishedDoc,\n unpublishedVersions,\n } = useDocumentInfo()\n const { toggleModal } = useModal()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const [processing, setProcessing] = useState(false)\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersions?.docs?.length > 0 && publishedDoc) {\n statusToRender = 'changed'\n } else if (!publishedDoc) {\n statusToRender = 'draft'\n } else if (publishedDoc && unpublishedVersions?.docs?.length <= 1) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n setProcessing(true)\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (action === 'revert') {\n body = publishedDoc\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null`\n method = 'patch'\n }\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null`\n method = 'post'\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n getVersions()\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n\n setProcessing(false)\n if (action === 'revert') {\n toggleModal(revertModalSlug)\n }\n\n if (action === 'unpublish') {\n toggleModal(unPublishModalSlug)\n }\n },\n [\n api,\n collectionSlug,\n getVersions,\n globalSlug,\n i18n.language,\n id,\n locale,\n publishedDoc,\n resetForm,\n revertModalSlug,\n serverURL,\n t,\n toggleModal,\n unPublishModalSlug,\n ],\n )\n\n const canUpdate = docPermissions?.update?.permission\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}: </span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={unPublishModalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('version:confirmUnpublish')}</h1>\n <p>{t('version:aboutToUnpublish')}</p>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(unPublishModalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={processing ? undefined : () => performAction('unpublish')}>\n {t(processing ? 'version:unpublishing' : 'general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n — \n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <Modal className={`${baseClass}__modal`} slug={revertModalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('version:confirmRevertToSaved')}</h1>\n <p>{t('version:aboutToRevertToPublished')}</p>\n <Button\n buttonStyle=\"secondary\"\n onClick={processing ? undefined : () => toggleModal(revertModalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"action-revert-to-published-confirm\"\n onClick={processing ? undefined : () => performAction('revert')}\n >\n {t(processing ? 'version:reverting' : 'general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"names":["Modal","useModal","React","useCallback","useState","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","MinimalTemplate","requests","Button","baseClass","Status","id","collectionSlug","docPermissions","getVersions","globalSlug","publishedDoc","unpublishedVersions","toggleModal","routes","api","serverURL","processing","setProcessing","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","docs","length","performAction","action","url","method","body","_status","res","JSON","stringify","headers","language","status","data","json","result","doc","success","message","error","canUpdate","update","permission","div","className","title","span","Fragment","buttonStyle","onClick","slug","h1","p","undefined","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAYpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAI3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,sBAAsB,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAkHtD,CAAA"}
|