@payloadcms/next 3.35.0-canary.0 → 3.35.0-internal.b3d367c
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/prod/styles.css +1 -1
- package/dist/views/Version/Default/SetStepNav.d.ts +2 -2
- package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
- package/dist/views/Version/Default/SetStepNav.js +4 -5
- package/dist/views/Version/Default/SetStepNav.js.map +1 -1
- package/dist/views/Version/Default/index.d.ts.map +1 -1
- package/dist/views/Version/Default/index.js +332 -127
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/Default/index.scss +102 -32
- package/dist/views/Version/Default/types.d.ts +12 -8
- package/dist/views/Version/Default/types.d.ts.map +1 -1
- package/dist/views/Version/Default/types.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +4 -4
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +32 -33
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.scss +30 -3
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts +6 -1
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js +21 -17
- package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts +4 -3
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +80 -55
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +11 -11
- package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts +4 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +78 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.scss +4 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +11 -11
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.scss +0 -10
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +20 -20
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +3 -5
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +49 -58
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +0 -11
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +39 -45
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +0 -11
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +37 -37
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.scss +0 -11
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +77 -60
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +0 -11
- package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js +2 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/index.js +1 -0
- package/dist/views/Version/RenderFieldsToDiff/index.js.map +1 -1
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +1 -1
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/Restore/index.scss +6 -1
- package/dist/views/Version/SelectComparison/VersionPillLabel.d.ts +6 -0
- package/dist/views/Version/SelectComparison/VersionPillLabel.d.ts.map +1 -0
- package/dist/views/Version/SelectComparison/VersionPillLabel.js +70 -0
- package/dist/views/Version/SelectComparison/VersionPillLabel.js.map +1 -0
- package/dist/views/Version/SelectComparison/formatVersionPill.d.ts +8 -0
- package/dist/views/Version/SelectComparison/formatVersionPill.d.ts.map +1 -0
- package/dist/views/Version/SelectComparison/formatVersionPill.js +24 -0
- package/dist/views/Version/SelectComparison/formatVersionPill.js.map +1 -0
- package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +26 -68
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.scss +0 -4
- package/dist/views/Version/SelectComparison/types.d.ts +4 -4
- package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/types.js.map +1 -1
- package/dist/views/Version/SelectLocales/index.d.ts +9 -2
- package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
- package/dist/views/Version/SelectLocales/index.js +33 -60
- package/dist/views/Version/SelectLocales/index.js.map +1 -1
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +105 -56
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +4 -4
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/getLatestVersion.d.ts +2 -2
- package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
- package/dist/views/Versions/getLatestVersion.js.map +1 -1
- package/package.json +7 -8
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.d.ts +0 -9
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.d.ts.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js +0 -23
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/DiffViewer/index.js.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.d.ts +0 -9
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.d.ts.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js +0 -23
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/DiffViewer/index.js.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.d.ts +0 -7
- package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.d.ts.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js +0 -7
- package/dist/views/Version/RenderFieldsToDiff/fields/diffMethods.js.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/styles.d.ts +0 -3
- package/dist/views/Version/RenderFieldsToDiff/fields/styles.d.ts.map +0 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/styles.js +0 -37
- package/dist/views/Version/RenderFieldsToDiff/fields/styles.js.map +0 -1
- package/dist/views/Version/SelectLocales/index.scss +0 -9
- package/dist/views/Version/SelectLocales/types.d.ts +0 -7
- package/dist/views/Version/SelectLocales/types.d.ts.map +0 -1
- package/dist/views/Version/SelectLocales/types.js +0 -2
- package/dist/views/Version/SelectLocales/types.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Collapsible } from './Collapsible/index.js';
|
|
2
|
+
import { DateDiffComponent } from './Date/index.js';
|
|
2
3
|
import { Group } from './Group/index.js';
|
|
3
4
|
import { Iterable } from './Iterable/index.js';
|
|
4
5
|
import { Relationship } from './Relationship/index.js';
|
|
@@ -12,7 +13,7 @@ export const diffComponents = {
|
|
|
12
13
|
checkbox: Text,
|
|
13
14
|
code: Text,
|
|
14
15
|
collapsible: Collapsible,
|
|
15
|
-
date:
|
|
16
|
+
date: DateDiffComponent,
|
|
16
17
|
email: Text,
|
|
17
18
|
group: Group,
|
|
18
19
|
join: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Collapsible","Group","Iterable","Relationship","Row","Select","Tabs","Text","diffComponents","array","blocks","checkbox","code","collapsible","date","email","group","join","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","ui","upload"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import type { FieldDiffClientProps, FieldTypes } from 'payload'\n\nimport { Collapsible } from './Collapsible/index.js'\nimport { Group } from './Group/index.js'\nimport { Iterable } from './Iterable/index.js'\nimport { Relationship } from './Relationship/index.js'\nimport { Row } from './Row/index.js'\nimport { Select } from './Select/index.js'\nimport { Tabs } from './Tabs/index.js'\nimport { Text } from './Text/index.js'\n\nexport const diffComponents: Record<FieldTypes, React.ComponentType<FieldDiffClientProps>> = {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Collapsible,\n date:
|
|
1
|
+
{"version":3,"file":"index.js","names":["Collapsible","DateDiffComponent","Group","Iterable","Relationship","Row","Select","Tabs","Text","diffComponents","array","blocks","checkbox","code","collapsible","date","email","group","join","json","number","point","radio","relationship","richText","row","select","tabs","text","textarea","ui","upload"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/fields/index.tsx"],"sourcesContent":["import type { FieldDiffClientProps, FieldTypes } from 'payload'\n\nimport { Collapsible } from './Collapsible/index.js'\nimport { DateDiffComponent } from './Date/index.js'\nimport { Group } from './Group/index.js'\nimport { Iterable } from './Iterable/index.js'\nimport { Relationship } from './Relationship/index.js'\nimport { Row } from './Row/index.js'\nimport { Select } from './Select/index.js'\nimport { Tabs } from './Tabs/index.js'\nimport { Text } from './Text/index.js'\n\nexport const diffComponents: Record<FieldTypes, React.ComponentType<FieldDiffClientProps>> = {\n array: Iterable,\n blocks: Iterable,\n checkbox: Text,\n code: Text,\n collapsible: Collapsible,\n date: DateDiffComponent,\n email: Text,\n group: Group,\n join: null,\n json: Text,\n number: Text,\n point: Text,\n radio: Select,\n relationship: Relationship,\n richText: Text,\n row: Row,\n select: Select,\n tabs: Tabs,\n text: Text,\n textarea: Text,\n ui: null,\n upload: Relationship,\n}\n"],"mappings":"AAEA,SAASA,WAAW,QAAQ;AAC5B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,KAAK,QAAQ;AACtB,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,SAASC,GAAG,QAAQ;AACpB,SAASC,MAAM,QAAQ;AACvB,SAASC,IAAI,QAAQ;AACrB,SAASC,IAAI,QAAQ;AAErB,OAAO,MAAMC,cAAA,GAAgF;EAC3FC,KAAA,EAAOP,QAAA;EACPQ,MAAA,EAAQR,QAAA;EACRS,QAAA,EAAUJ,IAAA;EACVK,IAAA,EAAML,IAAA;EACNM,WAAA,EAAad,WAAA;EACbe,IAAA,EAAMd,iBAAA;EACNe,KAAA,EAAOR,IAAA;EACPS,KAAA,EAAOf,KAAA;EACPgB,IAAA,EAAM;EACNC,IAAA,EAAMX,IAAA;EACNY,MAAA,EAAQZ,IAAA;EACRa,KAAA,EAAOb,IAAA;EACPc,KAAA,EAAOhB,MAAA;EACPiB,YAAA,EAAcnB,YAAA;EACdoB,QAAA,EAAUhB,IAAA;EACViB,GAAA,EAAKpB,GAAA;EACLqB,MAAA,EAAQpB,MAAA;EACRqB,IAAA,EAAMpB,IAAA;EACNqB,IAAA,EAAMpB,IAAA;EACNqB,QAAA,EAAUrB,IAAA;EACVsB,EAAA,EAAI;EACJC,MAAA,EAAQ3B;AACV","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["buildVersionFields","RenderVersionFieldsToDiff","RenderDiff","args","versionFields","_jsx"],"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["import { buildVersionFields, type BuildVersionFieldsArgs } from './buildVersionFields.js'\nimport { RenderVersionFieldsToDiff } from './RenderVersionFieldsToDiff.js'\n\nexport const RenderDiff = (args: BuildVersionFieldsArgs): React.ReactNode => {\n const { versionFields } = buildVersionFields(args)\n\n return <RenderVersionFieldsToDiff versionFields={versionFields} />\n}\n"],"mappings":";AAAA,SAASA,kBAAkB,QAAqC;AAChE,SAASC,yBAAyB,QAAQ;AAE1C,OAAO,MAAMC,UAAA,GAAcC,IAAA;EACzB,MAAM;IAAEC;EAAa,CAAE,GAAGJ,kBAAA,CAAmBG,IAAA;EAE7C,oBAAOE,IAAA,CAACJ,yBAAA;
|
|
1
|
+
{"version":3,"file":"index.js","names":["buildVersionFields","RenderVersionFieldsToDiff","RenderDiff","args","versionFields","_jsx","parent"],"sources":["../../../../src/views/Version/RenderFieldsToDiff/index.tsx"],"sourcesContent":["import { buildVersionFields, type BuildVersionFieldsArgs } from './buildVersionFields.js'\nimport { RenderVersionFieldsToDiff } from './RenderVersionFieldsToDiff.js'\n\nexport const RenderDiff = (args: BuildVersionFieldsArgs): React.ReactNode => {\n const { versionFields } = buildVersionFields(args)\n\n return <RenderVersionFieldsToDiff parent={true} versionFields={versionFields} />\n}\n"],"mappings":";AAAA,SAASA,kBAAkB,QAAqC;AAChE,SAASC,yBAAyB,QAAQ;AAE1C,OAAO,MAAMC,UAAA,GAAcC,IAAA;EACzB,MAAM;IAAEC;EAAa,CAAE,GAAGJ,kBAAA,CAAmBG,IAAA;EAE7C,oBAAOE,IAAA,CAACJ,yBAAA;IAA0BK,MAAA,EAAQ;IAAMF,aAAA,EAAeA;;AACjE","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/Restore/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAA0C,MAAM,OAAO,CAAA;AAE9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEvC,OAAO,cAAc,CAAA;AAKrB,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsG5B,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -84,7 +84,7 @@ const Restore = ({
|
|
|
84
84
|
className: [baseClass, className].filter(Boolean).join(' '),
|
|
85
85
|
children: /*#__PURE__*/_jsx(Button, {
|
|
86
86
|
buttonStyle: "pill",
|
|
87
|
-
className: [canRestoreAsDraft && `${baseClass}
|
|
87
|
+
className: [canRestoreAsDraft && `${baseClass}__restore-as-draft-button`].filter(Boolean).join(' '),
|
|
88
88
|
onClick: () => toggleModal(modalSlug),
|
|
89
89
|
size: "small",
|
|
90
90
|
SubMenuPopupContent: canRestoreAsDraft ? () => /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","Button","ConfirmationModal","PopupList","toast","useConfig","useModal","useRouteTransition","useTranslation","requests","useRouter","formatAdminURL","React","Fragment","useCallback","useState","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","status","versionDate","versionID","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","toggleModal","router","i18n","t","draft","setDraft","startRouteTransition","restoreMessage","fetchURL","redirectURL","canRestoreAsDraft","versions","drafts","path","handleRestore","res","post","headers","language","json","success","message","push","error","_jsxs","_jsx","filter","Boolean","join","buttonStyle","onClick","size","SubMenuPopupContent","ButtonGroup","body","confirmingLabel","heading","onConfirm"],"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ConfirmationModal,\n PopupList,\n toast,\n useConfig,\n useModal,\n useRouteTransition,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n status,\n versionDate,\n versionID,\n}) => {\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n const { startRouteTransition } = useRouteTransition()\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n const canRestoreAsDraft = status !== 'draft' && collectionConfig?.versions?.drafts\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n return startRouteTransition(() => router.push(redirectURL))\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router, startRouteTransition])\n\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Button\n buttonStyle=\"pill\"\n className={[canRestoreAsDraft && `${baseClass}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","Button","ConfirmationModal","PopupList","toast","useConfig","useModal","useRouteTransition","useTranslation","requests","useRouter","formatAdminURL","React","Fragment","useCallback","useState","baseClass","modalSlug","Restore","className","collectionSlug","globalSlug","label","originalDocID","status","versionDate","versionID","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","toggleModal","router","i18n","t","draft","setDraft","startRouteTransition","restoreMessage","fetchURL","redirectURL","canRestoreAsDraft","versions","drafts","path","handleRestore","res","post","headers","language","json","success","message","push","error","_jsxs","_jsx","filter","Boolean","join","buttonStyle","onClick","size","SubMenuPopupContent","ButtonGroup","body","confirmingLabel","heading","onConfirm"],"sources":["../../../../src/views/Version/Restore/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n Button,\n ConfirmationModal,\n PopupList,\n toast,\n useConfig,\n useModal,\n useRouteTransition,\n useTranslation,\n} from '@payloadcms/ui'\nimport { requests } from '@payloadcms/ui/shared'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport './index.scss'\n\nconst baseClass = 'restore-version'\nconst modalSlug = 'restore-version'\n\nconst Restore: React.FC<Props> = ({\n className,\n collectionSlug,\n globalSlug,\n label,\n originalDocID,\n status,\n versionDate,\n versionID,\n}) => {\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const [draft, setDraft] = useState(false)\n const { startRouteTransition } = useRouteTransition()\n\n const restoreMessage = t('version:aboutToRestoreGlobal', {\n label: getTranslation(label, i18n),\n versionDate,\n })\n\n let fetchURL = `${serverURL}${apiRoute}`\n let redirectURL: string\n\n const canRestoreAsDraft = status !== 'draft' && collectionConfig?.versions?.drafts\n\n if (collectionSlug) {\n fetchURL = `${fetchURL}/${collectionSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${originalDocID}`,\n })\n }\n\n if (globalSlug) {\n fetchURL = `${fetchURL}/globals/${globalSlug}/versions/${versionID}?draft=${draft}`\n redirectURL = formatAdminURL({\n adminRoute,\n path: `/globals/${globalSlug}`,\n })\n }\n\n const handleRestore = useCallback(async () => {\n const res = await requests.post(fetchURL, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (res.status === 200) {\n const json = await res.json()\n toast.success(json.message)\n return startRouteTransition(() => router.push(redirectURL))\n } else {\n toast.error(t('version:problemRestoringVersion'))\n }\n }, [fetchURL, redirectURL, t, i18n, router, startRouteTransition])\n\n return (\n <Fragment>\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Button\n buttonStyle=\"pill\"\n className={[canRestoreAsDraft && `${baseClass}__restore-as-draft-button`]\n .filter(Boolean)\n .join(' ')}\n onClick={() => toggleModal(modalSlug)}\n size=\"small\"\n SubMenuPopupContent={\n canRestoreAsDraft\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button onClick={() => [setDraft(true), toggleModal(modalSlug)]}>\n {t('version:restoreAsDraft')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : null\n }\n >\n {t('version:restoreThisVersion')}\n </Button>\n </div>\n <ConfirmationModal\n body={restoreMessage}\n confirmingLabel={t('version:restoring')}\n heading={t('version:confirmVersionRestoration')}\n modalSlug={modalSlug}\n onConfirm={handleRestore}\n />\n </Fragment>\n )\n}\n\nexport default Restore\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
.restore-version {
|
|
5
5
|
cursor: pointer;
|
|
6
6
|
display: flex;
|
|
7
|
+
min-width: max-content;
|
|
7
8
|
|
|
8
9
|
.popup-button {
|
|
9
10
|
display: flex;
|
|
@@ -24,7 +25,11 @@
|
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
.btn {
|
|
29
|
+
margin-block: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&__restore-as-draft-button {
|
|
28
33
|
border-top-right-radius: 0px;
|
|
29
34
|
border-bottom-right-radius: 0px;
|
|
30
35
|
margin-right: 2px;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionPillLabel.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/VersionPillLabel.tsx"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,GAAG,EAAE,GAAG,CAAA;IACR,oBAAoB,EAAE,MAAM,CAAA;IAC5B,wBAAwB,EAAE,MAAM,CAAA;CACjC,CAqDA,CAAA"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { Pill, useConfig, useTranslation } from '@payloadcms/ui';
|
|
5
|
+
import { formatDate } from '@payloadcms/ui/shared';
|
|
6
|
+
import { useMemo } from 'react';
|
|
7
|
+
import { renderPill } from '../../Versions/cells/AutosaveCell/index.js';
|
|
8
|
+
export const VersionPillLabel = args => {
|
|
9
|
+
const {
|
|
10
|
+
config: {
|
|
11
|
+
admin: {
|
|
12
|
+
dateFormat
|
|
13
|
+
},
|
|
14
|
+
localization
|
|
15
|
+
}
|
|
16
|
+
} = useConfig();
|
|
17
|
+
const {
|
|
18
|
+
i18n,
|
|
19
|
+
t
|
|
20
|
+
} = useTranslation();
|
|
21
|
+
const {
|
|
22
|
+
doc,
|
|
23
|
+
latestDraftVersionID,
|
|
24
|
+
latestPublishedVersionID
|
|
25
|
+
} = args;
|
|
26
|
+
const status = doc.version._status;
|
|
27
|
+
let publishedLocalePill = null;
|
|
28
|
+
const publishedLocale = doc.publishedLocale || undefined;
|
|
29
|
+
const versionInfo = useMemo(() => {
|
|
30
|
+
return {
|
|
31
|
+
draft: {
|
|
32
|
+
currentLabel: t('version:currentDraft'),
|
|
33
|
+
latestVersion: latestDraftVersionID,
|
|
34
|
+
pillStyle: undefined,
|
|
35
|
+
previousLabel: t('version:draft')
|
|
36
|
+
},
|
|
37
|
+
published: {
|
|
38
|
+
currentLabel: t('version:currentlyPublished'),
|
|
39
|
+
latestVersion: latestPublishedVersionID,
|
|
40
|
+
pillStyle: 'success',
|
|
41
|
+
previousLabel: t('version:previouslyPublished')
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}, [latestDraftVersionID, latestPublishedVersionID, t]);
|
|
45
|
+
const {
|
|
46
|
+
currentLabel,
|
|
47
|
+
latestVersion,
|
|
48
|
+
pillStyle,
|
|
49
|
+
previousLabel
|
|
50
|
+
} = versionInfo[status] || {};
|
|
51
|
+
if (localization && localization?.locales && publishedLocale) {
|
|
52
|
+
const localeCode = Array.isArray(publishedLocale) ? publishedLocale[0] : publishedLocale;
|
|
53
|
+
const locale = localization.locales.find(loc => loc.code === localeCode);
|
|
54
|
+
const formattedLabel = locale?.label?.[i18n?.language] || locale?.label;
|
|
55
|
+
if (formattedLabel) {
|
|
56
|
+
publishedLocalePill = /*#__PURE__*/_jsx(Pill, {
|
|
57
|
+
children: formattedLabel
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
62
|
+
className: `version-pill-label`,
|
|
63
|
+
children: [formatDate({
|
|
64
|
+
date: doc.updatedAt,
|
|
65
|
+
i18n,
|
|
66
|
+
pattern: dateFormat
|
|
67
|
+
}), " ", renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle), publishedLocalePill]
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=VersionPillLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionPillLabel.js","names":["Pill","useConfig","useTranslation","formatDate","useMemo","renderPill","VersionPillLabel","args","config","admin","dateFormat","localization","i18n","t","doc","latestDraftVersionID","latestPublishedVersionID","status","version","_status","publishedLocalePill","publishedLocale","undefined","versionInfo","draft","currentLabel","latestVersion","pillStyle","previousLabel","published","locales","localeCode","Array","isArray","locale","find","loc","code","formattedLabel","label","language","_jsx","_jsxs","className","date","updatedAt","pattern"],"sources":["../../../../src/views/Version/SelectComparison/VersionPillLabel.tsx"],"sourcesContent":["'use client'\n\nimport { Pill, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { useMemo } from 'react'\n\nimport { renderPill } from '../../Versions/cells/AutosaveCell/index.js'\n\nexport const VersionPillLabel: React.FC<{\n doc: any\n latestDraftVersionID: string\n latestPublishedVersionID: string\n}> = (args) => {\n const {\n config: {\n admin: { dateFormat },\n localization,\n },\n } = useConfig()\n const { i18n, t } = useTranslation()\n\n const { doc, latestDraftVersionID, latestPublishedVersionID } = args\n\n const status = doc.version._status\n let publishedLocalePill = null\n const publishedLocale = doc.publishedLocale || undefined\n\n const versionInfo = useMemo(() => {\n return {\n draft: {\n currentLabel: t('version:currentDraft'),\n latestVersion: latestDraftVersionID,\n pillStyle: undefined,\n previousLabel: t('version:draft'),\n },\n published: {\n currentLabel: t('version:currentlyPublished'),\n latestVersion: latestPublishedVersionID,\n pillStyle: 'success',\n previousLabel: t('version:previouslyPublished'),\n },\n }\n }, [latestDraftVersionID, latestPublishedVersionID, t])\n\n const { currentLabel, latestVersion, pillStyle, previousLabel } = versionInfo[status] || {}\n\n if (localization && localization?.locales && publishedLocale) {\n const localeCode = Array.isArray(publishedLocale) ? publishedLocale[0] : publishedLocale\n\n const locale = localization.locales.find((loc) => loc.code === localeCode)\n const formattedLabel = locale?.label?.[i18n?.language] || locale?.label\n\n if (formattedLabel) {\n publishedLocalePill = <Pill>{formattedLabel}</Pill>\n }\n }\n\n return (\n <div className={`version-pill-label`}>\n {formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat })}\n \n {renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle)}\n {publishedLocalePill}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,IAAI,EAAEC,SAAS,EAAEC,cAAc,QAAQ;AAChD,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AAExB,SAASC,UAAU,QAAQ;AAE3B,OAAO,MAAMC,gBAAA,GAIPC,IAAA;EACJ,MAAM;IACJC,MAAA,EAAQ;MACNC,KAAA,EAAO;QAAEC;MAAU,CAAE;MACrBC;IAAY;EACb,CACF,GAAGV,SAAA;EACJ,MAAM;IAAEW,IAAI;IAAEC;EAAC,CAAE,GAAGX,cAAA;EAEpB,MAAM;IAAEY,GAAG;IAAEC,oBAAoB;IAAEC;EAAwB,CAAE,GAAGT,IAAA;EAEhE,MAAMU,MAAA,GAASH,GAAA,CAAII,OAAO,CAACC,OAAO;EAClC,IAAIC,mBAAA,GAAsB;EAC1B,MAAMC,eAAA,GAAkBP,GAAA,CAAIO,eAAe,IAAIC,SAAA;EAE/C,MAAMC,WAAA,GAAcnB,OAAA,CAAQ;IAC1B,OAAO;MACLoB,KAAA,EAAO;QACLC,YAAA,EAAcZ,CAAA,CAAE;QAChBa,aAAA,EAAeX,oBAAA;QACfY,SAAA,EAAWL,SAAA;QACXM,aAAA,EAAef,CAAA,CAAE;MACnB;MACAgB,SAAA,EAAW;QACTJ,YAAA,EAAcZ,CAAA,CAAE;QAChBa,aAAA,EAAeV,wBAAA;QACfW,SAAA,EAAW;QACXC,aAAA,EAAef,CAAA,CAAE;MACnB;IACF;EACF,GAAG,CAACE,oBAAA,EAAsBC,wBAAA,EAA0BH,CAAA,CAAE;EAEtD,MAAM;IAAEY,YAAY;IAAEC,aAAa;IAAEC,SAAS;IAAEC;EAAa,CAAE,GAAGL,WAAW,CAACN,MAAA,CAAO,IAAI,CAAC;EAE1F,IAAIN,YAAA,IAAgBA,YAAA,EAAcmB,OAAA,IAAWT,eAAA,EAAiB;IAC5D,MAAMU,UAAA,GAAaC,KAAA,CAAMC,OAAO,CAACZ,eAAA,IAAmBA,eAAe,CAAC,EAAE,GAAGA,eAAA;IAEzE,MAAMa,MAAA,GAASvB,YAAA,CAAamB,OAAO,CAACK,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,KAAKN,UAAA;IAC/D,MAAMO,cAAA,GAAiBJ,MAAA,EAAQK,KAAA,GAAQ3B,IAAA,EAAM4B,QAAA,CAAS,IAAIN,MAAA,EAAQK,KAAA;IAElE,IAAID,cAAA,EAAgB;MAClBlB,mBAAA,gBAAsBqB,IAAA,CAACzC,IAAA;kBAAMsC;;IAC/B;EACF;EAEA,oBACEI,KAAA,CAAC;IAAIC,SAAA,EAAW,oBAAoB;eACjCxC,UAAA,CAAW;MAAEyC,IAAA,EAAM9B,GAAA,CAAI+B,SAAS;MAAEjC,IAAA;MAAMkC,OAAA,EAASpC;IAAW,IAAG,MAE/DL,UAAA,CAAWS,GAAA,EAAKY,aAAA,EAAeD,YAAA,EAAcG,aAAA,EAAeD,SAAA,GAC5DP,mBAAA;;AAGP","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TypeWithVersion } from 'payload';
|
|
2
|
+
import type { VersionPill } from '../Default/types.js';
|
|
3
|
+
export declare function formatVersionPill(args: {
|
|
4
|
+
doc: TypeWithVersion<any>;
|
|
5
|
+
latestDraftVersionID: string;
|
|
6
|
+
latestPublishedVersionID: string;
|
|
7
|
+
}): VersionPill;
|
|
8
|
+
//# sourceMappingURL=formatVersionPill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatVersionPill.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/formatVersionPill.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAItD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;IACzB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,wBAAwB,EAAE,MAAM,CAAA;CACjC,GAAG,WAAW,CAqBd"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { VersionPillLabel } from './VersionPillLabel.js';
|
|
3
|
+
export function formatVersionPill(args) {
|
|
4
|
+
const {
|
|
5
|
+
doc,
|
|
6
|
+
latestDraftVersionID,
|
|
7
|
+
latestPublishedVersionID
|
|
8
|
+
} = args;
|
|
9
|
+
if (!doc) {
|
|
10
|
+
return {
|
|
11
|
+
id: '',
|
|
12
|
+
Label: ''
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
id: doc.id,
|
|
17
|
+
Label: /*#__PURE__*/_jsx(VersionPillLabel, {
|
|
18
|
+
doc: doc,
|
|
19
|
+
latestDraftVersionID: latestDraftVersionID,
|
|
20
|
+
latestPublishedVersionID: latestPublishedVersionID
|
|
21
|
+
}, doc.id)
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=formatVersionPill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatVersionPill.js","names":["VersionPillLabel","formatVersionPill","args","doc","latestDraftVersionID","latestPublishedVersionID","id","Label","_jsx"],"sources":["../../../../src/views/Version/SelectComparison/formatVersionPill.tsx"],"sourcesContent":["import type { TypeWithVersion } from 'payload'\n\nimport type { VersionPill } from '../Default/types.js'\n\nimport { VersionPillLabel } from './VersionPillLabel.js'\n\nexport function formatVersionPill(args: {\n doc: TypeWithVersion<any>\n latestDraftVersionID: string\n latestPublishedVersionID: string\n}): VersionPill {\n const { doc, latestDraftVersionID, latestPublishedVersionID } = args\n\n if (!doc) {\n return {\n id: '',\n Label: '',\n }\n }\n\n return {\n id: doc.id,\n Label: (\n <VersionPillLabel\n doc={doc}\n key={doc.id}\n latestDraftVersionID={latestDraftVersionID}\n latestPublishedVersionID={latestPublishedVersionID}\n />\n ),\n }\n}\n"],"mappings":";AAIA,SAASA,gBAAgB,QAAQ;AAEjC,OAAO,SAASC,kBAAkBC,IAIjC;EACC,MAAM;IAAEC,GAAG;IAAEC,oBAAoB;IAAEC;EAAwB,CAAE,GAAGH,IAAA;EAEhE,IAAI,CAACC,GAAA,EAAK;IACR,OAAO;MACLG,EAAA,EAAI;MACJC,KAAA,EAAO;IACT;EACF;EAEA,OAAO;IACLD,EAAA,EAAIH,GAAA,CAAIG,EAAE;IACVC,KAAA,eACEC,IAAA,CAACR,gBAAA;MACCG,GAAA,EAAKA,GAAA;MAELC,oBAAA,EAAsBA,oBAAA;MACtBC,wBAAA,EAA0BA;OAFrBF,GAAA,CAAIG,EAAE;EAKjB;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"names":[],"mappings":"AAOA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAGvC,OAAO,cAAc,CAAA;AASrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4J5C,CAAA"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
-
import { fieldBaseClass,
|
|
5
|
-
import { formatDate } from '@payloadcms/ui/shared';
|
|
4
|
+
import { fieldBaseClass, ReactSelect, useConfig, useTranslation } from '@payloadcms/ui';
|
|
6
5
|
import { stringify } from 'qs-esm';
|
|
7
6
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
8
|
-
import {
|
|
7
|
+
import { formatVersionPill } from './formatVersionPill.js';
|
|
9
8
|
const baseClass = 'compare-version';
|
|
10
9
|
const maxResultsPerRequest = 10;
|
|
11
10
|
const baseOptions = [];
|
|
@@ -13,28 +12,25 @@ export const SelectComparison = props => {
|
|
|
13
12
|
const {
|
|
14
13
|
baseURL,
|
|
15
14
|
draftsEnabled,
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
latestDraftVersionID,
|
|
16
|
+
latestPublishedVersionID,
|
|
18
17
|
onChange,
|
|
19
18
|
parentID,
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
versionFromOption,
|
|
20
|
+
versionToID
|
|
22
21
|
} = props;
|
|
22
|
+
const {
|
|
23
|
+
i18n,
|
|
24
|
+
t
|
|
25
|
+
} = useTranslation();
|
|
23
26
|
const {
|
|
24
27
|
config: {
|
|
25
|
-
admin: {
|
|
26
|
-
dateFormat
|
|
27
|
-
},
|
|
28
28
|
localization
|
|
29
29
|
}
|
|
30
30
|
} = useConfig();
|
|
31
31
|
const [options, setOptions] = useState(baseOptions);
|
|
32
32
|
const [lastLoadedPage, setLastLoadedPage] = useState(1);
|
|
33
33
|
const [errorLoading, setErrorLoading] = useState('');
|
|
34
|
-
const {
|
|
35
|
-
i18n,
|
|
36
|
-
t
|
|
37
|
-
} = useTranslation();
|
|
38
34
|
const loadedAllOptionsRef = React.useRef(false);
|
|
39
35
|
const getResults = useCallback(async ({
|
|
40
36
|
lastLoadedPage: lastLoadedPageArg
|
|
@@ -49,7 +45,7 @@ export const SelectComparison = props => {
|
|
|
49
45
|
where: {
|
|
50
46
|
and: [{
|
|
51
47
|
id: {
|
|
52
|
-
not_equals:
|
|
48
|
+
not_equals: versionToID
|
|
53
49
|
}
|
|
54
50
|
}]
|
|
55
51
|
}
|
|
@@ -78,52 +74,18 @@ export const SelectComparison = props => {
|
|
|
78
74
|
if (response.ok) {
|
|
79
75
|
const data = await response.json();
|
|
80
76
|
if (data.docs.length > 0) {
|
|
81
|
-
const versionInfo = {
|
|
82
|
-
draft: {
|
|
83
|
-
currentLabel: t('version:currentDraft'),
|
|
84
|
-
latestVersion: latestDraftVersion,
|
|
85
|
-
pillStyle: undefined,
|
|
86
|
-
previousLabel: t('version:draft')
|
|
87
|
-
},
|
|
88
|
-
published: {
|
|
89
|
-
currentLabel: t('version:currentPublishedVersion'),
|
|
90
|
-
latestVersion: latestPublishedVersion,
|
|
91
|
-
pillStyle: 'success',
|
|
92
|
-
previousLabel: t('version:previouslyPublished')
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
77
|
const additionalOptions = data.docs.map(doc => {
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
latestVersion,
|
|
102
|
-
pillStyle,
|
|
103
|
-
previousLabel
|
|
104
|
-
} = versionInfo[status] || {};
|
|
105
|
-
if (localization && localization?.locales && publishedLocale) {
|
|
106
|
-
const localeCode = Array.isArray(publishedLocale) ? publishedLocale[0] : publishedLocale;
|
|
107
|
-
const locale = localization.locales.find(loc => loc.code === localeCode);
|
|
108
|
-
const formattedLabel = locale?.label?.[i18n?.language] || locale?.label;
|
|
109
|
-
if (formattedLabel) {
|
|
110
|
-
publishedLocalePill = /*#__PURE__*/_jsx(Pill, {
|
|
111
|
-
children: formattedLabel
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
78
|
+
const pill = formatVersionPill({
|
|
79
|
+
doc,
|
|
80
|
+
latestDraftVersionID,
|
|
81
|
+
latestPublishedVersionID
|
|
82
|
+
});
|
|
115
83
|
return {
|
|
116
|
-
label:
|
|
117
|
-
|
|
118
|
-
date: doc.updatedAt,
|
|
119
|
-
i18n,
|
|
120
|
-
pattern: dateFormat
|
|
121
|
-
}), " ", renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle), publishedLocalePill]
|
|
122
|
-
}),
|
|
123
|
-
value: doc.id
|
|
84
|
+
label: pill.Label,
|
|
85
|
+
value: pill.id
|
|
124
86
|
};
|
|
125
87
|
});
|
|
126
|
-
setOptions(existingOptions => [...existingOptions, ...additionalOptions]);
|
|
88
|
+
setOptions(existingOptions => [...existingOptions, ...additionalOptions].filter((option, index, self) => self.findIndex(t_0 => t_0.value === option.value) === index));
|
|
127
89
|
if (!data.hasNextPage) {
|
|
128
90
|
loadedAllOptionsRef.current = true;
|
|
129
91
|
}
|
|
@@ -132,7 +94,7 @@ export const SelectComparison = props => {
|
|
|
132
94
|
} else {
|
|
133
95
|
setErrorLoading(t('error:unspecific'));
|
|
134
96
|
}
|
|
135
|
-
}, [
|
|
97
|
+
}, [versionToID, parentID, localization, draftsEnabled, baseURL, i18n.language, latestDraftVersionID, latestPublishedVersionID, t]);
|
|
136
98
|
useEffect(() => {
|
|
137
99
|
if (!i18n.dateFNS) {
|
|
138
100
|
// If dateFNS is not loaded, we can't format the date in getResults
|
|
@@ -142,18 +104,14 @@ export const SelectComparison = props => {
|
|
|
142
104
|
lastLoadedPage: 1
|
|
143
105
|
});
|
|
144
106
|
}, [getResults, i18n.dateFNS]);
|
|
145
|
-
const filteredOptions = options.filter((option, index, self) => self.findIndex(t_0 => t_0.value === option.value) === index);
|
|
146
107
|
useEffect(() => {
|
|
147
|
-
if (
|
|
148
|
-
onChange(
|
|
108
|
+
if (options.length > 0 && !versionFromOption) {
|
|
109
|
+
onChange(options[0]);
|
|
149
110
|
}
|
|
150
|
-
}, [
|
|
111
|
+
}, [options, versionFromOption, onChange]);
|
|
151
112
|
return /*#__PURE__*/_jsxs("div", {
|
|
152
113
|
className: [fieldBaseClass, baseClass, errorLoading && 'error-loading'].filter(Boolean).join(' '),
|
|
153
|
-
children: [/*#__PURE__*/_jsx(
|
|
154
|
-
className: `${baseClass}__label`,
|
|
155
|
-
children: t('version:compareVersion')
|
|
156
|
-
}), !errorLoading && /*#__PURE__*/_jsx(ReactSelect, {
|
|
114
|
+
children: [!errorLoading && /*#__PURE__*/_jsx(ReactSelect, {
|
|
157
115
|
isClearable: false,
|
|
158
116
|
isSearchable: false,
|
|
159
117
|
onChange: onChange,
|
|
@@ -162,9 +120,9 @@ export const SelectComparison = props => {
|
|
|
162
120
|
lastLoadedPage: lastLoadedPage + 1
|
|
163
121
|
});
|
|
164
122
|
},
|
|
165
|
-
options:
|
|
123
|
+
options: options,
|
|
166
124
|
placeholder: t('version:selectVersionToCompare'),
|
|
167
|
-
value:
|
|
125
|
+
value: versionFromOption
|
|
168
126
|
}), errorLoading && /*#__PURE__*/_jsx("div", {
|
|
169
127
|
className: `${baseClass}__error-loading`,
|
|
170
128
|
children: errorLoading
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["fieldBaseClass","Pill","ReactSelect","useConfig","useTranslation","formatDate","stringify","React","useCallback","useEffect","useState","renderPill","baseClass","maxResultsPerRequest","baseOptions","SelectComparison","props","baseURL","draftsEnabled","latestDraftVersion","latestPublishedVersion","onChange","parentID","value","versionID","config","admin","dateFormat","localization","options","setOptions","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","i18n","t","loadedAllOptionsRef","useRef","getResults","lastLoadedPageArg","current","query","depth","limit","page","where","and","id","not_equals","push","parent","equals","snapshot","search","response","fetch","credentials","headers","language","ok","data","json","docs","length","versionInfo","draft","currentLabel","latestVersion","pillStyle","undefined","previousLabel","published","additionalOptions","map","doc","status","version","_status","publishedLocalePill","publishedLocale","locales","localeCode","Array","isArray","locale","find","loc","code","formattedLabel","label","_jsx","_jsxs","date","updatedAt","pattern","existingOptions","hasNextPage","dateFNS","filteredOptions","filter","option","index","self","findIndex","className","Boolean","join","isClearable","isSearchable","onMenuScrollToBottom","placeholder"],"sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { fieldBaseClass, Pill, ReactSelect, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { stringify } from 'qs-esm'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { renderPill } from '../../Versions/cells/AutosaveCell/index.js'\nimport './index.scss'\n\nconst baseClass = 'compare-version'\n\nconst maxResultsPerRequest = 10\n\nconst baseOptions = []\n\nexport const SelectComparison: React.FC<Props> = (props) => {\n const {\n baseURL,\n draftsEnabled,\n latestDraftVersion,\n latestPublishedVersion,\n onChange,\n parentID,\n value,\n versionID,\n } = props\n\n const {\n config: {\n admin: { dateFormat },\n localization,\n },\n } = useConfig()\n\n const [options, setOptions] = useState<\n {\n label: React.ReactNode | string\n value: string\n }[]\n >(baseOptions)\n const [lastLoadedPage, setLastLoadedPage] = useState(1)\n const [errorLoading, setErrorLoading] = useState('')\n const { i18n, t } = useTranslation()\n const loadedAllOptionsRef = React.useRef(false)\n\n const getResults = useCallback(\n async ({ lastLoadedPage: lastLoadedPageArg }) => {\n if (loadedAllOptionsRef.current) {\n return\n }\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: lastLoadedPageArg,\n where: {\n and: [\n {\n id: {\n not_equals: versionID,\n },\n },\n ],\n },\n }\n\n if (parentID) {\n query.where.and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n\n if (localization && draftsEnabled) {\n query.where.and.push({\n snapshot: {\n not_equals: true,\n },\n })\n }\n\n const search = stringify(query)\n\n const response = await fetch(`${baseURL}?${search}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n\n if (data.docs.length > 0) {\n const versionInfo = {\n draft: {\n currentLabel: t('version:currentDraft'),\n latestVersion: latestDraftVersion,\n pillStyle: undefined,\n previousLabel: t('version:draft'),\n },\n published: {\n currentLabel: t('version:currentPublishedVersion'),\n latestVersion: latestPublishedVersion,\n pillStyle: 'success',\n previousLabel: t('version:previouslyPublished'),\n },\n }\n\n const additionalOptions = data.docs.map((doc) => {\n const status = doc.version._status\n let publishedLocalePill = null\n const publishedLocale = doc.publishedLocale || undefined\n const { currentLabel, latestVersion, pillStyle, previousLabel } =\n versionInfo[status] || {}\n\n if (localization && localization?.locales && publishedLocale) {\n const localeCode = Array.isArray(publishedLocale)\n ? publishedLocale[0]\n : publishedLocale\n\n const locale = localization.locales.find((loc) => loc.code === localeCode)\n const formattedLabel = locale?.label?.[i18n?.language] || locale?.label\n\n if (formattedLabel) {\n publishedLocalePill = <Pill>{formattedLabel}</Pill>\n }\n }\n\n return {\n label: (\n <div>\n {formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat })}\n \n {renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle)}\n {publishedLocalePill}\n </div>\n ),\n value: doc.id,\n }\n })\n\n setOptions((existingOptions) => [...existingOptions, ...additionalOptions])\n\n if (!data.hasNextPage) {\n loadedAllOptionsRef.current = true\n }\n setLastLoadedPage(data.page)\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n },\n [dateFormat, baseURL, parentID, versionID, t, i18n, latestDraftVersion, latestPublishedVersion],\n )\n\n useEffect(() => {\n if (!i18n.dateFNS) {\n // If dateFNS is not loaded, we can't format the date in getResults\n return\n }\n void getResults({ lastLoadedPage: 1 })\n }, [getResults, i18n.dateFNS])\n\n const filteredOptions = options.filter(\n (option, index, self) => self.findIndex((t) => t.value === option.value) === index,\n )\n\n useEffect(() => {\n if (filteredOptions.length > 0 && !value) {\n onChange(filteredOptions[0])\n }\n }, [filteredOptions, value, onChange])\n\n return (\n <div\n className={[fieldBaseClass, baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__label`}>{t('version:compareVersion')}</div>\n {!errorLoading && (\n <ReactSelect\n isClearable={false}\n isSearchable={false}\n onChange={onChange}\n onMenuScrollToBottom={() => {\n void getResults({ lastLoadedPage: lastLoadedPage + 1 })\n }}\n options={filteredOptions}\n placeholder={t('version:selectVersionToCompare')}\n value={value}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,cAAc,EAAEC,IAAI,EAAEC,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ;AAC7E,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAIxD,SAASC,UAAU,QAAQ;AAG3B,MAAMC,SAAA,GAAY;AAElB,MAAMC,oBAAA,GAAuB;AAE7B,MAAMC,WAAA,GAAc,EAAE;AAEtB,OAAO,MAAMC,gBAAA,GAAqCC,KAAA;EAChD,MAAM;IACJC,OAAO;IACPC,aAAa;IACbC,kBAAkB;IAClBC,sBAAsB;IACtBC,QAAQ;IACRC,QAAQ;IACRC,KAAK;IACLC;EAAS,CACV,GAAGR,KAAA;EAEJ,MAAM;IACJS,MAAA,EAAQ;MACNC,KAAA,EAAO;QAAEC;MAAU,CAAE;MACrBC;IAAY;EACb,CACF,GAAGzB,SAAA;EAEJ,MAAM,CAAC0B,OAAA,EAASC,UAAA,CAAW,GAAGpB,QAAA,CAK5BI,WAAA;EACF,MAAM,CAACiB,cAAA,EAAgBC,iBAAA,CAAkB,GAAGtB,QAAA,CAAS;EACrD,MAAM,CAACuB,YAAA,EAAcC,eAAA,CAAgB,GAAGxB,QAAA,CAAS;EACjD,MAAM;IAAEyB,IAAI;IAAEC;EAAC,CAAE,GAAGhC,cAAA;EACpB,MAAMiC,mBAAA,GAAsB9B,KAAA,CAAM+B,MAAM,CAAC;EAEzC,MAAMC,UAAA,GAAa/B,WAAA,CACjB,OAAO;IAAEuB,cAAA,EAAgBS;EAAiB,CAAE;IAC1C,IAAIH,mBAAA,CAAoBI,OAAO,EAAE;MAC/B;IACF;IACA,MAAMC,KAAA,GAGF;MACFC,KAAA,EAAO;MACPC,KAAA,EAAO/B,oBAAA;MACPgC,IAAA,EAAML,iBAAA;MACNM,KAAA,EAAO;QACLC,GAAA,EAAK,CACH;UACEC,EAAA,EAAI;YACFC,UAAA,EAAYzB;UACd;QACF;MAEJ;IACF;IAEA,IAAIF,QAAA,EAAU;MACZoB,KAAA,CAAMI,KAAK,CAACC,GAAG,CAACG,IAAI,CAAC;QACnBC,MAAA,EAAQ;UACNC,MAAA,EAAQ9B;QACV;MACF;IACF;IAEA,IAAIM,YAAA,IAAgBV,aAAA,EAAe;MACjCwB,KAAA,CAAMI,KAAK,CAACC,GAAG,CAACG,IAAI,CAAC;QACnBG,QAAA,EAAU;UACRJ,UAAA,EAAY;QACd;MACF;IACF;IAEA,MAAMK,MAAA,GAAShD,SAAA,CAAUoC,KAAA;IAEzB,MAAMa,QAAA,GAAW,MAAMC,KAAA,CAAM,GAAGvC,OAAA,IAAWqC,MAAA,EAAQ,EAAE;MACnDG,WAAA,EAAa;MACbC,OAAA,EAAS;QACP,mBAAmBvB,IAAA,CAAKwB;MAC1B;IACF;IAEA,IAAIJ,QAAA,CAASK,EAAE,EAAE;MACf,MAAMC,IAAA,GAAsB,MAAMN,QAAA,CAASO,IAAI;MAE/C,IAAID,IAAA,CAAKE,IAAI,CAACC,MAAM,GAAG,GAAG;QACxB,MAAMC,WAAA,GAAc;UAClBC,KAAA,EAAO;YACLC,YAAA,EAAc/B,CAAA,CAAE;YAChBgC,aAAA,EAAejD,kBAAA;YACfkD,SAAA,EAAWC,SAAA;YACXC,aAAA,EAAenC,CAAA,CAAE;UACnB;UACAoC,SAAA,EAAW;YACTL,YAAA,EAAc/B,CAAA,CAAE;YAChBgC,aAAA,EAAehD,sBAAA;YACfiD,SAAA,EAAW;YACXE,aAAA,EAAenC,CAAA,CAAE;UACnB;QACF;QAEA,MAAMqC,iBAAA,GAAoBZ,IAAA,CAAKE,IAAI,CAACW,GAAG,CAAEC,GAAA;UACvC,MAAMC,MAAA,GAASD,GAAA,CAAIE,OAAO,CAACC,OAAO;UAClC,IAAIC,mBAAA,GAAsB;UAC1B,MAAMC,eAAA,GAAkBL,GAAA,CAAIK,eAAe,IAAIV,SAAA;UAC/C,MAAM;YAAEH,YAAY;YAAEC,aAAa;YAAEC,SAAS;YAAEE;UAAa,CAAE,GAC7DN,WAAW,CAACW,MAAA,CAAO,IAAI,CAAC;UAE1B,IAAIhD,YAAA,IAAgBA,YAAA,EAAcqD,OAAA,IAAWD,eAAA,EAAiB;YAC5D,MAAME,UAAA,GAAaC,KAAA,CAAMC,OAAO,CAACJ,eAAA,IAC7BA,eAAe,CAAC,EAAE,GAClBA,eAAA;YAEJ,MAAMK,MAAA,GAASzD,YAAA,CAAaqD,OAAO,CAACK,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,KAAKN,UAAA;YAC/D,MAAMO,cAAA,GAAiBJ,MAAA,EAAQK,KAAA,GAAQvD,IAAA,EAAMwB,QAAA,CAAS,IAAI0B,MAAA,EAAQK,KAAA;YAElE,IAAID,cAAA,EAAgB;cAClBV,mBAAA,gBAAsBY,IAAA,CAAC1F,IAAA;0BAAMwF;;YAC/B;UACF;UAEA,OAAO;YACLC,KAAA,eACEE,KAAA,CAAC;yBACEvF,UAAA,CAAW;gBAAEwF,IAAA,EAAMlB,GAAA,CAAImB,SAAS;gBAAE3D,IAAA;gBAAM4D,OAAA,EAASpE;cAAW,IAAG,MAE/DhB,UAAA,CAAWgE,GAAA,EAAKP,aAAA,EAAeD,YAAA,EAAcI,aAAA,EAAeF,SAAA,GAC5DU,mBAAA;;YAGLxD,KAAA,EAAOoD,GAAA,CAAI3B;UACb;QACF;QAEAlB,UAAA,CAAYkE,eAAA,IAAoB,C,GAAIA,eAAA,E,GAAoBvB,iBAAA,CAAkB;QAE1E,IAAI,CAACZ,IAAA,CAAKoC,WAAW,EAAE;UACrB5D,mBAAA,CAAoBI,OAAO,GAAG;QAChC;QACAT,iBAAA,CAAkB6B,IAAA,CAAKhB,IAAI;MAC7B;IACF,OAAO;MACLX,eAAA,CAAgBE,CAAA,CAAE;IACpB;EACF,GACA,CAACT,UAAA,EAAYV,OAAA,EAASK,QAAA,EAAUE,SAAA,EAAWY,CAAA,EAAGD,IAAA,EAAMhB,kBAAA,EAAoBC,sBAAA,CAAuB;EAGjGX,SAAA,CAAU;IACR,IAAI,CAAC0B,IAAA,CAAK+D,OAAO,EAAE;MACjB;MACA;IACF;IACA,KAAK3D,UAAA,CAAW;MAAER,cAAA,EAAgB;IAAE;EACtC,GAAG,CAACQ,UAAA,EAAYJ,IAAA,CAAK+D,OAAO,CAAC;EAE7B,MAAMC,eAAA,GAAkBtE,OAAA,CAAQuE,MAAM,CACpC,CAACC,MAAA,EAAQC,KAAA,EAAOC,IAAA,KAASA,IAAA,CAAKC,SAAS,CAAEpE,GAAA,IAAMA,GAAA,CAAEb,KAAK,KAAK8E,MAAA,CAAO9E,KAAK,MAAM+E,KAAA;EAG/E7F,SAAA,CAAU;IACR,IAAI0F,eAAA,CAAgBnC,MAAM,GAAG,KAAK,CAACzC,KAAA,EAAO;MACxCF,QAAA,CAAS8E,eAAe,CAAC,EAAE;IAC7B;EACF,GAAG,CAACA,eAAA,EAAiB5E,KAAA,EAAOF,QAAA,CAAS;EAErC,oBACEuE,KAAA,CAAC;IACCa,SAAA,EAAW,CAACzG,cAAA,EAAgBY,SAAA,EAAWqB,YAAA,IAAgB,gBAAgB,CACpEmE,MAAM,CAACM,OAAA,EACPC,IAAI,CAAC;4BAERhB,IAAA,CAAC;MAAIc,SAAA,EAAW,GAAG7F,SAAA,SAAkB;gBAAGwB,CAAA,CAAE;QACzC,CAACH,YAAA,iBACA0D,IAAA,CAACzF,WAAA;MACC0G,WAAA,EAAa;MACbC,YAAA,EAAc;MACdxF,QAAA,EAAUA,QAAA;MACVyF,oBAAA,EAAsBA,CAAA;QACpB,KAAKvE,UAAA,CAAW;UAAER,cAAA,EAAgBA,cAAA,GAAiB;QAAE;MACvD;MACAF,OAAA,EAASsE,eAAA;MACTY,WAAA,EAAa3E,CAAA,CAAE;MACfb,KAAA,EAAOA;QAGVU,YAAA,iBAAgB0D,IAAA,CAAC;MAAIc,SAAA,EAAW,GAAG7F,SAAA,iBAA0B;gBAAGqB;;;AAGvE","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["fieldBaseClass","ReactSelect","useConfig","useTranslation","stringify","React","useCallback","useEffect","useState","formatVersionPill","baseClass","maxResultsPerRequest","baseOptions","SelectComparison","props","baseURL","draftsEnabled","latestDraftVersionID","latestPublishedVersionID","onChange","parentID","versionFromOption","versionToID","i18n","t","config","localization","options","setOptions","lastLoadedPage","setLastLoadedPage","errorLoading","setErrorLoading","loadedAllOptionsRef","useRef","getResults","lastLoadedPageArg","current","query","depth","limit","page","where","and","id","not_equals","push","parent","equals","snapshot","search","response","fetch","credentials","headers","language","ok","data","json","docs","length","additionalOptions","map","doc","pill","label","Label","value","existingOptions","filter","option","index","self","findIndex","hasNextPage","dateFNS","_jsxs","className","Boolean","join","_jsx","isClearable","isSearchable","onMenuScrollToBottom","placeholder"],"sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { fieldBaseClass, Pill, ReactSelect, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport { stringify } from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { renderPill } from '../../Versions/cells/AutosaveCell/index.js'\nimport './index.scss'\nimport { formatVersionPill } from './formatVersionPill.js'\n\nconst baseClass = 'compare-version'\n\nconst maxResultsPerRequest = 10\n\nconst baseOptions = []\n\nexport const SelectComparison: React.FC<Props> = (props) => {\n const {\n baseURL,\n draftsEnabled,\n latestDraftVersionID,\n latestPublishedVersionID,\n onChange,\n parentID,\n versionFromOption,\n versionToID,\n } = props\n const { i18n, t } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const [options, setOptions] = useState<\n {\n label: React.ReactNode | string\n value: string\n }[]\n >(baseOptions)\n const [lastLoadedPage, setLastLoadedPage] = useState(1)\n const [errorLoading, setErrorLoading] = useState('')\n const loadedAllOptionsRef = React.useRef(false)\n\n const getResults = useCallback(\n async ({ lastLoadedPage: lastLoadedPageArg }) => {\n if (loadedAllOptionsRef.current) {\n return\n }\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n limit: maxResultsPerRequest,\n page: lastLoadedPageArg,\n where: {\n and: [\n {\n id: {\n not_equals: versionToID,\n },\n },\n ],\n },\n }\n\n if (parentID) {\n query.where.and.push({\n parent: {\n equals: parentID,\n },\n })\n }\n\n if (localization && draftsEnabled) {\n query.where.and.push({\n snapshot: {\n not_equals: true,\n },\n })\n }\n\n const search = stringify(query)\n\n const response = await fetch(`${baseURL}?${search}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n\n if (data.docs.length > 0) {\n const additionalOptions = data.docs.map((doc) => {\n const pill = formatVersionPill({\n doc,\n latestDraftVersionID,\n latestPublishedVersionID,\n })\n\n return {\n label: pill.Label,\n value: pill.id,\n }\n })\n\n setOptions((existingOptions) =>\n [...existingOptions, ...additionalOptions].filter(\n (option, index, self) => self.findIndex((t) => t.value === option.value) === index,\n ),\n )\n\n if (!data.hasNextPage) {\n loadedAllOptionsRef.current = true\n }\n setLastLoadedPage(data.page)\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n },\n [\n versionToID,\n parentID,\n localization,\n draftsEnabled,\n baseURL,\n i18n.language,\n latestDraftVersionID,\n latestPublishedVersionID,\n t,\n ],\n )\n\n useEffect(() => {\n if (!i18n.dateFNS) {\n // If dateFNS is not loaded, we can't format the date in getResults\n return\n }\n void getResults({ lastLoadedPage: 1 })\n }, [getResults, i18n.dateFNS])\n\n useEffect(() => {\n if (options.length > 0 && !versionFromOption) {\n onChange(options[0])\n }\n }, [options, versionFromOption, onChange])\n\n return (\n <div\n className={[fieldBaseClass, baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')}\n >\n {!errorLoading && (\n <ReactSelect\n isClearable={false}\n isSearchable={false}\n onChange={onChange}\n onMenuScrollToBottom={() => {\n void getResults({ lastLoadedPage: lastLoadedPage + 1 })\n }}\n options={options}\n placeholder={t('version:selectVersionToCompare')}\n value={versionFromOption}\n />\n )}\n {errorLoading && <div className={`${baseClass}__error-loading`}>{errorLoading}</div>}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,12 +3,12 @@ import type { CompareOption } from '../Default/types.js';
|
|
|
3
3
|
export type Props = {
|
|
4
4
|
baseURL: string;
|
|
5
5
|
draftsEnabled?: boolean;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
latestDraftVersionID?: string;
|
|
7
|
+
latestPublishedVersionID?: string;
|
|
8
8
|
onChange: (val: CompareOption) => void;
|
|
9
9
|
parentID?: number | string;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
versionFromOption: CompareOption;
|
|
11
|
+
versionToID: string;
|
|
12
12
|
};
|
|
13
13
|
type CLEAR = {
|
|
14
14
|
required: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectComparison/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,iBAAiB,EAAE,aAAa,CAAA;IAChC,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,GAAG,GAAG;IACT,UAAU,EAAE,yBAAyB,CAAA;IACrC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACxB,IAAI,EAAE,KAAK,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAA;AAEhC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/views/Version/SelectComparison/types.ts"],"sourcesContent":["import type { PaginatedDocs, SanitizedCollectionConfig } from 'payload'\n\nimport type { CompareOption } from '../Default/types.js'\n\nexport type Props = {\n baseURL: string\n draftsEnabled?: boolean\n
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/views/Version/SelectComparison/types.ts"],"sourcesContent":["import type { PaginatedDocs, SanitizedCollectionConfig } from 'payload'\n\nimport type { CompareOption } from '../Default/types.js'\n\nexport type Props = {\n baseURL: string\n draftsEnabled?: boolean\n latestDraftVersionID?: string\n latestPublishedVersionID?: string\n onChange: (val: CompareOption) => void\n parentID?: number | string\n versionFromOption: CompareOption\n versionToID: string\n}\n\ntype CLEAR = {\n required: boolean\n type: 'CLEAR'\n}\n\ntype ADD = {\n collection: SanitizedCollectionConfig\n data: PaginatedDocs<any>\n type: 'ADD'\n}\n\nexport type Action = ADD | CLEAR\n\nexport type ValueWithRelation = {\n relationTo: string\n value: string\n}\n"],"mappings":"AA4BA","ignoreList":[]}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { type SelectablePill } from '@payloadcms/ui';
|
|
1
2
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
export type SelectedLocaleOnChange = (args: {
|
|
4
|
+
locales: SelectablePill[];
|
|
5
|
+
}) => void;
|
|
6
|
+
export type Props = {
|
|
7
|
+
locales: SelectablePill[];
|
|
8
|
+
localeSelectorOpen: boolean;
|
|
9
|
+
onChange: SelectedLocaleOnChange;
|
|
10
|
+
};
|
|
4
11
|
export declare const SelectLocales: React.FC<Props>;
|
|
5
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectLocales/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/SelectLocales/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,KAAK,IAAI,CAAA;AAClF,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,kBAAkB,EAAE,OAAO,CAAA;IAC3B,QAAQ,EAAE,sBAAsB,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyBzC,CAAA"}
|