@payloadcms/next 3.0.0-canary.a0b06af → 3.0.0-canary.b750ebf
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/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +2 -2
- package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +0 -1
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/routes/graphql/handler.d.ts.map +1 -1
- package/dist/routes/graphql/handler.js +0 -1
- package/dist/routes/graphql/handler.js.map +1 -1
- package/dist/templates/Default/index.d.ts +2 -2
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
- package/dist/utilities/getPayloadHMR.js +0 -1
- package/dist/utilities/getPayloadHMR.js.map +1 -1
- package/dist/utilities/meta.d.ts +2 -2
- package/dist/utilities/meta.d.ts.map +1 -1
- package/dist/utilities/meta.js.map +1 -1
- package/dist/views/Dashboard/Default/index.d.ts +2 -2
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Document/getMetaBySegment.d.ts +2 -2
- package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
- package/dist/views/Document/getMetaBySegment.js.map +1 -1
- package/dist/views/Document/getViewsFromConfig.js.map +1 -1
- package/dist/views/List/meta.d.ts +2 -2
- package/dist/views/List/meta.d.ts.map +1 -1
- package/dist/views/List/meta.js.map +1 -1
- package/dist/views/LivePreview/Toolbar/index.d.ts +2 -2
- package/dist/views/LivePreview/Toolbar/index.d.ts.map +1 -1
- package/dist/views/LivePreview/Toolbar/index.js.map +1 -1
- package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
- package/dist/views/Logout/index.d.ts +2 -2
- package/dist/views/Logout/index.d.ts.map +1 -1
- package/dist/views/Logout/index.js.map +1 -1
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/Version/Default/SetStepNav.d.ts +0 -1
- package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
- package/dist/views/Version/Default/SetStepNav.js +7 -7
- 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 +11 -13
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/Default/types.d.ts +3 -3
- 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/fields/Select/index.d.ts +2 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +2 -2
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +6 -6
- package/dist/views/Version/RenderFieldsToDiff/types.d.ts +2 -2
- package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +48 -27
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/types.d.ts +2 -1
- 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/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +22 -43
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.d.ts +3 -1
- package/dist/views/Versions/buildColumns.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.js +7 -4
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -1
- package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +31 -13
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/getLatestVersion.d.ts +5 -0
- package/dist/views/Versions/getLatestVersion.d.ts.map +1 -0
- package/dist/views/Versions/getLatestVersion.js +29 -0
- package/dist/views/Versions/getLatestVersion.js.map +1 -0
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +22 -2
- package/dist/views/Versions/index.js.map +1 -1
- package/package.json +6 -6
- package/dist/views/Version/shared.d.ts +0 -9
- package/dist/views/Version/shared.d.ts.map +0 -1
- package/dist/views/Version/shared.js +0 -10
- package/dist/views/Version/shared.js.map +0 -1
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { ReactSelect, fieldBaseClass, useConfig,
|
|
3
|
+
import { ReactSelect, fieldBaseClass, useConfig, useTranslation } from '@payloadcms/ui';
|
|
4
4
|
import { formatDate } from '@payloadcms/ui/shared';
|
|
5
5
|
import * as qs from 'qs-esm';
|
|
6
6
|
import React, { useCallback, useEffect, useState } from 'react';
|
|
7
|
-
import {
|
|
7
|
+
import { renderPill } from '../../Versions/cells/AutosaveCell/index.js';
|
|
8
8
|
const baseClass = 'compare-version';
|
|
9
9
|
const maxResultsPerRequest = 10;
|
|
10
|
-
const baseOptions = [
|
|
11
|
-
mostRecentVersionOption
|
|
12
|
-
];
|
|
10
|
+
const baseOptions = [];
|
|
13
11
|
export const SelectComparison = (props)=>{
|
|
14
|
-
const { baseURL, onChange, parentID,
|
|
12
|
+
const { baseURL, latestDraftVersion, latestPublishedVersion, onChange, parentID, value, versionID } = props;
|
|
15
13
|
const { admin: { dateFormat } } = useConfig();
|
|
16
|
-
const { docConfig } = useDocumentInfo();
|
|
17
14
|
const [options, setOptions] = useState(baseOptions);
|
|
18
15
|
const [lastLoadedPage, setLastLoadedPage] = useState(1);
|
|
19
16
|
const [errorLoading, setErrorLoading] = useState('');
|
|
@@ -35,13 +32,6 @@ export const SelectComparison = (props)=>{
|
|
|
35
32
|
]
|
|
36
33
|
}
|
|
37
34
|
};
|
|
38
|
-
if (docConfig.versions?.drafts) {
|
|
39
|
-
query.where.and.push({
|
|
40
|
-
latest: {
|
|
41
|
-
not_equals: true
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
35
|
if (parentID) {
|
|
46
36
|
query.where.and.push({
|
|
47
37
|
parent: {
|
|
@@ -59,16 +49,41 @@ export const SelectComparison = (props)=>{
|
|
|
59
49
|
if (response.ok) {
|
|
60
50
|
const data = await response.json();
|
|
61
51
|
if (data.docs.length > 0) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
52
|
+
const versionInfo = {
|
|
53
|
+
draft: {
|
|
54
|
+
currentLabel: t('version:currentDraft'),
|
|
55
|
+
latestVersion: latestDraftVersion,
|
|
56
|
+
pillStyle: undefined,
|
|
57
|
+
previousLabel: t('version:draft')
|
|
58
|
+
},
|
|
59
|
+
published: {
|
|
60
|
+
currentLabel: t('version:currentPublishedVersion'),
|
|
61
|
+
latestVersion: latestPublishedVersion,
|
|
62
|
+
pillStyle: 'success',
|
|
63
|
+
previousLabel: t('version:previouslyPublished')
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const additionalOptions = data.docs.map((doc)=>{
|
|
67
|
+
const status = doc.version._status;
|
|
68
|
+
const { currentLabel, latestVersion, pillStyle, previousLabel } = versionInfo[status] || {};
|
|
69
|
+
return {
|
|
70
|
+
label: /*#__PURE__*/ _jsxs("div", {
|
|
71
|
+
children: [
|
|
72
|
+
formatDate({
|
|
66
73
|
date: doc.updatedAt,
|
|
67
74
|
i18n,
|
|
68
75
|
pattern: dateFormat
|
|
69
76
|
}),
|
|
70
|
-
|
|
71
|
-
|
|
77
|
+
" ",
|
|
78
|
+
renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle)
|
|
79
|
+
]
|
|
80
|
+
}),
|
|
81
|
+
value: doc.id
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
setOptions((existingOptions)=>[
|
|
85
|
+
...existingOptions,
|
|
86
|
+
...additionalOptions
|
|
72
87
|
]);
|
|
73
88
|
if (!data.hasNextPage) {
|
|
74
89
|
loadedAllOptionsRef.current = true;
|
|
@@ -85,7 +100,8 @@ export const SelectComparison = (props)=>{
|
|
|
85
100
|
versionID,
|
|
86
101
|
t,
|
|
87
102
|
i18n,
|
|
88
|
-
|
|
103
|
+
latestDraftVersion,
|
|
104
|
+
latestPublishedVersion
|
|
89
105
|
]);
|
|
90
106
|
useEffect(()=>{
|
|
91
107
|
void getResults({
|
|
@@ -94,6 +110,16 @@ export const SelectComparison = (props)=>{
|
|
|
94
110
|
}, [
|
|
95
111
|
getResults
|
|
96
112
|
]);
|
|
113
|
+
const filteredOptions = options.filter((option, index, self)=>self.findIndex((t)=>t.value === option.value) === index);
|
|
114
|
+
useEffect(()=>{
|
|
115
|
+
if (filteredOptions.length > 0 && !value) {
|
|
116
|
+
onChange(filteredOptions[0]);
|
|
117
|
+
}
|
|
118
|
+
}, [
|
|
119
|
+
filteredOptions,
|
|
120
|
+
value,
|
|
121
|
+
onChange
|
|
122
|
+
]);
|
|
97
123
|
return /*#__PURE__*/ _jsxs("div", {
|
|
98
124
|
className: [
|
|
99
125
|
fieldBaseClass,
|
|
@@ -114,12 +140,7 @@ export const SelectComparison = (props)=>{
|
|
|
114
140
|
lastLoadedPage: lastLoadedPage + 1
|
|
115
141
|
});
|
|
116
142
|
},
|
|
117
|
-
options:
|
|
118
|
-
...publishedDoc?._status === 'published' ? [
|
|
119
|
-
publishedVersionOption
|
|
120
|
-
] : [],
|
|
121
|
-
...options
|
|
122
|
-
],
|
|
143
|
+
options: filteredOptions,
|
|
123
144
|
placeholder: t('version:selectVersionToCompare'),
|
|
124
145
|
value: value
|
|
125
146
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/views/Version/SelectComparison/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport { ReactSelect, fieldBaseClass, useConfig, useTranslation } from '@payloadcms/ui'\nimport { formatDate } from '@payloadcms/ui/shared'\nimport * as qs 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 latestDraftVersion,\n latestPublishedVersion,\n onChange,\n parentID,\n value,\n versionID,\n } = props\n\n const {\n admin: { dateFormat },\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) return\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 const search = qs.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 const { currentLabel, latestVersion, pillStyle, previousLabel } =\n versionInfo[status] || {}\n\n return {\n label: (\n <div>\n {formatDate({ date: doc.updatedAt, i18n, pattern: dateFormat })}\n \n {renderPill(doc, latestVersion, currentLabel, previousLabel, pillStyle)}\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 void getResults({ lastLoadedPage: 1 })\n }, [getResults])\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"],"names":["ReactSelect","fieldBaseClass","useConfig","useTranslation","formatDate","qs","React","useCallback","useEffect","useState","renderPill","baseClass","maxResultsPerRequest","baseOptions","SelectComparison","props","baseURL","latestDraftVersion","latestPublishedVersion","onChange","parentID","value","versionID","admin","dateFormat","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","search","stringify","response","fetch","credentials","headers","language","ok","data","json","docs","length","versionInfo","draft","currentLabel","latestVersion","pillStyle","undefined","previousLabel","published","additionalOptions","map","doc","status","version","_status","label","div","date","updatedAt","pattern","existingOptions","hasNextPage","filteredOptions","filter","option","index","self","findIndex","className","Boolean","join","isClearable","isSearchable","onMenuScrollToBottom","placeholder"],"mappings":"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"}
|
|
@@ -2,9 +2,10 @@ import type { PaginatedDocs, SanitizedCollectionConfig } from 'payload';
|
|
|
2
2
|
import type { CompareOption } from '../Default/types.js';
|
|
3
3
|
export type Props = {
|
|
4
4
|
baseURL: string;
|
|
5
|
+
latestDraftVersion?: string;
|
|
6
|
+
latestPublishedVersion?: string;
|
|
5
7
|
onChange: (val: CompareOption) => void;
|
|
6
8
|
parentID?: number | string;
|
|
7
|
-
publishedDoc: any;
|
|
8
9
|
value: CompareOption;
|
|
9
10
|
versionID: string;
|
|
10
11
|
};
|
|
@@ -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,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,
|
|
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,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,KAAK,EAAE,aAAa,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB,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,"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 onChange: (val: CompareOption) => void\n parentID?: number | string\n
|
|
1
|
+
{"version":3,"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 latestDraftVersion?: string\n latestPublishedVersion?: string\n onChange: (val: CompareOption) => void\n parentID?: number | string\n value: CompareOption\n versionID: 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"],"names":[],"mappings":"AA2BA,WAGC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAGlB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Version/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAQhB,eAAO,MAAM,WAAW,EAAE,iBAiHzB,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { notFound } from 'next/navigation.js';
|
|
3
3
|
import React from 'react';
|
|
4
|
+
import { getLatestVersion } from '../Versions/getLatestVersion.js';
|
|
4
5
|
import { DefaultVersionView } from './Default/index.js';
|
|
5
6
|
export const VersionView = async (props)=>{
|
|
6
7
|
const { initPageResult, routeSegments } = props;
|
|
@@ -12,8 +13,8 @@ export const VersionView = async (props)=>{
|
|
|
12
13
|
let docPermissions;
|
|
13
14
|
let slug;
|
|
14
15
|
let doc;
|
|
15
|
-
let
|
|
16
|
-
let
|
|
16
|
+
let latestPublishedVersion = null;
|
|
17
|
+
let latestDraftVersion = null;
|
|
17
18
|
if (collectionSlug) {
|
|
18
19
|
// /collections/:slug/:id/versions/:versionID
|
|
19
20
|
slug = collectionSlug;
|
|
@@ -28,26 +29,10 @@ export const VersionView = async (props)=>{
|
|
|
28
29
|
req,
|
|
29
30
|
user
|
|
30
31
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
draft: false,
|
|
36
|
-
locale: '*',
|
|
37
|
-
overrideAccess: false,
|
|
38
|
-
req,
|
|
39
|
-
user
|
|
40
|
-
});
|
|
41
|
-
mostRecentDoc = await payload.findByID({
|
|
42
|
-
id,
|
|
43
|
-
collection: slug,
|
|
44
|
-
depth: 1,
|
|
45
|
-
draft: true,
|
|
46
|
-
locale: '*',
|
|
47
|
-
overrideAccess: false,
|
|
48
|
-
req,
|
|
49
|
-
user
|
|
50
|
-
});
|
|
32
|
+
if (collectionConfig?.versions?.drafts) {
|
|
33
|
+
latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'collection');
|
|
34
|
+
latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'collection');
|
|
35
|
+
}
|
|
51
36
|
} catch (error) {
|
|
52
37
|
return notFound();
|
|
53
38
|
}
|
|
@@ -66,42 +51,36 @@ export const VersionView = async (props)=>{
|
|
|
66
51
|
req,
|
|
67
52
|
user
|
|
68
53
|
});
|
|
69
|
-
|
|
70
|
-
slug,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
locale: '*',
|
|
74
|
-
overrideAccess: false,
|
|
75
|
-
req,
|
|
76
|
-
user
|
|
77
|
-
});
|
|
78
|
-
mostRecentDoc = await payload.findGlobal({
|
|
79
|
-
slug,
|
|
80
|
-
depth: 1,
|
|
81
|
-
draft: true,
|
|
82
|
-
locale: '*',
|
|
83
|
-
overrideAccess: false,
|
|
84
|
-
req,
|
|
85
|
-
user
|
|
86
|
-
});
|
|
54
|
+
if (globalConfig?.versions?.drafts) {
|
|
55
|
+
latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'global');
|
|
56
|
+
latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'global');
|
|
57
|
+
}
|
|
87
58
|
} catch (error) {
|
|
88
59
|
return notFound();
|
|
89
60
|
}
|
|
90
61
|
}
|
|
62
|
+
const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt;
|
|
63
|
+
if (publishedNewerThanDraft) {
|
|
64
|
+
latestDraftVersion = {
|
|
65
|
+
id: '',
|
|
66
|
+
updatedAt: ''
|
|
67
|
+
};
|
|
68
|
+
}
|
|
91
69
|
const localeOptions = localization && localization?.locales && localization.locales.map(({ code, label })=>({
|
|
92
70
|
label: typeof label === 'string' ? label : '',
|
|
93
71
|
value: code
|
|
94
72
|
}));
|
|
73
|
+
const latestVersion = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt ? latestPublishedVersion : latestDraftVersion;
|
|
95
74
|
if (!doc) {
|
|
96
75
|
return notFound();
|
|
97
76
|
}
|
|
98
77
|
return /*#__PURE__*/ _jsx(DefaultVersionView, {
|
|
99
78
|
doc: doc,
|
|
100
79
|
docPermissions: docPermissions,
|
|
101
|
-
initialComparisonDoc:
|
|
80
|
+
initialComparisonDoc: latestVersion,
|
|
81
|
+
latestDraftVersion: latestDraftVersion.id,
|
|
82
|
+
latestPublishedVersion: latestPublishedVersion.id,
|
|
102
83
|
localeOptions: localeOptions,
|
|
103
|
-
mostRecentDoc: mostRecentDoc,
|
|
104
|
-
publishedDoc: publishedDoc,
|
|
105
84
|
versionID: versionID
|
|
106
85
|
});
|
|
107
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n CollectionPermission,\n Document,\n EditViewComponent,\n GlobalPermission,\n OptionObject,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { DefaultVersionView } from './Default/index.js'\n\nexport const VersionView: EditViewComponent = async (props) => {\n const { initPageResult, routeSegments } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const { localization } = config\n\n let docPermissions: CollectionPermission | GlobalPermission\n let slug: string\n\n let doc: Document\n let
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Version/index.tsx"],"sourcesContent":["import type {\n CollectionPermission,\n Document,\n EditViewComponent,\n GlobalPermission,\n OptionObject,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\nimport React from 'react'\n\nimport { getLatestVersion } from '../Versions/getLatestVersion.js'\nimport { DefaultVersionView } from './Default/index.js'\n\nexport const VersionView: EditViewComponent = async (props) => {\n const { initPageResult, routeSegments } = props\n\n const {\n collectionConfig,\n docID: id,\n globalConfig,\n permissions,\n req,\n req: { payload, payload: { config } = {}, user } = {},\n } = initPageResult\n\n const versionID = routeSegments[routeSegments.length - 1]\n\n const collectionSlug = collectionConfig?.slug\n const globalSlug = globalConfig?.slug\n\n const { localization } = config\n\n let docPermissions: CollectionPermission | GlobalPermission\n let slug: string\n\n let doc: Document\n let latestPublishedVersion = null\n let latestDraftVersion = null\n\n if (collectionSlug) {\n // /collections/:slug/:id/versions/:versionID\n slug = collectionSlug\n docPermissions = permissions.collections[collectionSlug]\n\n try {\n doc = await payload.findVersionByID({\n id: versionID,\n collection: slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (collectionConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'collection')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'collection')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n if (globalSlug) {\n // /globals/:slug/versions/:versionID\n slug = globalSlug\n docPermissions = permissions.globals[globalSlug]\n\n try {\n doc = await payload.findGlobalVersionByID({\n id: versionID,\n slug,\n depth: 1,\n locale: '*',\n overrideAccess: false,\n req,\n user,\n })\n\n if (globalConfig?.versions?.drafts) {\n latestDraftVersion = await getLatestVersion(payload, slug, 'draft', 'global')\n latestPublishedVersion = await getLatestVersion(payload, slug, 'published', 'global')\n }\n } catch (error) {\n return notFound()\n }\n }\n\n const publishedNewerThanDraft = latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n\n if (publishedNewerThanDraft) {\n latestDraftVersion = {\n id: '',\n updatedAt: '',\n }\n }\n\n const localeOptions: OptionObject[] =\n localization &&\n localization?.locales &&\n localization.locales.map(({ code, label }) => ({\n label: typeof label === 'string' ? label : '',\n value: code,\n }))\n\n const latestVersion =\n latestPublishedVersion?.updatedAt > latestDraftVersion?.updatedAt\n ? latestPublishedVersion\n : latestDraftVersion\n\n if (!doc) {\n return notFound()\n }\n\n return (\n <DefaultVersionView\n doc={doc}\n docPermissions={docPermissions}\n initialComparisonDoc={latestVersion}\n latestDraftVersion={latestDraftVersion.id}\n latestPublishedVersion={latestPublishedVersion.id}\n localeOptions={localeOptions}\n versionID={versionID}\n />\n )\n}\n"],"names":["notFound","React","getLatestVersion","DefaultVersionView","VersionView","props","initPageResult","routeSegments","collectionConfig","docID","id","globalConfig","permissions","req","payload","config","user","versionID","length","collectionSlug","slug","globalSlug","localization","docPermissions","doc","latestPublishedVersion","latestDraftVersion","collections","findVersionByID","collection","depth","locale","overrideAccess","versions","drafts","error","globals","findGlobalVersionByID","publishedNewerThanDraft","updatedAt","localeOptions","locales","map","code","label","value","latestVersion","initialComparisonDoc"],"mappings":";AAQA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,WAAW,QAAO;AAEzB,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAASC,kBAAkB,QAAQ,qBAAoB;AAEvD,OAAO,MAAMC,cAAiC,OAAOC;IACnD,MAAM,EAAEC,cAAc,EAAEC,aAAa,EAAE,GAAGF;IAE1C,MAAM,EACJG,gBAAgB,EAChBC,OAAOC,EAAE,EACTC,YAAY,EACZC,WAAW,EACXC,GAAG,EACHA,KAAK,EAAEC,OAAO,EAAEA,SAAS,EAAEC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAG,CAAC,CAAC,EACtD,GAAGV;IAEJ,MAAMW,YAAYV,aAAa,CAACA,cAAcW,MAAM,GAAG,EAAE;IAEzD,MAAMC,iBAAiBX,kBAAkBY;IACzC,MAAMC,aAAaV,cAAcS;IAEjC,MAAM,EAAEE,YAAY,EAAE,GAAGP;IAEzB,IAAIQ;IACJ,IAAIH;IAEJ,IAAII;IACJ,IAAIC,yBAAyB;IAC7B,IAAIC,qBAAqB;IAEzB,IAAIP,gBAAgB;QAClB,6CAA6C;QAC7CC,OAAOD;QACPI,iBAAiBX,YAAYe,WAAW,CAACR,eAAe;QAExD,IAAI;YACFK,MAAM,MAAMV,QAAQc,eAAe,CAAC;gBAClClB,IAAIO;gBACJY,YAAYT;gBACZU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIR,kBAAkByB,UAAUC,QAAQ;gBACtCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,IAAIqB,YAAY;QACd,qCAAqC;QACrCD,OAAOC;QACPE,iBAAiBX,YAAYwB,OAAO,CAACf,WAAW;QAEhD,IAAI;YACFG,MAAM,MAAMV,QAAQuB,qBAAqB,CAAC;gBACxC3B,IAAIO;gBACJG;gBACAU,OAAO;gBACPC,QAAQ;gBACRC,gBAAgB;gBAChBnB;gBACAG;YACF;YAEA,IAAIL,cAAcsB,UAAUC,QAAQ;gBAClCR,qBAAqB,MAAMxB,iBAAiBY,SAASM,MAAM,SAAS;gBACpEK,yBAAyB,MAAMvB,iBAAiBY,SAASM,MAAM,aAAa;YAC9E;QACF,EAAE,OAAOe,OAAO;YACd,OAAOnC;QACT;IACF;IAEA,MAAMsC,0BAA0Bb,wBAAwBc,YAAYb,oBAAoBa;IAExF,IAAID,yBAAyB;QAC3BZ,qBAAqB;YACnBhB,IAAI;YACJ6B,WAAW;QACb;IACF;IAEA,MAAMC,gBACJlB,gBACAA,cAAcmB,WACdnB,aAAamB,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAM,CAAA;YAC7CA,OAAO,OAAOA,UAAU,WAAWA,QAAQ;YAC3CC,OAAOF;QACT,CAAA;IAEF,MAAMG,gBACJrB,wBAAwBc,YAAYb,oBAAoBa,YACpDd,yBACAC;IAEN,IAAI,CAACF,KAAK;QACR,OAAOxB;IACT;IAEA,qBACE,KAACG;QACCqB,KAAKA;QACLD,gBAAgBA;QAChBwB,sBAAsBD;QACtBpB,oBAAoBA,mBAAmBhB,EAAE;QACzCe,wBAAwBA,uBAAuBf,EAAE;QACjD8B,eAAeA;QACfvB,WAAWA;;AAGjB,EAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { I18n } from '@payloadcms/translations';
|
|
2
2
|
import type { SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig } from 'payload';
|
|
3
3
|
import { type Column } from '@payloadcms/ui';
|
|
4
|
-
export declare const buildVersionColumns: ({ collectionConfig, docID, globalConfig, i18n: { t }, }: {
|
|
4
|
+
export declare const buildVersionColumns: ({ collectionConfig, docID, globalConfig, i18n: { t }, latestDraftVersion, latestPublishedVersion, }: {
|
|
5
5
|
collectionConfig?: SanitizedCollectionConfig;
|
|
6
6
|
config: SanitizedConfig;
|
|
7
7
|
docID?: number | string;
|
|
8
8
|
globalConfig?: SanitizedGlobalConfig;
|
|
9
9
|
i18n: I18n;
|
|
10
|
+
latestDraftVersion?: string;
|
|
11
|
+
latestPublishedVersion?: string;
|
|
10
12
|
}) => Column[];
|
|
11
13
|
//# sourceMappingURL=buildColumns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildColumns.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/buildColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEhG,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,gBAAgB,CAAA;AAOxD,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"buildColumns.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/buildColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEhG,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,gBAAgB,CAAA;AAOxD,eAAO,MAAM,mBAAmB,wGAO7B;IACD,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,IAAI,EAAE,IAAI,CAAA;IACV,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC,KAAG,MAAM,EAyDT,CAAA"}
|
|
@@ -4,7 +4,7 @@ import React from 'react';
|
|
|
4
4
|
import { AutosaveCell } from './cells/AutosaveCell/index.js';
|
|
5
5
|
import { CreatedAtCell } from './cells/CreatedAt/index.js';
|
|
6
6
|
import { IDCell } from './cells/ID/index.js';
|
|
7
|
-
export const buildVersionColumns = ({ collectionConfig, docID, globalConfig, i18n: { t } })=>{
|
|
7
|
+
export const buildVersionColumns = ({ collectionConfig, docID, globalConfig, i18n: { t }, latestDraftVersion, latestPublishedVersion })=>{
|
|
8
8
|
const entityConfig = collectionConfig || globalConfig;
|
|
9
9
|
const columns = [
|
|
10
10
|
{
|
|
@@ -49,11 +49,14 @@ export const buildVersionColumns = ({ collectionConfig, docID, globalConfig, i18
|
|
|
49
49
|
accessor: '_status',
|
|
50
50
|
active: true,
|
|
51
51
|
components: {
|
|
52
|
-
Cell: /*#__PURE__*/ _jsx(AutosaveCell, {
|
|
52
|
+
Cell: /*#__PURE__*/ _jsx(AutosaveCell, {
|
|
53
|
+
latestDraftVersion: latestDraftVersion,
|
|
54
|
+
latestPublishedVersion: latestPublishedVersion
|
|
55
|
+
}),
|
|
53
56
|
Heading: /*#__PURE__*/ _jsx(SortColumn, {
|
|
54
|
-
Label: t('version:
|
|
57
|
+
Label: t('version:status'),
|
|
55
58
|
disable: true,
|
|
56
|
-
name: "
|
|
59
|
+
name: "status"
|
|
57
60
|
})
|
|
58
61
|
}
|
|
59
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/views/Versions/buildColumns.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { type Column, SortColumn } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { AutosaveCell } from './cells/AutosaveCell/index.js'\nimport { CreatedAtCell } from './cells/CreatedAt/index.js'\nimport { IDCell } from './cells/ID/index.js'\n\nexport const buildVersionColumns = ({\n collectionConfig,\n docID,\n globalConfig,\n i18n: { t },\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docID?: number | string\n globalConfig?: SanitizedGlobalConfig\n i18n: I18n\n}): Column[] => {\n const entityConfig = collectionConfig || globalConfig\n\n const columns: Column[] = [\n {\n name: '',\n type: 'date',\n Label: '',\n accessor: 'updatedAt',\n active: true,\n components: {\n Cell: (\n <CreatedAtCell\n collectionSlug={collectionConfig?.slug}\n docID={docID}\n globalSlug={globalConfig?.slug}\n />\n ),\n Heading: <SortColumn Label={t('general:updatedAt')} name=\"updatedAt\" />,\n },\n },\n {\n name: '',\n type: 'text',\n Label: '',\n accessor: 'id',\n active: true,\n components: {\n Cell: <IDCell />,\n Heading: <SortColumn Label={t('version:versionID')} disable name=\"id\" />,\n },\n },\n ]\n\n if (\n entityConfig?.versions?.drafts ||\n (entityConfig?.versions?.drafts && entityConfig.versions.drafts?.autosave)\n ) {\n columns.push({\n name: '',\n type: 'checkbox',\n Label: '',\n accessor: '_status',\n active: true,\n components: {\n Cell: <AutosaveCell
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Versions/buildColumns.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig } from 'payload'\n\nimport { type Column, SortColumn } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { AutosaveCell } from './cells/AutosaveCell/index.js'\nimport { CreatedAtCell } from './cells/CreatedAt/index.js'\nimport { IDCell } from './cells/ID/index.js'\n\nexport const buildVersionColumns = ({\n collectionConfig,\n docID,\n globalConfig,\n i18n: { t },\n latestDraftVersion,\n latestPublishedVersion,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n docID?: number | string\n globalConfig?: SanitizedGlobalConfig\n i18n: I18n\n latestDraftVersion?: string\n latestPublishedVersion?: string\n}): Column[] => {\n const entityConfig = collectionConfig || globalConfig\n\n const columns: Column[] = [\n {\n name: '',\n type: 'date',\n Label: '',\n accessor: 'updatedAt',\n active: true,\n components: {\n Cell: (\n <CreatedAtCell\n collectionSlug={collectionConfig?.slug}\n docID={docID}\n globalSlug={globalConfig?.slug}\n />\n ),\n Heading: <SortColumn Label={t('general:updatedAt')} name=\"updatedAt\" />,\n },\n },\n {\n name: '',\n type: 'text',\n Label: '',\n accessor: 'id',\n active: true,\n components: {\n Cell: <IDCell />,\n Heading: <SortColumn Label={t('version:versionID')} disable name=\"id\" />,\n },\n },\n ]\n\n if (\n entityConfig?.versions?.drafts ||\n (entityConfig?.versions?.drafts && entityConfig.versions.drafts?.autosave)\n ) {\n columns.push({\n name: '',\n type: 'checkbox',\n Label: '',\n accessor: '_status',\n active: true,\n components: {\n Cell: (\n <AutosaveCell\n latestDraftVersion={latestDraftVersion}\n latestPublishedVersion={latestPublishedVersion}\n />\n ),\n Heading: <SortColumn Label={t('version:status')} disable name=\"status\" />,\n },\n })\n }\n\n return columns\n}\n"],"names":["SortColumn","React","AutosaveCell","CreatedAtCell","IDCell","buildVersionColumns","collectionConfig","docID","globalConfig","i18n","t","latestDraftVersion","latestPublishedVersion","entityConfig","columns","name","type","Label","accessor","active","components","Cell","collectionSlug","slug","globalSlug","Heading","disable","versions","drafts","autosave","push"],"mappings":";AAGA,SAAsBA,UAAU,QAAQ,iBAAgB;AACxD,OAAOC,WAAW,QAAO;AAEzB,SAASC,YAAY,QAAQ,gCAA+B;AAC5D,SAASC,aAAa,QAAQ,6BAA4B;AAC1D,SAASC,MAAM,QAAQ,sBAAqB;AAE5C,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,gBAAgB,EAChBC,KAAK,EACLC,YAAY,EACZC,MAAM,EAAEC,CAAC,EAAE,EACXC,kBAAkB,EAClBC,sBAAsB,EASvB;IACC,MAAMC,eAAeP,oBAAoBE;IAEzC,MAAMM,UAAoB;QACxB;YACEC,MAAM;YACNC,MAAM;YACNC,OAAO;YACPC,UAAU;YACVC,QAAQ;YACRC,YAAY;gBACVC,oBACE,KAAClB;oBACCmB,gBAAgBhB,kBAAkBiB;oBAClChB,OAAOA;oBACPiB,YAAYhB,cAAce;;gBAG9BE,uBAAS,KAACzB;oBAAWiB,OAAOP,EAAE;oBAAsBK,MAAK;;YAC3D;QACF;QACA;YACEA,MAAM;YACNC,MAAM;YACNC,OAAO;YACPC,UAAU;YACVC,QAAQ;YACRC,YAAY;gBACVC,oBAAM,KAACjB;gBACPqB,uBAAS,KAACzB;oBAAWiB,OAAOP,EAAE;oBAAsBgB,OAAO;oBAACX,MAAK;;YACnE;QACF;KACD;IAED,IACEF,cAAcc,UAAUC,UACvBf,cAAcc,UAAUC,UAAUf,aAAac,QAAQ,CAACC,MAAM,EAAEC,UACjE;QACAf,QAAQgB,IAAI,CAAC;YACXf,MAAM;YACNC,MAAM;YACNC,OAAO;YACPC,UAAU;YACVC,QAAQ;YACRC,YAAY;gBACVC,oBACE,KAACnB;oBACCS,oBAAoBA;oBACpBC,wBAAwBA;;gBAG5Ba,uBAAS,KAACzB;oBAAWiB,OAAOP,EAAE;oBAAmBgB,OAAO;oBAACX,MAAK;;YAChE;QACF;IACF;IAEA,OAAOD;AACT,EAAC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
2
|
+
type AutosaveCellProps = {
|
|
3
|
+
latestDraftVersion?: string;
|
|
4
|
+
latestPublishedVersion?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const renderPill: (data: any, latestVersion: any, currentLabel: any, previousLabel: any, pillStyle: any) => React.JSX.Element;
|
|
7
|
+
export declare const AutosaveCell: React.FC<AutosaveCellProps>;
|
|
8
|
+
export {};
|
|
3
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,KAAK,iBAAiB,GAAG;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,UAAU,6GAWtB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqCpD,CAAA"}
|
|
@@ -2,9 +2,38 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Pill, useTableCell, useTranslation } from '@payloadcms/ui';
|
|
4
4
|
import React, { Fragment } from 'react';
|
|
5
|
-
export const
|
|
5
|
+
export const renderPill = (data, latestVersion, currentLabel, previousLabel, pillStyle)=>{
|
|
6
|
+
return /*#__PURE__*/ _jsxs(React.Fragment, {
|
|
7
|
+
children: [
|
|
8
|
+
data?.id === latestVersion ? /*#__PURE__*/ _jsx(Pill, {
|
|
9
|
+
pillStyle: pillStyle,
|
|
10
|
+
children: currentLabel
|
|
11
|
+
}) : /*#__PURE__*/ _jsx(Pill, {
|
|
12
|
+
children: previousLabel
|
|
13
|
+
}),
|
|
14
|
+
" "
|
|
15
|
+
]
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
export const AutosaveCell = ({ latestDraftVersion, latestPublishedVersion })=>{
|
|
6
19
|
const { t } = useTranslation();
|
|
7
20
|
const { rowData } = useTableCell();
|
|
21
|
+
const status = rowData?.version._status;
|
|
22
|
+
const versionInfo = {
|
|
23
|
+
draft: {
|
|
24
|
+
currentLabel: t('version:currentDraft'),
|
|
25
|
+
latestVersion: latestDraftVersion,
|
|
26
|
+
pillStyle: undefined,
|
|
27
|
+
previousLabel: t('version:draft')
|
|
28
|
+
},
|
|
29
|
+
published: {
|
|
30
|
+
currentLabel: t('version:currentPublishedVersion'),
|
|
31
|
+
latestVersion: latestPublishedVersion,
|
|
32
|
+
pillStyle: 'success',
|
|
33
|
+
previousLabel: t('version:previouslyPublished')
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
const { currentLabel, latestVersion, pillStyle, previousLabel } = versionInfo[status] || {};
|
|
8
37
|
return /*#__PURE__*/ _jsxs(Fragment, {
|
|
9
38
|
children: [
|
|
10
39
|
rowData?.autosave && /*#__PURE__*/ _jsxs(React.Fragment, {
|
|
@@ -15,18 +44,7 @@ export const AutosaveCell = ()=>{
|
|
|
15
44
|
" "
|
|
16
45
|
]
|
|
17
46
|
}),
|
|
18
|
-
|
|
19
|
-
children: [
|
|
20
|
-
/*#__PURE__*/ _jsx(Pill, {
|
|
21
|
-
pillStyle: "success",
|
|
22
|
-
children: t('version:published')
|
|
23
|
-
}),
|
|
24
|
-
" "
|
|
25
|
-
]
|
|
26
|
-
}),
|
|
27
|
-
rowData?.version._status === 'draft' && /*#__PURE__*/ _jsx(Pill, {
|
|
28
|
-
children: t('version:draft')
|
|
29
|
-
})
|
|
47
|
+
status && renderPill(rowData, latestVersion, currentLabel, previousLabel, pillStyle)
|
|
30
48
|
]
|
|
31
49
|
});
|
|
32
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"sourcesContent":["'use client'\nimport { Pill, useTableCell, useTranslation } from '@payloadcms/ui'\nimport React, { Fragment } from 'react'\n\nexport const AutosaveCell: React.FC = () => {\n const { t } = useTranslation()\n
|
|
1
|
+
{"version":3,"sources":["../../../../../src/views/Versions/cells/AutosaveCell/index.tsx"],"sourcesContent":["'use client'\nimport { Pill, useTableCell, useTranslation } from '@payloadcms/ui'\nimport React, { Fragment } from 'react'\n\ntype AutosaveCellProps = {\n latestDraftVersion?: string\n latestPublishedVersion?: string\n}\n\nexport const renderPill = (data, latestVersion, currentLabel, previousLabel, pillStyle) => {\n return (\n <React.Fragment>\n {data?.id === latestVersion ? (\n <Pill pillStyle={pillStyle}>{currentLabel}</Pill>\n ) : (\n <Pill>{previousLabel}</Pill>\n )}\n \n </React.Fragment>\n )\n}\n\nexport const AutosaveCell: React.FC<AutosaveCellProps> = ({\n latestDraftVersion,\n latestPublishedVersion,\n}) => {\n const { t } = useTranslation()\n const { rowData } = useTableCell()\n\n const status = rowData?.version._status\n\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 { currentLabel, latestVersion, pillStyle, previousLabel } = versionInfo[status] || {}\n\n return (\n <Fragment>\n {rowData?.autosave && (\n <React.Fragment>\n <Pill>{t('version:autosave')}</Pill>\n \n </React.Fragment>\n )}\n {status && renderPill(rowData, latestVersion, currentLabel, previousLabel, pillStyle)}\n </Fragment>\n )\n}\n"],"names":["Pill","useTableCell","useTranslation","React","Fragment","renderPill","data","latestVersion","currentLabel","previousLabel","pillStyle","id","AutosaveCell","latestDraftVersion","latestPublishedVersion","t","rowData","status","version","_status","versionInfo","draft","undefined","published","autosave"],"mappings":"AAAA;;AACA,SAASA,IAAI,EAAEC,YAAY,EAAEC,cAAc,QAAQ,iBAAgB;AACnE,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAOvC,OAAO,MAAMC,aAAa,CAACC,MAAMC,eAAeC,cAAcC,eAAeC;IAC3E,qBACE,MAACP,MAAMC,QAAQ;;YACZE,MAAMK,OAAOJ,8BACZ,KAACP;gBAAKU,WAAWA;0BAAYF;+BAE7B,KAACR;0BAAMS;;YACP;;;AAIR,EAAC;AAED,OAAO,MAAMG,eAA4C,CAAC,EACxDC,kBAAkB,EAClBC,sBAAsB,EACvB;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGb;IACd,MAAM,EAAEc,OAAO,EAAE,GAAGf;IAEpB,MAAMgB,SAASD,SAASE,QAAQC;IAEhC,MAAMC,cAAc;QAClBC,OAAO;YACLb,cAAcO,EAAE;YAChBR,eAAeM;YACfH,WAAWY;YACXb,eAAeM,EAAE;QACnB;QACAQ,WAAW;YACTf,cAAcO,EAAE;YAChBR,eAAeO;YACfJ,WAAW;YACXD,eAAeM,EAAE;QACnB;IACF;IAEA,MAAM,EAAEP,YAAY,EAAED,aAAa,EAAEG,SAAS,EAAED,aAAa,EAAE,GAAGW,WAAW,CAACH,OAAO,IAAI,CAAC;IAE1F,qBACE,MAACb;;YACEY,SAASQ,0BACR,MAACrB,MAAMC,QAAQ;;kCACb,KAACJ;kCAAMe,EAAE;;oBAA2B;;;YAIvCE,UAAUZ,WAAWW,SAAST,eAAeC,cAAcC,eAAeC;;;AAGjF,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLatestVersion.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/getLatestVersion.ts"],"names":[],"mappings":"AAAA,wBAAsB,gBAAgB,CAAC,OAAO,KAAA,EAAE,IAAI,KAAA,EAAE,MAAM,KAAA,EAAE,IAAI,SAAe;;;GA+BhF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export async function getLatestVersion(payload, slug, status, type = 'collection') {
|
|
2
|
+
try {
|
|
3
|
+
const sharedOptions = {
|
|
4
|
+
depth: 0,
|
|
5
|
+
limit: 1,
|
|
6
|
+
sort: '-updatedAt',
|
|
7
|
+
where: {
|
|
8
|
+
'version._status': {
|
|
9
|
+
equals: status
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
const response = type === 'collection' ? await payload.findVersions({
|
|
14
|
+
collection: slug,
|
|
15
|
+
...sharedOptions
|
|
16
|
+
}) : await payload.findGlobalVersions({
|
|
17
|
+
slug,
|
|
18
|
+
...sharedOptions
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
id: response.docs[0].id,
|
|
22
|
+
updatedAt: response.docs[0].updatedAt
|
|
23
|
+
};
|
|
24
|
+
} catch (e) {
|
|
25
|
+
console.error(e);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=getLatestVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/views/Versions/getLatestVersion.ts"],"sourcesContent":["export async function getLatestVersion(payload, slug, status, type = 'collection') {\n try {\n const sharedOptions = {\n depth: 0,\n limit: 1,\n sort: '-updatedAt',\n where: {\n 'version._status': {\n equals: status,\n },\n },\n }\n\n const response =\n type === 'collection'\n ? await payload.findVersions({\n collection: slug,\n ...sharedOptions,\n })\n : await payload.findGlobalVersions({\n slug,\n ...sharedOptions,\n })\n\n return {\n id: response.docs[0].id,\n updatedAt: response.docs[0].updatedAt,\n }\n } catch (e) {\n console.error(e)\n }\n}\n"],"names":["getLatestVersion","payload","slug","status","type","sharedOptions","depth","limit","sort","where","equals","response","findVersions","collection","findGlobalVersions","id","docs","updatedAt","e","console","error"],"mappings":"AAAA,OAAO,eAAeA,iBAAiBC,OAAO,EAAEC,IAAI,EAAEC,MAAM,EAAEC,OAAO,YAAY;IAC/E,IAAI;QACF,MAAMC,gBAAgB;YACpBC,OAAO;YACPC,OAAO;YACPC,MAAM;YACNC,OAAO;gBACL,mBAAmB;oBACjBC,QAAQP;gBACV;YACF;QACF;QAEA,MAAMQ,WACJP,SAAS,eACL,MAAMH,QAAQW,YAAY,CAAC;YACzBC,YAAYX;YACZ,GAAGG,aAAa;QAClB,KACA,MAAMJ,QAAQa,kBAAkB,CAAC;YAC/BZ;YACA,GAAGG,aAAa;QAClB;QAEN,OAAO;YACLU,IAAIJ,SAASK,IAAI,CAAC,EAAE,CAACD,EAAE;YACvBE,WAAWN,SAASK,IAAI,CAAC,EAAE,CAACC,SAAS;QACvC;IACF,EAAE,OAAOC,GAAG;QACVC,QAAQC,KAAK,CAACF;IAChB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Versions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,SAAS,CAAA;AAW/D,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,aAAa,CAAA;AAEnC,eAAO,MAAM,YAAY,EAAE,iBA8I1B,CAAA"}
|