@strapi/content-manager 5.53.0 → 5.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/ActionsDrawer.js +17 -6
- package/dist/admin/components/ActionsDrawer.js.map +1 -1
- package/dist/admin/components/ActionsDrawer.mjs +19 -8
- package/dist/admin/components/ActionsDrawer.mjs.map +1 -1
- package/dist/admin/components/LeftMenu.js +131 -52
- package/dist/admin/components/LeftMenu.js.map +1 -1
- package/dist/admin/components/LeftMenu.mjs +133 -54
- package/dist/admin/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/history/components/VersionsList.js +37 -43
- package/dist/admin/history/components/VersionsList.js.map +1 -1
- package/dist/admin/history/components/VersionsList.mjs +37 -43
- package/dist/admin/history/components/VersionsList.mjs.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.js +3 -2
- package/dist/admin/hooks/useContentManagerInitData.js.map +1 -1
- package/dist/admin/hooks/useContentManagerInitData.mjs +3 -2
- package/dist/admin/hooks/useContentManagerInitData.mjs.map +1 -1
- package/dist/admin/hooks/useDocumentActions.js +3 -1
- package/dist/admin/hooks/useDocumentActions.js.map +1 -1
- package/dist/admin/hooks/useDocumentActions.mjs +4 -2
- package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
- package/dist/admin/layout.js +2 -4
- package/dist/admin/layout.js.map +1 -1
- package/dist/admin/layout.mjs +2 -4
- package/dist/admin/layout.mjs.map +1 -1
- package/dist/admin/modules/app.js +3 -1
- package/dist/admin/modules/app.js.map +1 -1
- package/dist/admin/modules/app.mjs +3 -1
- package/dist/admin/modules/app.mjs.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.js +15 -20
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +15 -20
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +2 -0
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +2 -0
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js +74 -7
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js.map +1 -1
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs +74 -7
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +7 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +7 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +59 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +60 -3
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js +4 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.mjs +4 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +4 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +4 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js +2 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs +2 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +58 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +58 -2
- package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +25 -2
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +5 -2
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js +5 -1
- package/dist/admin/pages/EditView/components/InputRenderer.js.map +1 -1
- package/dist/admin/pages/EditView/components/InputRenderer.mjs +6 -2
- package/dist/admin/pages/EditView/components/InputRenderer.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +1 -0
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +1 -0
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/preview/components/InputPopover.js +64 -46
- package/dist/admin/preview/components/InputPopover.js.map +1 -1
- package/dist/admin/preview/components/InputPopover.mjs +66 -49
- package/dist/admin/preview/components/InputPopover.mjs.map +1 -1
- package/dist/admin/preview/hooks/usePreviewInputManager.js +23 -7
- package/dist/admin/preview/hooks/usePreviewInputManager.js.map +1 -1
- package/dist/admin/preview/hooks/usePreviewInputManager.mjs +25 -9
- package/dist/admin/preview/hooks/usePreviewInputManager.mjs.map +1 -1
- package/dist/admin/preview/pages/Preview.js +19 -0
- package/dist/admin/preview/pages/Preview.js.map +1 -1
- package/dist/admin/preview/pages/Preview.mjs +20 -1
- package/dist/admin/preview/pages/Preview.mjs.map +1 -1
- package/dist/admin/preview/utils/constants.js +9 -3
- package/dist/admin/preview/utils/constants.js.map +1 -1
- package/dist/admin/preview/utils/constants.mjs +9 -3
- package/dist/admin/preview/utils/constants.mjs.map +1 -1
- package/dist/admin/src/components/ActionsDrawer.d.ts +1 -0
- package/dist/admin/src/modules/app.d.ts +2 -0
- package/dist/admin/src/pages/EditView/components/EditorToolbarObserver.d.ts +2 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.d.ts +5 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +5 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.d.ts +5 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/EditorLayout.d.ts +2 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/Relations/RelationModal.d.ts +14 -1
- package/dist/admin/src/preview/components/InputPopover.d.ts +2 -1
- package/dist/admin/src/preview/pages/Preview.d.ts +1 -0
- package/dist/admin/src/preview/utils/constants.d.ts +8 -1
- package/dist/admin/src/services/init.d.ts +1 -0
- package/dist/admin/src/utils/contentStructure.d.ts +59 -0
- package/dist/admin/utils/contentStructure.js +136 -0
- package/dist/admin/utils/contentStructure.js.map +1 -0
- package/dist/admin/utils/contentStructure.mjs +130 -0
- package/dist/admin/utils/contentStructure.mjs.map +1 -0
- package/dist/server/controllers/init.js +7 -2
- package/dist/server/controllers/init.js.map +1 -1
- package/dist/server/controllers/init.mjs +7 -2
- package/dist/server/controllers/init.mjs.map +1 -1
- package/dist/server/preview/controllers/previewScript.js +548 -22
- package/dist/server/services/content-structure.js +53 -0
- package/dist/server/services/content-structure.js.map +1 -0
- package/dist/server/services/content-structure.mjs +51 -0
- package/dist/server/services/content-structure.mjs.map +1 -0
- package/dist/server/services/index.js +2 -0
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +2 -0
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/src/controllers/index.d.ts +1 -1
- package/dist/server/src/controllers/init.d.ts +1 -1
- package/dist/server/src/controllers/init.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +6 -1
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/content-structure.d.ts +8 -0
- package/dist/server/src/services/content-structure.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +5 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/shared/contracts/init.d.ts +2 -0
- package/dist/shared/contracts/init.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { SubNav } from '@strapi/admin/strapi-admin';
|
|
4
|
-
import { useFilter, useCollator, Divider, Flex, Loader, Searchbar, Box } from '@strapi/design-system';
|
|
3
|
+
import { useScopedPersistentState, SubNav } from '@strapi/admin/strapi-admin';
|
|
4
|
+
import { useFilter, useCollator, Divider, Flex, Loader, Searchbar, Box, Typography } from '@strapi/design-system';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import { useLocation } from 'react-router-dom';
|
|
7
7
|
import { useContentManagerInitData } from '../hooks/useContentManagerInitData.mjs';
|
|
8
8
|
import { useTypedSelector } from '../modules/hooks.mjs';
|
|
9
|
+
import { buildContentStructureSection, filterTreeLinks, countTreeLinks } from '../utils/contentStructure.mjs';
|
|
9
10
|
import { getTranslation } from '../utils/translations.mjs';
|
|
10
11
|
|
|
12
|
+
const COLLAPSED_FOLDERS_KEY = 'STRAPI_CM_COLLAPSED_FOLDERS';
|
|
13
|
+
const getFolderToken = (sectionId, folderId)=>`${sectionId}/${folderId}`;
|
|
14
|
+
const collectFolderTokens = (sectionId, groups, tokens)=>{
|
|
15
|
+
for (const group of groups){
|
|
16
|
+
tokens.add(getFolderToken(sectionId, group.id));
|
|
17
|
+
const childGroups = group.children.filter((child)=>child.type === 'group');
|
|
18
|
+
collectFolderTokens(sectionId, childGroups, tokens);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
11
21
|
const LeftMenu = ({ isFullPage = false })=>{
|
|
12
22
|
const [search, setSearch] = React.useState('');
|
|
23
|
+
const [storedCollapsedFolders, setStoredCollapsedFolders] = useScopedPersistentState(COLLAPSED_FOLDERS_KEY, []);
|
|
13
24
|
const { formatMessage, locale } = useIntl();
|
|
14
25
|
const { search: locationSearch } = useLocation();
|
|
15
26
|
const i18nLocale = new URLSearchParams(locationSearch).get('plugins[i18n][locale]');
|
|
@@ -17,56 +28,54 @@ const LeftMenu = ({ isFullPage = false })=>{
|
|
|
17
28
|
const { isLoading } = useContentManagerInitData();
|
|
18
29
|
const collectionTypeLinks = useTypedSelector((state)=>state['content-manager'].app.collectionTypeLinks);
|
|
19
30
|
const singleTypeLinks = useTypedSelector((state)=>state['content-manager'].app.singleTypeLinks);
|
|
31
|
+
const contentStructure = useTypedSelector((state)=>state['content-manager'].app.contentStructure);
|
|
20
32
|
const { contains } = useFilter(locale, {
|
|
21
33
|
sensitivity: 'base'
|
|
22
34
|
});
|
|
23
35
|
const formatter = useCollator(locale, {
|
|
24
36
|
sensitivity: 'base'
|
|
25
37
|
});
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
};
|
|
61
|
-
})
|
|
62
|
-
})), [
|
|
38
|
+
const compareLinks = React.useCallback((a, b)=>{
|
|
39
|
+
return formatter.compare(a.title, b.title);
|
|
40
|
+
}, [
|
|
41
|
+
formatter
|
|
42
|
+
]);
|
|
43
|
+
const collectionTypesLabel = formatMessage({
|
|
44
|
+
id: getTranslation('components.LeftMenu.collection-types'),
|
|
45
|
+
defaultMessage: 'Collection Types'
|
|
46
|
+
});
|
|
47
|
+
const singleTypesLabel = formatMessage({
|
|
48
|
+
id: getTranslation('components.LeftMenu.single-types'),
|
|
49
|
+
defaultMessage: 'Single Types'
|
|
50
|
+
});
|
|
51
|
+
const sections = React.useMemo(()=>{
|
|
52
|
+
const collectionTypesSection = buildContentStructureSection({
|
|
53
|
+
id: 'collectionTypes',
|
|
54
|
+
groups: contentStructure?.collectionTypes ?? [],
|
|
55
|
+
title: collectionTypesLabel,
|
|
56
|
+
links: collectionTypeLinks,
|
|
57
|
+
compareLinks
|
|
58
|
+
});
|
|
59
|
+
const singleTypesSection = buildContentStructureSection({
|
|
60
|
+
id: 'singleTypes',
|
|
61
|
+
groups: contentStructure?.singleTypes ?? [],
|
|
62
|
+
title: singleTypesLabel,
|
|
63
|
+
links: singleTypeLinks,
|
|
64
|
+
compareLinks
|
|
65
|
+
});
|
|
66
|
+
return [
|
|
67
|
+
collectionTypesSection,
|
|
68
|
+
singleTypesSection
|
|
69
|
+
];
|
|
70
|
+
}, [
|
|
71
|
+
collectionTypesLabel,
|
|
63
72
|
collectionTypeLinks,
|
|
64
|
-
|
|
73
|
+
singleTypesLabel,
|
|
74
|
+
contentStructure,
|
|
65
75
|
singleTypeLinks,
|
|
66
|
-
|
|
67
|
-
formatMessage,
|
|
68
|
-
formatter
|
|
76
|
+
compareLinks
|
|
69
77
|
]);
|
|
78
|
+
const trimmedSearch = search.trim();
|
|
70
79
|
const handleClear = ()=>{
|
|
71
80
|
setSearch('');
|
|
72
81
|
};
|
|
@@ -77,6 +86,64 @@ const LeftMenu = ({ isFullPage = false })=>{
|
|
|
77
86
|
id: getTranslation('header.name'),
|
|
78
87
|
defaultMessage: 'Content Manager'
|
|
79
88
|
});
|
|
89
|
+
const formatLinkTitle = (link)=>formatMessage({
|
|
90
|
+
id: link.title,
|
|
91
|
+
defaultMessage: link.title
|
|
92
|
+
});
|
|
93
|
+
const linkTo = (link)=>({
|
|
94
|
+
pathname: link.to,
|
|
95
|
+
search: i18nLocale ? `?plugins[i18n][locale]=${i18nLocale}` : ''
|
|
96
|
+
});
|
|
97
|
+
const collapsedFolderTokens = Array.isArray(storedCollapsedFolders) ? storedCollapsedFolders : [];
|
|
98
|
+
const knownFolderTokens = React.useMemo(()=>{
|
|
99
|
+
if (!contentStructure) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
const tokens = new Set();
|
|
104
|
+
collectFolderTokens('collectionTypes', contentStructure.collectionTypes, tokens);
|
|
105
|
+
collectFolderTokens('singleTypes', contentStructure.singleTypes, tokens);
|
|
106
|
+
return tokens;
|
|
107
|
+
} catch {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
}, [
|
|
111
|
+
contentStructure
|
|
112
|
+
]);
|
|
113
|
+
const handleFolderToggle = (token, open)=>{
|
|
114
|
+
setStoredCollapsedFolders((previous)=>{
|
|
115
|
+
const collapsed = Array.isArray(previous) ? previous : [];
|
|
116
|
+
const pruned = knownFolderTokens ? collapsed.filter((storedToken)=>knownFolderTokens.has(storedToken)) : collapsed;
|
|
117
|
+
if (open) {
|
|
118
|
+
return pruned.filter((storedToken)=>storedToken !== token);
|
|
119
|
+
}
|
|
120
|
+
if (pruned.includes(token)) {
|
|
121
|
+
return pruned;
|
|
122
|
+
}
|
|
123
|
+
return [
|
|
124
|
+
...pruned,
|
|
125
|
+
token
|
|
126
|
+
];
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
const renderMenuItem = (node, depth, sectionId)=>{
|
|
130
|
+
if (node.type === 'link') {
|
|
131
|
+
return /*#__PURE__*/ jsx(SubNav.Link, {
|
|
132
|
+
label: formatLinkTitle(node.link),
|
|
133
|
+
to: linkTo(node.link),
|
|
134
|
+
depth: depth,
|
|
135
|
+
bulleted: true
|
|
136
|
+
}, node.link.uid);
|
|
137
|
+
}
|
|
138
|
+
const token = getFolderToken(sectionId, node.id);
|
|
139
|
+
return /*#__PURE__*/ jsx(SubNav.Folder, {
|
|
140
|
+
label: node.name,
|
|
141
|
+
depth: depth,
|
|
142
|
+
open: !collapsedFolderTokens.includes(token),
|
|
143
|
+
onToggle: (open)=>handleFolderToggle(token, open),
|
|
144
|
+
children: node.children.map((child)=>renderMenuItem(child, depth + 1, sectionId))
|
|
145
|
+
}, node.id);
|
|
146
|
+
};
|
|
80
147
|
// Show loading state while data is being fetched
|
|
81
148
|
if (isLoading) {
|
|
82
149
|
return /*#__PURE__*/ jsxs(SubNav.Main, {
|
|
@@ -147,19 +214,31 @@ const LeftMenu = ({ isFullPage = false })=>{
|
|
|
147
214
|
}),
|
|
148
215
|
/*#__PURE__*/ jsx(SubNav.Content, {
|
|
149
216
|
children: /*#__PURE__*/ jsx(SubNav.Sections, {
|
|
150
|
-
children:
|
|
217
|
+
children: sections.map((section)=>{
|
|
218
|
+
const matches = trimmedSearch ? filterTreeLinks({
|
|
219
|
+
nodes: section.tree,
|
|
220
|
+
matchLink: (link)=>{
|
|
221
|
+
return contains(formatLinkTitle(link), trimmedSearch) || contains(link.uid, trimmedSearch);
|
|
222
|
+
},
|
|
223
|
+
matchFolderName: (name)=>{
|
|
224
|
+
return contains(name, trimmedSearch);
|
|
225
|
+
}
|
|
226
|
+
}).sort((a, b)=>compareLinks(a.link, b.link)) : null;
|
|
227
|
+
const count = matches ? matches.length : countTreeLinks(section.tree);
|
|
228
|
+
const sectionItems = matches ? matches.map(({ link, path })=>/*#__PURE__*/ jsx(SubNav.Link, {
|
|
229
|
+
label: formatLinkTitle(link),
|
|
230
|
+
to: linkTo(link),
|
|
231
|
+
bulleted: true,
|
|
232
|
+
endAction: path.length > 0 ? /*#__PURE__*/ jsx(Typography, {
|
|
233
|
+
variant: "pi",
|
|
234
|
+
textColor: "neutral500",
|
|
235
|
+
children: path.join(' / ')
|
|
236
|
+
}) : undefined
|
|
237
|
+
}, link.uid)) : section.tree.map((node)=>renderMenuItem(node, 0, section.id));
|
|
151
238
|
return /*#__PURE__*/ jsx(SubNav.Section, {
|
|
152
239
|
label: section.title,
|
|
153
|
-
badgeLabel:
|
|
154
|
-
children:
|
|
155
|
-
return /*#__PURE__*/ jsx(SubNav.Link, {
|
|
156
|
-
to: {
|
|
157
|
-
pathname: link.to,
|
|
158
|
-
search: i18nLocale ? `?plugins[i18n][locale]=${i18nLocale}` : ''
|
|
159
|
-
},
|
|
160
|
-
label: link.title
|
|
161
|
-
}, link.uid);
|
|
162
|
-
})
|
|
240
|
+
badgeLabel: count.toString(),
|
|
241
|
+
children: sectionItems
|
|
163
242
|
}, section.id);
|
|
164
243
|
})
|
|
165
244
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeftMenu.mjs","sources":["../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { SubNav } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n Searchbar,\n useCollator,\n useFilter,\n Divider,\n Loader,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { useContentManagerInitData } from '../hooks/useContentManagerInitData';\nimport { useTypedSelector } from '../modules/hooks';\nimport { getTranslation } from '../utils/translations';\n\nconst LeftMenu = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const [search, setSearch] = React.useState('');\n const { formatMessage, locale } = useIntl();\n const { search: locationSearch } = useLocation();\n const i18nLocale = new URLSearchParams(locationSearch).get('plugins[i18n][locale]');\n\n // Initialize Content Manager data to ensure links are available\n const { isLoading } = useContentManagerInitData();\n\n const collectionTypeLinks = useTypedSelector(\n (state) => state['content-manager'].app.collectionTypeLinks\n );\n\n const singleTypeLinks = useTypedSelector((state) => state['content-manager'].app.singleTypeLinks);\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const menu = React.useMemo(\n () =>\n [\n {\n id: 'collectionTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.collection-types'),\n defaultMessage: 'Collection Types',\n }),\n searchable: true,\n links: collectionTypeLinks,\n },\n {\n id: 'singleTypes',\n title: formatMessage({\n id: getTranslation('components.LeftMenu.single-types'),\n defaultMessage: 'Single Types',\n }),\n searchable: true,\n links: singleTypeLinks,\n },\n ].map((section) => ({\n ...section,\n links: section.links\n /**\n * Filter by the search value\n */\n .filter((link) => contains(link.title, search.trim()))\n /**\n * Sort correctly using the language\n */\n .sort((a, b) => formatter.compare(a.title, b.title))\n /**\n * Apply the formated strings to the links from react-intl\n */\n .map((link) => {\n return {\n ...link,\n title: formatMessage({ id: link.title, defaultMessage: link.title }),\n };\n }),\n })),\n [collectionTypeLinks, search, singleTypeLinks, contains, formatMessage, formatter]\n );\n\n const handleClear = () => {\n setSearch('');\n };\n\n const handleChangeSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearch(event.target.value);\n };\n\n const label = formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content Manager',\n });\n\n // Show loading state while data is being fetched\n if (isLoading) {\n return (\n <SubNav.Main aria-label={label} isFullPage={isFullPage}>\n <SubNav.Header label={label} />\n <Divider />\n <Flex padding={4} justifyContent=\"center\">\n <Loader />\n </Flex>\n </SubNav.Main>\n );\n }\n\n const searchBar = (\n <Flex\n paddingLeft={{\n initial: 3,\n large: 5,\n }}\n paddingRight={{\n initial: 3,\n large: 5,\n }}\n paddingTop={5}\n paddingBottom={{ initial: 1, large: 0 }}\n gap={3}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Searchbar\n value={search}\n onChange={handleChangeSearch}\n onClear={handleClear}\n placeholder={formatMessage({\n id: 'search.placeholder',\n defaultMessage: 'Search',\n })}\n size=\"S\"\n // eslint-disable-next-line react/no-children-prop\n children={undefined}\n name={'search_contentType'}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n />\n </Flex>\n );\n\n return (\n <SubNav.Main aria-label={label} isFullPage={isFullPage}>\n <SubNav.Header label={label} />\n <Divider />\n <Box\n position={isFullPage ? 'sticky' : 'static'}\n top={isFullPage ? '0px' : undefined}\n zIndex={isFullPage ? 2 : undefined}\n background={isFullPage ? 'neutral100' : 'neutral0'}\n >\n {searchBar}\n </Box>\n <SubNav.Content>\n <SubNav.Sections>\n {menu.map((section) => {\n return (\n <SubNav.Section\n key={section.id}\n label={section.title}\n badgeLabel={section.links.length.toString()}\n >\n {section.links.map((link) => {\n return (\n <SubNav.Link\n key={link.uid}\n to={{\n pathname: link.to,\n search: i18nLocale ? `?plugins[i18n][locale]=${i18nLocale}` : '',\n }}\n label={link.title}\n />\n );\n })}\n </SubNav.Section>\n );\n })}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { LeftMenu };\n"],"names":["LeftMenu","isFullPage","search","setSearch","React","useState","formatMessage","locale","useIntl","locationSearch","useLocation","i18nLocale","URLSearchParams","get","isLoading","useContentManagerInitData","collectionTypeLinks","useTypedSelector","state","app","singleTypeLinks","contains","useFilter","sensitivity","formatter","useCollator","menu","useMemo","id","title","getTranslation","defaultMessage","searchable","links","map","section","filter","link","trim","sort","a","b","compare","handleClear","handleChangeSearch","event","target","value","label","_jsxs","SubNav","Main","aria-label","_jsx","Header","Divider","Flex","padding","justifyContent","Loader","searchBar","paddingLeft","initial","large","paddingRight","paddingTop","paddingBottom","gap","direction","alignItems","Searchbar","onChange","onClear","placeholder","size","children","undefined","name","clearLabel","Box","position","top","zIndex","background","Content","Sections","Section","badgeLabel","length","toString","Link","to","pathname","uid"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LeftMenu.mjs","sources":["../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { SubNav, useScopedPersistentState } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n Searchbar,\n Typography,\n useCollator,\n useFilter,\n Divider,\n Loader,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\n\nimport { useContentManagerInitData } from '../hooks/useContentManagerInitData';\nimport { useTypedSelector } from '../modules/hooks';\nimport {\n countTreeLinks,\n buildContentStructureSection,\n filterTreeLinks,\n type LinkTreeNode,\n} from '../utils/contentStructure';\nimport { getTranslation } from '../utils/translations';\n\nimport type { ContentManagerLink } from '../hooks/useContentManagerInitData';\nimport type { Modules } from '@strapi/types';\n\nconst COLLAPSED_FOLDERS_KEY = 'STRAPI_CM_COLLAPSED_FOLDERS';\n\ntype SectionId = Modules.ContentStructure.ContentStructureSectionKey;\n\nconst getFolderToken = (sectionId: SectionId, folderId: string) => `${sectionId}/${folderId}`;\n\nconst collectFolderTokens = (\n sectionId: SectionId,\n groups: Modules.ContentStructure.ResolvedGroupNode[],\n tokens: Set<string>\n) => {\n for (const group of groups) {\n tokens.add(getFolderToken(sectionId, group.id));\n\n const childGroups = group.children.filter(\n (child): child is Modules.ContentStructure.ResolvedGroupNode => child.type === 'group'\n );\n\n collectFolderTokens(sectionId, childGroups, tokens);\n }\n};\n\nconst LeftMenu = ({ isFullPage = false }: { isFullPage?: boolean }) => {\n const [search, setSearch] = React.useState('');\n const [storedCollapsedFolders, setStoredCollapsedFolders] = useScopedPersistentState<string[]>(\n COLLAPSED_FOLDERS_KEY,\n []\n );\n const { formatMessage, locale } = useIntl();\n const { search: locationSearch } = useLocation();\n const i18nLocale = new URLSearchParams(locationSearch).get('plugins[i18n][locale]');\n\n // Initialize Content Manager data to ensure links are available\n const { isLoading } = useContentManagerInitData();\n\n const collectionTypeLinks = useTypedSelector(\n (state) => state['content-manager'].app.collectionTypeLinks\n );\n\n const singleTypeLinks = useTypedSelector((state) => state['content-manager'].app.singleTypeLinks);\n\n const contentStructure = useTypedSelector(\n (state) => state['content-manager'].app.contentStructure\n );\n\n const { contains } = useFilter(locale, {\n sensitivity: 'base',\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const compareLinks = React.useCallback(\n (a: ContentManagerLink, b: ContentManagerLink) => {\n return formatter.compare(a.title, b.title);\n },\n [formatter]\n );\n\n const collectionTypesLabel = formatMessage({\n id: getTranslation('components.LeftMenu.collection-types'),\n defaultMessage: 'Collection Types',\n });\n\n const singleTypesLabel = formatMessage({\n id: getTranslation('components.LeftMenu.single-types'),\n defaultMessage: 'Single Types',\n });\n\n const sections = React.useMemo(() => {\n const collectionTypesSection = buildContentStructureSection({\n id: 'collectionTypes',\n groups: contentStructure?.collectionTypes ?? [],\n title: collectionTypesLabel,\n links: collectionTypeLinks,\n compareLinks,\n });\n\n const singleTypesSection = buildContentStructureSection({\n id: 'singleTypes',\n groups: contentStructure?.singleTypes ?? [],\n title: singleTypesLabel,\n links: singleTypeLinks,\n compareLinks,\n });\n\n return [collectionTypesSection, singleTypesSection];\n }, [\n collectionTypesLabel,\n collectionTypeLinks,\n singleTypesLabel,\n contentStructure,\n singleTypeLinks,\n compareLinks,\n ]);\n\n const trimmedSearch = search.trim();\n\n const handleClear = () => {\n setSearch('');\n };\n\n const handleChangeSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearch(event.target.value);\n };\n\n const label = formatMessage({\n id: getTranslation('header.name'),\n defaultMessage: 'Content Manager',\n });\n\n const formatLinkTitle = (link: ContentManagerLink) =>\n formatMessage({ id: link.title, defaultMessage: link.title });\n\n const linkTo = (link: ContentManagerLink) => ({\n pathname: link.to,\n search: i18nLocale ? `?plugins[i18n][locale]=${i18nLocale}` : '',\n });\n\n const collapsedFolderTokens = Array.isArray(storedCollapsedFolders) ? storedCollapsedFolders : [];\n\n const knownFolderTokens = React.useMemo(() => {\n if (!contentStructure) {\n return null;\n }\n\n try {\n const tokens = new Set<string>();\n\n collectFolderTokens('collectionTypes', contentStructure.collectionTypes, tokens);\n collectFolderTokens('singleTypes', contentStructure.singleTypes, tokens);\n\n return tokens;\n } catch {\n return null;\n }\n }, [contentStructure]);\n\n const handleFolderToggle = (token: string, open: boolean) => {\n setStoredCollapsedFolders((previous) => {\n const collapsed = Array.isArray(previous) ? previous : [];\n\n const pruned = knownFolderTokens\n ? collapsed.filter((storedToken) => knownFolderTokens.has(storedToken))\n : collapsed;\n\n if (open) {\n return pruned.filter((storedToken) => storedToken !== token);\n }\n\n if (pruned.includes(token)) {\n return pruned;\n }\n\n return [...pruned, token];\n });\n };\n\n const renderMenuItem = (\n node: LinkTreeNode,\n depth: number,\n sectionId: SectionId\n ): React.ReactNode => {\n if (node.type === 'link') {\n return (\n <SubNav.Link\n label={formatLinkTitle(node.link)}\n to={linkTo(node.link)}\n key={node.link.uid}\n depth={depth}\n bulleted\n />\n );\n }\n\n const token = getFolderToken(sectionId, node.id);\n\n return (\n <SubNav.Folder\n key={node.id}\n label={node.name}\n depth={depth}\n open={!collapsedFolderTokens.includes(token)}\n onToggle={(open) => handleFolderToggle(token, open)}\n >\n {node.children.map((child) => renderMenuItem(child, depth + 1, sectionId))}\n </SubNav.Folder>\n );\n };\n\n // Show loading state while data is being fetched\n if (isLoading) {\n return (\n <SubNav.Main aria-label={label} isFullPage={isFullPage}>\n <SubNav.Header label={label} />\n <Divider />\n <Flex padding={4} justifyContent=\"center\">\n <Loader />\n </Flex>\n </SubNav.Main>\n );\n }\n\n const searchBar = (\n <Flex\n paddingLeft={{\n initial: 3,\n large: 5,\n }}\n paddingRight={{\n initial: 3,\n large: 5,\n }}\n paddingTop={5}\n paddingBottom={{ initial: 1, large: 0 }}\n gap={3}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <Searchbar\n value={search}\n onChange={handleChangeSearch}\n onClear={handleClear}\n placeholder={formatMessage({\n id: 'search.placeholder',\n defaultMessage: 'Search',\n })}\n size=\"S\"\n // eslint-disable-next-line react/no-children-prop\n children={undefined}\n name={'search_contentType'}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n />\n </Flex>\n );\n\n return (\n <SubNav.Main aria-label={label} isFullPage={isFullPage}>\n <SubNav.Header label={label} />\n <Divider />\n <Box\n position={isFullPage ? 'sticky' : 'static'}\n top={isFullPage ? '0px' : undefined}\n zIndex={isFullPage ? 2 : undefined}\n background={isFullPage ? 'neutral100' : 'neutral0'}\n >\n {searchBar}\n </Box>\n <SubNav.Content>\n <SubNav.Sections>\n {sections.map((section) => {\n const matches = trimmedSearch\n ? filterTreeLinks({\n nodes: section.tree,\n matchLink: (link) => {\n return (\n contains(formatLinkTitle(link), trimmedSearch) ||\n contains(link.uid, trimmedSearch)\n );\n },\n matchFolderName: (name) => {\n return contains(name, trimmedSearch);\n },\n }).sort((a, b) => compareLinks(a.link, b.link))\n : null;\n\n const count = matches ? matches.length : countTreeLinks(section.tree);\n\n const sectionItems = matches\n ? matches.map(({ link, path }) => (\n <SubNav.Link\n label={formatLinkTitle(link)}\n to={linkTo(link)}\n key={link.uid}\n bulleted\n endAction={\n path.length > 0 ? (\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {path.join(' / ')}\n </Typography>\n ) : undefined\n }\n />\n ))\n : section.tree.map((node) => renderMenuItem(node, 0, section.id));\n\n return (\n <SubNav.Section key={section.id} label={section.title} badgeLabel={count.toString()}>\n {sectionItems}\n </SubNav.Section>\n );\n })}\n </SubNav.Sections>\n </SubNav.Content>\n </SubNav.Main>\n );\n};\n\nexport { LeftMenu };\n"],"names":["COLLAPSED_FOLDERS_KEY","getFolderToken","sectionId","folderId","collectFolderTokens","groups","tokens","group","add","id","childGroups","children","filter","child","type","LeftMenu","isFullPage","search","setSearch","React","useState","storedCollapsedFolders","setStoredCollapsedFolders","useScopedPersistentState","formatMessage","locale","useIntl","locationSearch","useLocation","i18nLocale","URLSearchParams","get","isLoading","useContentManagerInitData","collectionTypeLinks","useTypedSelector","state","app","singleTypeLinks","contentStructure","contains","useFilter","sensitivity","formatter","useCollator","compareLinks","useCallback","a","b","compare","title","collectionTypesLabel","getTranslation","defaultMessage","singleTypesLabel","sections","useMemo","collectionTypesSection","buildContentStructureSection","collectionTypes","links","singleTypesSection","singleTypes","trimmedSearch","trim","handleClear","handleChangeSearch","event","target","value","label","formatLinkTitle","link","linkTo","pathname","to","collapsedFolderTokens","Array","isArray","knownFolderTokens","Set","handleFolderToggle","token","open","previous","collapsed","pruned","storedToken","has","includes","renderMenuItem","node","depth","_jsx","SubNav","Link","bulleted","uid","Folder","name","onToggle","map","_jsxs","Main","aria-label","Header","Divider","Flex","padding","justifyContent","Loader","searchBar","paddingLeft","initial","large","paddingRight","paddingTop","paddingBottom","gap","direction","alignItems","Searchbar","onChange","onClear","placeholder","size","undefined","clearLabel","Box","position","top","zIndex","background","Content","Sections","section","matches","filterTreeLinks","nodes","tree","matchLink","matchFolderName","sort","count","length","countTreeLinks","sectionItems","path","endAction","Typography","variant","textColor","join","Section","badgeLabel","toString"],"mappings":"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"}
|
|
@@ -241,53 +241,47 @@ const PaginationButton = ({ page, children })=>{
|
|
|
241
241
|
}),
|
|
242
242
|
/*#__PURE__*/ jsxRuntime.jsx(VersionsListItems, {})
|
|
243
243
|
]
|
|
244
|
-
}) : /*#__PURE__*/ jsxRuntime.
|
|
245
|
-
children:
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
/*#__PURE__*/ jsxRuntime.
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
244
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
245
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(ActionsDrawer.ActionsDrawer.Root, {
|
|
246
|
+
hasContent: true,
|
|
247
|
+
hasSideNav: true,
|
|
248
|
+
children: [
|
|
249
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionsDrawer.ActionsDrawer.Overlay, {}),
|
|
250
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionsDrawer.ActionsDrawer.Header, {
|
|
251
|
+
children: currentVersion && /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
252
|
+
gap: 2,
|
|
253
|
+
overflow: "hidden",
|
|
254
|
+
children: [
|
|
255
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
256
|
+
flex: 1,
|
|
257
|
+
overflow: "hidden",
|
|
258
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
259
|
+
display: "block",
|
|
260
|
+
variant: "omega",
|
|
261
|
+
textColor: "neutral600",
|
|
258
262
|
overflow: "hidden",
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
whiteSpace: 'nowrap'
|
|
267
|
-
},
|
|
268
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(VersionAuthor, {
|
|
269
|
-
version: currentVersion,
|
|
270
|
-
isCurrent: page === 1 && versions.data.indexOf(currentVersion) === 0
|
|
271
|
-
})
|
|
263
|
+
style: {
|
|
264
|
+
textOverflow: 'ellipsis',
|
|
265
|
+
whiteSpace: 'nowrap'
|
|
266
|
+
},
|
|
267
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(VersionAuthor, {
|
|
268
|
+
version: currentVersion,
|
|
269
|
+
isCurrent: page === 1 && versions.data.indexOf(currentVersion) === 0
|
|
272
270
|
})
|
|
273
|
-
}),
|
|
274
|
-
currentVersion.status && /*#__PURE__*/ jsxRuntime.jsx(DocumentStatus.DocumentStatus, {
|
|
275
|
-
status: currentVersion.status,
|
|
276
|
-
size: "XS"
|
|
277
271
|
})
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
272
|
+
}),
|
|
273
|
+
currentVersion.status && /*#__PURE__*/ jsxRuntime.jsx(DocumentStatus.DocumentStatus, {
|
|
274
|
+
status: currentVersion.status,
|
|
275
|
+
size: "XS"
|
|
276
|
+
})
|
|
277
|
+
]
|
|
283
278
|
})
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
]
|
|
279
|
+
}),
|
|
280
|
+
/*#__PURE__*/ jsxRuntime.jsx(ActionsDrawer.ActionsDrawer.Content, {
|
|
281
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(VersionsListItems, {})
|
|
282
|
+
})
|
|
283
|
+
]
|
|
284
|
+
})
|
|
291
285
|
});
|
|
292
286
|
};
|
|
293
287
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VersionsList.js","sources":["../../../../admin/src/history/components/VersionsList.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams, useIsMobile } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { ActionsDrawer, useActionsDrawer } from '../../components/ActionsDrawer';\nimport { RelativeTime } from '../../components/RelativeTime';\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDisplayName } from '../../utils/users';\nimport { useHistoryContext } from '../pages/History';\n\nimport type { HistoryVersions } from '../../../../shared/contracts';\n\n/* -------------------------------------------------------------------------------------------------\n * BlueText\n * -----------------------------------------------------------------------------------------------*/\n\nconst BlueText = (children: React.ReactNode) => (\n <Typography textColor=\"primary600\" variant=\"pi\">\n {children}\n </Typography>\n);\n\n/* -------------------------------------------------------------------------------------------------\n * VersionAuthor\n * -----------------------------------------------------------------------------------------------*/\n\nconst VersionAuthor = ({\n version,\n isCurrent,\n}: {\n version: HistoryVersions.HistoryVersionDataResponse;\n isCurrent: boolean;\n}) => {\n const { formatMessage } = useIntl();\n const author = version.createdBy && getDisplayName(version.createdBy);\n return (\n <>\n {formatMessage(\n {\n id: 'content-manager.history.sidebar.versionDescription',\n defaultMessage:\n '{distanceToNow}{isAnonymous, select, true {} other { by {author}}}{isCurrent, select, true { <b>(current)</b>} other {}}',\n },\n {\n distanceToNow: <RelativeTime timestamp={new Date(version.createdAt)} />,\n author,\n isAnonymous: !version.createdBy,\n isCurrent,\n b: BlueText,\n }\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionCard\n * -----------------------------------------------------------------------------------------------*/\n\ninterface VersionCardProps {\n version: HistoryVersions.HistoryVersionDataResponse;\n isCurrent: boolean;\n}\n\nconst VersionCard = ({ version, isCurrent }: VersionCardProps) => {\n const { formatDate } = useIntl();\n const [{ query }] = useQueryParams<{ id?: string }>();\n const setIsOpen = useActionsDrawer('VersionCard', (s) => s?.setIsOpen, false);\n const isActive = query.id === version.id.toString();\n\n const handleClick = () => {\n setIsOpen?.(false);\n };\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n gap={3}\n hasRadius\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor={isActive ? 'primary600' : 'neutral200'}\n color=\"neutral800\"\n padding={5}\n tag={Link}\n to={`?${stringify({ ...query, id: version.id })}`}\n style={{ textDecoration: 'none' }}\n onClick={handleClick}\n >\n <Flex direction=\"column\" gap={1} alignItems=\"flex-start\">\n <Typography tag=\"h3\" fontWeight=\"semiBold\">\n {formatDate(version.createdAt, {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n })}\n </Typography>\n <Typography tag=\"p\" variant=\"pi\" textColor=\"neutral600\">\n <VersionAuthor version={version} isCurrent={isCurrent} />\n </Typography>\n </Flex>\n {version.status && <DocumentStatus status={version.status} size=\"XS\" />}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PaginationButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PaginationButtonProps {\n page: number;\n children: React.ReactNode;\n}\n\nconst PaginationButton = ({ page, children }: PaginationButtonProps) => {\n const [{ query }] = useQueryParams<{ id?: string }>();\n\n // Remove the id from the pagination link, so that the history page can redirect\n // to the id of the first history version in the new page once it's loaded\n const { id: _id, ...queryRest } = query;\n\n return (\n <Link to={{ search: stringify({ ...queryRest, page }) }} style={{ textDecoration: 'none' }}>\n <Typography variant=\"omega\" textColor=\"primary600\">\n {children}\n </Typography>\n </Link>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionsListItems\n * -----------------------------------------------------------------------------------------------*/\n\nconst VersionsListItems = () => {\n const { formatMessage } = useIntl();\n const { versions, page } = useHistoryContext('VersionsListItems', (state) => ({\n versions: state.versions,\n page: state.page,\n }));\n\n return (\n <Box flex={1} overflow=\"auto\">\n {versions.meta.pagination.page > 1 && (\n <Box paddingTop={4} textAlign=\"center\">\n <PaginationButton page={page - 1}>\n {formatMessage({\n id: 'content-manager.history.sidebar.show-newer',\n defaultMessage: 'Show newer versions',\n })}\n </PaginationButton>\n </Box>\n )}\n <Flex\n direction=\"column\"\n gap={3}\n padding={{ initial: 0, medium: 4 }}\n tag=\"ul\"\n alignItems=\"stretch\"\n >\n {versions.data.map((version, index) => (\n <li\n key={version.id}\n aria-label={formatMessage({\n id: 'content-manager.history.sidebar.title.version-card.aria-label',\n defaultMessage: 'Version card',\n })}\n >\n <VersionCard version={version} isCurrent={page === 1 && index === 0} />\n </li>\n ))}\n </Flex>\n {versions.meta.pagination.page < versions.meta.pagination.pageCount && (\n <Box paddingBottom={4} textAlign=\"center\">\n <PaginationButton page={page + 1}>\n {formatMessage({\n id: 'content-manager.history.sidebar.show-older',\n defaultMessage: 'Show older versions',\n })}\n </PaginationButton>\n </Box>\n )}\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionsList\n * -----------------------------------------------------------------------------------------------*/\n\nconst VersionsList = () => {\n const { formatMessage } = useIntl();\n const { versions, page } = useHistoryContext('VersionsList', (state) => ({\n versions: state.versions,\n page: state.page,\n }));\n const isMobile = useIsMobile();\n\n const [{ query }] = useQueryParams<{ id?: string }>();\n const currentVersion = versions.data.find((version) => version.id.toString() === query.id);\n\n return !isMobile ? (\n <Flex\n shrink={0}\n direction=\"column\"\n alignItems=\"stretch\"\n width={{ initial: '28rem', large: '32rem' }}\n height=\"100%\"\n overflow=\"hidden\"\n background=\"neutral0\"\n borderColor=\"neutral200\"\n borderWidth=\"0 0 0 1px\"\n borderStyle=\"solid\"\n tag=\"aside\"\n >\n <Flex\n direction=\"row\"\n justifyContent=\"space-between\"\n padding={4}\n borderColor=\"neutral200\"\n borderWidth=\"0 0 1px\"\n borderStyle=\"solid\"\n tag=\"header\"\n role=\"banner\"\n >\n <Typography tag=\"h2\" variant=\"omega\" fontWeight=\"semiBold\">\n {formatMessage({\n id: 'content-manager.history.sidebar.title',\n defaultMessage: 'Versions',\n })}\n </Typography>\n <Box background=\"neutral150\" hasRadius padding={1}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {versions.meta.pagination.total}\n </Typography>\n </Box>\n </Flex>\n <VersionsListItems />\n </Flex>\n ) : (\n <>\n <ActionsDrawer.Root hasContent hasSideNav>\n <ActionsDrawer.Overlay />\n <ActionsDrawer.Header>\n {currentVersion && (\n <Flex gap={2} overflow=\"hidden\">\n <Box flex={1} overflow=\"hidden\">\n <Typography\n display=\"block\"\n variant=\"omega\"\n textColor=\"neutral600\"\n overflow=\"hidden\"\n style={{ textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}\n >\n <VersionAuthor\n version={currentVersion}\n isCurrent={page === 1 && versions.data.indexOf(currentVersion) === 0}\n />\n </Typography>\n </Box>\n {currentVersion.status && <DocumentStatus status={currentVersion.status} size=\"XS\" />}\n </Flex>\n )}\n </ActionsDrawer.Header>\n <ActionsDrawer.Content>\n <VersionsListItems />\n </ActionsDrawer.Content>\n </ActionsDrawer.Root>\n {/* Adding a fixed height to the bottom of the page to prevent \n the actions drawer from covering the content\n (32px + 12px * 2 padding + 1px border) */}\n <Box width=\"100%\" height=\"5.7rem\" />\n </>\n );\n};\n\nexport { VersionsList };\n"],"names":["BlueText","children","_jsx","Typography","textColor","variant","VersionAuthor","version","isCurrent","formatMessage","useIntl","author","createdBy","getDisplayName","_Fragment","id","defaultMessage","distanceToNow","RelativeTime","timestamp","Date","createdAt","isAnonymous","b","VersionCard","formatDate","query","useQueryParams","setIsOpen","useActionsDrawer","s","isActive","toString","handleClick","_jsxs","Flex","direction","alignItems","gap","hasRadius","borderWidth","borderStyle","borderColor","color","padding","tag","Link","to","stringify","style","textDecoration","onClick","fontWeight","day","month","year","hour","minute","status","DocumentStatus","size","PaginationButton","page","_id","queryRest","search","VersionsListItems","versions","useHistoryContext","state","Box","flex","overflow","meta","pagination","paddingTop","textAlign","initial","medium","data","map","index","li","aria-label","pageCount","paddingBottom","VersionsList","isMobile","useIsMobile","currentVersion","find","shrink","width","large","height","background","justifyContent","role","total","ActionsDrawer","Root","hasContent","hasSideNav","Overlay","Header","display","textOverflow","whiteSpace","indexOf","Content"],"mappings":";;;;;;;;;;;;;;;AAgBA;;AAEkG,qGAElG,MAAMA,QAAAA,GAAW,CAACC,QAAAA,iBAChBC,cAAA,CAACC,uBAAAA,EAAAA;QAAWC,SAAAA,EAAU,YAAA;QAAaC,OAAAA,EAAQ,IAAA;AACxCJ,QAAAA,QAAAA,EAAAA;;AAIL;;AAEkG,qGAElG,MAAMK,aAAAA,GAAgB,CAAC,EACrBC,OAAO,EACPC,SAAS,EAIV,GAAA;IACC,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,SAASJ,OAAAA,CAAQK,SAAS,IAAIC,oBAAAA,CAAeN,QAAQK,SAAS,CAAA;IACpE,qBACEV,cAAA,CAAAY,mBAAA,EAAA;kBACGL,aAAAA,CACC;YACEM,EAAAA,EAAI,oDAAA;YACJC,cAAAA,EACE;SACJ,EACA;AACEC,YAAAA,aAAAA,gBAAef,cAAA,CAACgB,yBAAAA,EAAAA;gBAAaC,SAAAA,EAAW,IAAIC,IAAAA,CAAKb,OAAAA,CAAQc,SAAS;;AAClEV,YAAAA,MAAAA;YACAW,WAAAA,EAAa,CAACf,QAAQK,SAAS;AAC/BJ,YAAAA,SAAAA;YACAe,CAAAA,EAAGvB;AACL,SAAA;;AAIR,CAAA;AAWA,MAAMwB,cAAc,CAAC,EAAEjB,OAAO,EAAEC,SAAS,EAAoB,GAAA;IAC3D,MAAM,EAAEiB,UAAU,EAAE,GAAGf,iBAAAA,EAAAA;AACvB,IAAA,MAAM,CAAC,EAAEgB,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;AACpB,IAAA,MAAMC,YAAYC,8BAAAA,CAAiB,aAAA,EAAe,CAACC,CAAAA,GAAMA,GAAGF,SAAAA,EAAW,KAAA,CAAA;AACvE,IAAA,MAAMG,WAAWL,KAAAA,CAAMX,EAAE,KAAKR,OAAAA,CAAQQ,EAAE,CAACiB,QAAQ,EAAA;AAEjD,IAAA,MAAMC,WAAAA,GAAc,IAAA;QAClBL,SAAAA,GAAY,KAAA,CAAA;AACd,IAAA,CAAA;AAEA,IAAA,qBACEM,eAAA,CAACC,iBAAAA,EAAAA;QACCC,SAAAA,EAAU,QAAA;QACVC,UAAAA,EAAW,YAAA;QACXC,GAAAA,EAAK,CAAA;QACLC,SAAS,EAAA,IAAA;QACTC,WAAAA,EAAY,KAAA;QACZC,WAAAA,EAAY,OAAA;AACZC,QAAAA,WAAAA,EAAaX,WAAW,YAAA,GAAe,YAAA;QACvCY,KAAAA,EAAM,YAAA;QACNC,OAAAA,EAAS,CAAA;QACTC,GAAAA,EAAKC,mBAAAA;QACLC,EAAAA,EAAI,CAAC,CAAC,EAAEC,YAAAA,CAAU;AAAE,YAAA,GAAGtB,KAAK;AAAEX,YAAAA,EAAAA,EAAIR,QAAQQ;SAAG,CAAA,CAAA,CAAI;QACjDkC,KAAAA,EAAO;YAAEC,cAAAA,EAAgB;AAAO,SAAA;QAChCC,OAAAA,EAASlB,WAAAA;;0BAETC,eAAA,CAACC,iBAAAA,EAAAA;gBAAKC,SAAAA,EAAU,QAAA;gBAASE,GAAAA,EAAK,CAAA;gBAAGD,UAAAA,EAAW,YAAA;;kCAC1CnC,cAAA,CAACC,uBAAAA,EAAAA;wBAAW0C,GAAAA,EAAI,IAAA;wBAAKO,UAAAA,EAAW,UAAA;kCAC7B3B,UAAAA,CAAWlB,OAAAA,CAAQc,SAAS,EAAE;4BAC7BgC,GAAAA,EAAK,SAAA;4BACLC,KAAAA,EAAO,SAAA;4BACPC,IAAAA,EAAM,SAAA;4BACNC,IAAAA,EAAM,SAAA;4BACNC,MAAAA,EAAQ;AACV,yBAAA;;kCAEFvD,cAAA,CAACC,uBAAAA,EAAAA;wBAAW0C,GAAAA,EAAI,GAAA;wBAAIxC,OAAAA,EAAQ,IAAA;wBAAKD,SAAAA,EAAU,YAAA;AACzC,wBAAA,QAAA,gBAAAF,cAAA,CAACI,aAAAA,EAAAA;4BAAcC,OAAAA,EAASA,OAAAA;4BAASC,SAAAA,EAAWA;;;;;YAG/CD,OAAAA,CAAQmD,MAAM,kBAAIxD,cAAA,CAACyD,6BAAAA,EAAAA;AAAeD,gBAAAA,MAAAA,EAAQnD,QAAQmD,MAAM;gBAAEE,IAAAA,EAAK;;;;AAGtE,CAAA;AAWA,MAAMC,mBAAmB,CAAC,EAAEC,IAAI,EAAE7D,QAAQ,EAAyB,GAAA;AACjE,IAAA,MAAM,CAAC,EAAEyB,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;;;AAIpB,IAAA,MAAM,EAAEZ,EAAAA,EAAIgD,GAAG,EAAE,GAAGC,WAAW,GAAGtC,KAAAA;AAElC,IAAA,qBACExB,cAAA,CAAC4C,mBAAAA,EAAAA;QAAKC,EAAAA,EAAI;AAAEkB,YAAAA,MAAAA,EAAQjB,YAAAA,CAAU;AAAE,gBAAA,GAAGgB,SAAS;AAAEF,gBAAAA;AAAK,aAAA;AAAG,SAAA;QAAGb,KAAAA,EAAO;YAAEC,cAAAA,EAAgB;AAAO,SAAA;AACvF,QAAA,QAAA,gBAAAhD,cAAA,CAACC,uBAAAA,EAAAA;YAAWE,OAAAA,EAAQ,OAAA;YAAQD,SAAAA,EAAU,YAAA;AACnCH,YAAAA,QAAAA,EAAAA;;;AAIT,CAAA;AAEA;;AAEkG,qGAElG,MAAMiE,iBAAAA,GAAoB,IAAA;IACxB,MAAM,EAAEzD,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEyD,QAAQ,EAAEL,IAAI,EAAE,GAAGM,yBAAAA,CAAkB,mBAAA,EAAqB,CAACC,KAAAA,IAAW;AAC5EF,YAAAA,QAAAA,EAAUE,MAAMF,QAAQ;AACxBL,YAAAA,IAAAA,EAAMO,MAAMP;SACd,CAAA,CAAA;AAEA,IAAA,qBACE5B,eAAA,CAACoC,gBAAAA,EAAAA;QAAIC,IAAAA,EAAM,CAAA;QAAGC,QAAAA,EAAS,MAAA;;AACpBL,YAAAA,QAAAA,CAASM,IAAI,CAACC,UAAU,CAACZ,IAAI,GAAG,mBAC/B5D,cAAA,CAACoE,gBAAAA,EAAAA;gBAAIK,UAAAA,EAAY,CAAA;gBAAGC,SAAAA,EAAU,QAAA;AAC5B,gBAAA,QAAA,gBAAA1E,cAAA,CAAC2D,gBAAAA,EAAAA;AAAiBC,oBAAAA,IAAAA,EAAMA,IAAAA,GAAO,CAAA;8BAC5BrD,aAAAA,CAAc;wBACbM,EAAAA,EAAI,4CAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;;0BAINd,cAAA,CAACiC,iBAAAA,EAAAA;gBACCC,SAAAA,EAAU,QAAA;gBACVE,GAAAA,EAAK,CAAA;gBACLM,OAAAA,EAAS;oBAAEiC,OAAAA,EAAS,CAAA;oBAAGC,MAAAA,EAAQ;AAAE,iBAAA;gBACjCjC,GAAAA,EAAI,IAAA;gBACJR,UAAAA,EAAW,SAAA;AAEV8B,gBAAAA,QAAAA,EAAAA,QAAAA,CAASY,IAAI,CAACC,GAAG,CAAC,CAACzE,OAAAA,EAAS0E,sBAC3B/E,cAAA,CAACgF,IAAAA,EAAAA;AAECC,wBAAAA,YAAAA,EAAY1E,aAAAA,CAAc;4BACxBM,EAAAA,EAAI,+DAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAd,cAAA,CAACsB,WAAAA,EAAAA;4BAAYjB,OAAAA,EAASA,OAAAA;4BAASC,SAAAA,EAAWsD,IAAAA,KAAS,KAAKmB,KAAAA,KAAU;;AAN7D1E,qBAAAA,EAAAA,OAAAA,CAAQQ,EAAE,CAAA;;AAUpBoD,YAAAA,QAAAA,CAASM,IAAI,CAACC,UAAU,CAACZ,IAAI,GAAGK,QAAAA,CAASM,IAAI,CAACC,UAAU,CAACU,SAAS,kBACjElF,cAAA,CAACoE,gBAAAA,EAAAA;gBAAIe,aAAAA,EAAe,CAAA;gBAAGT,SAAAA,EAAU,QAAA;AAC/B,gBAAA,QAAA,gBAAA1E,cAAA,CAAC2D,gBAAAA,EAAAA;AAAiBC,oBAAAA,IAAAA,EAAMA,IAAAA,GAAO,CAAA;8BAC5BrD,aAAAA,CAAc;wBACbM,EAAAA,EAAI,4CAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA;;;;;AAMZ,CAAA;AAEA;;AAEkG,2GAE5FsE,YAAAA,GAAe,IAAA;IACnB,MAAM,EAAE7E,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEyD,QAAQ,EAAEL,IAAI,EAAE,GAAGM,yBAAAA,CAAkB,cAAA,EAAgB,CAACC,KAAAA,IAAW;AACvEF,YAAAA,QAAAA,EAAUE,MAAMF,QAAQ;AACxBL,YAAAA,IAAAA,EAAMO,MAAMP;SACd,CAAA,CAAA;AACA,IAAA,MAAMyB,QAAAA,GAAWC,uBAAAA,EAAAA;AAEjB,IAAA,MAAM,CAAC,EAAE9D,KAAK,EAAE,CAAC,GAAGC,0BAAAA,EAAAA;AACpB,IAAA,MAAM8D,cAAAA,GAAiBtB,QAAAA,CAASY,IAAI,CAACW,IAAI,CAAC,CAACnF,OAAAA,GAAYA,OAAAA,CAAQQ,EAAE,CAACiB,QAAQ,EAAA,KAAON,MAAMX,EAAE,CAAA;IAEzF,OAAO,CAACwE,yBACNrD,eAAA,CAACC,iBAAAA,EAAAA;QACCwD,MAAAA,EAAQ,CAAA;QACRvD,SAAAA,EAAU,QAAA;QACVC,UAAAA,EAAW,SAAA;QACXuD,KAAAA,EAAO;YAAEf,OAAAA,EAAS,OAAA;YAASgB,KAAAA,EAAO;AAAQ,SAAA;QAC1CC,MAAAA,EAAO,MAAA;QACPtB,QAAAA,EAAS,QAAA;QACTuB,UAAAA,EAAW,UAAA;QACXrD,WAAAA,EAAY,YAAA;QACZF,WAAAA,EAAY,WAAA;QACZC,WAAAA,EAAY,OAAA;QACZI,GAAAA,EAAI,OAAA;;0BAEJX,eAAA,CAACC,iBAAAA,EAAAA;gBACCC,SAAAA,EAAU,KAAA;gBACV4D,cAAAA,EAAe,eAAA;gBACfpD,OAAAA,EAAS,CAAA;gBACTF,WAAAA,EAAY,YAAA;gBACZF,WAAAA,EAAY,SAAA;gBACZC,WAAAA,EAAY,OAAA;gBACZI,GAAAA,EAAI,QAAA;gBACJoD,IAAAA,EAAK,QAAA;;kCAEL/F,cAAA,CAACC,uBAAAA,EAAAA;wBAAW0C,GAAAA,EAAI,IAAA;wBAAKxC,OAAAA,EAAQ,OAAA;wBAAQ+C,UAAAA,EAAW,UAAA;kCAC7C3C,aAAAA,CAAc;4BACbM,EAAAA,EAAI,uCAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA;;kCAEFd,cAAA,CAACoE,gBAAAA,EAAAA;wBAAIyB,UAAAA,EAAW,YAAA;wBAAaxD,SAAS,EAAA,IAAA;wBAACK,OAAAA,EAAS,CAAA;AAC9C,wBAAA,QAAA,gBAAA1C,cAAA,CAACC,uBAAAA,EAAAA;4BAAWE,OAAAA,EAAQ,OAAA;4BAAQD,SAAAA,EAAU,YAAA;AACnC+D,4BAAAA,QAAAA,EAAAA,QAAAA,CAASM,IAAI,CAACC,UAAU,CAACwB;;;;;0BAIhChG,cAAA,CAACgE,iBAAAA,EAAAA,EAAAA;;AAGH,KAAA,CAAA,iBAAAhC,eAAA,CAAApB,mBAAA,EAAA;;AACE,0BAAAoB,eAAA,CAACiE,4BAAcC,IAAI,EAAA;gBAACC,UAAU,EAAA,IAAA;gBAACC,UAAU,EAAA,IAAA;;AACvC,kCAAApG,cAAA,CAACiG,4BAAcI,OAAO,EAAA,EAAA,CAAA;AACtB,kCAAArG,cAAA,CAACiG,4BAAcK,MAAM,EAAA;AAClBf,wBAAAA,QAAAA,EAAAA,cAAAA,kBACCvD,eAAA,CAACC,iBAAAA,EAAAA;4BAAKG,GAAAA,EAAK,CAAA;4BAAGkC,QAAAA,EAAS,QAAA;;8CACrBtE,cAAA,CAACoE,gBAAAA,EAAAA;oCAAIC,IAAAA,EAAM,CAAA;oCAAGC,QAAAA,EAAS,QAAA;AACrB,oCAAA,QAAA,gBAAAtE,cAAA,CAACC,uBAAAA,EAAAA;wCACCsG,OAAAA,EAAQ,OAAA;wCACRpG,OAAAA,EAAQ,OAAA;wCACRD,SAAAA,EAAU,YAAA;wCACVoE,QAAAA,EAAS,QAAA;wCACTvB,KAAAA,EAAO;4CAAEyD,YAAAA,EAAc,UAAA;4CAAYC,UAAAA,EAAY;AAAS,yCAAA;AAExD,wCAAA,QAAA,gBAAAzG,cAAA,CAACI,aAAAA,EAAAA;4CACCC,OAAAA,EAASkF,cAAAA;AACTjF,4CAAAA,SAAAA,EAAWsD,SAAS,CAAA,IAAKK,QAAAA,CAASY,IAAI,CAAC6B,OAAO,CAACnB,cAAAA,CAAAA,KAAoB;;;;gCAIxEA,cAAAA,CAAe/B,MAAM,kBAAIxD,cAAA,CAACyD,6BAAAA,EAAAA;AAAeD,oCAAAA,MAAAA,EAAQ+B,eAAe/B,MAAM;oCAAEE,IAAAA,EAAK;;;;;AAIpF,kCAAA1D,cAAA,CAACiG,4BAAcU,OAAO,EAAA;AACpB,wBAAA,QAAA,gBAAA3G,cAAA,CAACgE,iBAAAA,EAAAA,EAAAA;;;;0BAMLhE,cAAA,CAACoE,gBAAAA,EAAAA;gBAAIsB,KAAAA,EAAM,MAAA;gBAAOE,MAAAA,EAAO;;;;AAG/B;;;;"}
|
|
1
|
+
{"version":3,"file":"VersionsList.js","sources":["../../../../admin/src/history/components/VersionsList.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useQueryParams, useIsMobile } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link } from 'react-router-dom';\n\nimport { ActionsDrawer, useActionsDrawer } from '../../components/ActionsDrawer';\nimport { RelativeTime } from '../../components/RelativeTime';\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDisplayName } from '../../utils/users';\nimport { useHistoryContext } from '../pages/History';\n\nimport type { HistoryVersions } from '../../../../shared/contracts';\n\n/* -------------------------------------------------------------------------------------------------\n * BlueText\n * -----------------------------------------------------------------------------------------------*/\n\nconst BlueText = (children: React.ReactNode) => (\n <Typography textColor=\"primary600\" variant=\"pi\">\n {children}\n </Typography>\n);\n\n/* -------------------------------------------------------------------------------------------------\n * VersionAuthor\n * -----------------------------------------------------------------------------------------------*/\n\nconst VersionAuthor = ({\n version,\n isCurrent,\n}: {\n version: HistoryVersions.HistoryVersionDataResponse;\n isCurrent: boolean;\n}) => {\n const { formatMessage } = useIntl();\n const author = version.createdBy && getDisplayName(version.createdBy);\n return (\n <>\n {formatMessage(\n {\n id: 'content-manager.history.sidebar.versionDescription',\n defaultMessage:\n '{distanceToNow}{isAnonymous, select, true {} other { by {author}}}{isCurrent, select, true { <b>(current)</b>} other {}}',\n },\n {\n distanceToNow: <RelativeTime timestamp={new Date(version.createdAt)} />,\n author,\n isAnonymous: !version.createdBy,\n isCurrent,\n b: BlueText,\n }\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionCard\n * -----------------------------------------------------------------------------------------------*/\n\ninterface VersionCardProps {\n version: HistoryVersions.HistoryVersionDataResponse;\n isCurrent: boolean;\n}\n\nconst VersionCard = ({ version, isCurrent }: VersionCardProps) => {\n const { formatDate } = useIntl();\n const [{ query }] = useQueryParams<{ id?: string }>();\n const setIsOpen = useActionsDrawer('VersionCard', (s) => s?.setIsOpen, false);\n const isActive = query.id === version.id.toString();\n\n const handleClick = () => {\n setIsOpen?.(false);\n };\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n gap={3}\n hasRadius\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor={isActive ? 'primary600' : 'neutral200'}\n color=\"neutral800\"\n padding={5}\n tag={Link}\n to={`?${stringify({ ...query, id: version.id })}`}\n style={{ textDecoration: 'none' }}\n onClick={handleClick}\n >\n <Flex direction=\"column\" gap={1} alignItems=\"flex-start\">\n <Typography tag=\"h3\" fontWeight=\"semiBold\">\n {formatDate(version.createdAt, {\n day: 'numeric',\n month: 'numeric',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n })}\n </Typography>\n <Typography tag=\"p\" variant=\"pi\" textColor=\"neutral600\">\n <VersionAuthor version={version} isCurrent={isCurrent} />\n </Typography>\n </Flex>\n {version.status && <DocumentStatus status={version.status} size=\"XS\" />}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PaginationButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PaginationButtonProps {\n page: number;\n children: React.ReactNode;\n}\n\nconst PaginationButton = ({ page, children }: PaginationButtonProps) => {\n const [{ query }] = useQueryParams<{ id?: string }>();\n\n // Remove the id from the pagination link, so that the history page can redirect\n // to the id of the first history version in the new page once it's loaded\n const { id: _id, ...queryRest } = query;\n\n return (\n <Link to={{ search: stringify({ ...queryRest, page }) }} style={{ textDecoration: 'none' }}>\n <Typography variant=\"omega\" textColor=\"primary600\">\n {children}\n </Typography>\n </Link>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionsListItems\n * -----------------------------------------------------------------------------------------------*/\n\nconst VersionsListItems = () => {\n const { formatMessage } = useIntl();\n const { versions, page } = useHistoryContext('VersionsListItems', (state) => ({\n versions: state.versions,\n page: state.page,\n }));\n\n return (\n <Box flex={1} overflow=\"auto\">\n {versions.meta.pagination.page > 1 && (\n <Box paddingTop={4} textAlign=\"center\">\n <PaginationButton page={page - 1}>\n {formatMessage({\n id: 'content-manager.history.sidebar.show-newer',\n defaultMessage: 'Show newer versions',\n })}\n </PaginationButton>\n </Box>\n )}\n <Flex\n direction=\"column\"\n gap={3}\n padding={{ initial: 0, medium: 4 }}\n tag=\"ul\"\n alignItems=\"stretch\"\n >\n {versions.data.map((version, index) => (\n <li\n key={version.id}\n aria-label={formatMessage({\n id: 'content-manager.history.sidebar.title.version-card.aria-label',\n defaultMessage: 'Version card',\n })}\n >\n <VersionCard version={version} isCurrent={page === 1 && index === 0} />\n </li>\n ))}\n </Flex>\n {versions.meta.pagination.page < versions.meta.pagination.pageCount && (\n <Box paddingBottom={4} textAlign=\"center\">\n <PaginationButton page={page + 1}>\n {formatMessage({\n id: 'content-manager.history.sidebar.show-older',\n defaultMessage: 'Show older versions',\n })}\n </PaginationButton>\n </Box>\n )}\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * VersionsList\n * -----------------------------------------------------------------------------------------------*/\n\nconst VersionsList = () => {\n const { formatMessage } = useIntl();\n const { versions, page } = useHistoryContext('VersionsList', (state) => ({\n versions: state.versions,\n page: state.page,\n }));\n const isMobile = useIsMobile();\n\n const [{ query }] = useQueryParams<{ id?: string }>();\n const currentVersion = versions.data.find((version) => version.id.toString() === query.id);\n\n return !isMobile ? (\n <Flex\n shrink={0}\n direction=\"column\"\n alignItems=\"stretch\"\n width={{ initial: '28rem', large: '32rem' }}\n height=\"100%\"\n overflow=\"hidden\"\n background=\"neutral0\"\n borderColor=\"neutral200\"\n borderWidth=\"0 0 0 1px\"\n borderStyle=\"solid\"\n tag=\"aside\"\n >\n <Flex\n direction=\"row\"\n justifyContent=\"space-between\"\n padding={4}\n borderColor=\"neutral200\"\n borderWidth=\"0 0 1px\"\n borderStyle=\"solid\"\n tag=\"header\"\n role=\"banner\"\n >\n <Typography tag=\"h2\" variant=\"omega\" fontWeight=\"semiBold\">\n {formatMessage({\n id: 'content-manager.history.sidebar.title',\n defaultMessage: 'Versions',\n })}\n </Typography>\n <Box background=\"neutral150\" hasRadius padding={1}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {versions.meta.pagination.total}\n </Typography>\n </Box>\n </Flex>\n <VersionsListItems />\n </Flex>\n ) : (\n <>\n <ActionsDrawer.Root hasContent hasSideNav>\n <ActionsDrawer.Overlay />\n <ActionsDrawer.Header>\n {currentVersion && (\n <Flex gap={2} overflow=\"hidden\">\n <Box flex={1} overflow=\"hidden\">\n <Typography\n display=\"block\"\n variant=\"omega\"\n textColor=\"neutral600\"\n overflow=\"hidden\"\n style={{ textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}\n >\n <VersionAuthor\n version={currentVersion}\n isCurrent={page === 1 && versions.data.indexOf(currentVersion) === 0}\n />\n </Typography>\n </Box>\n {currentVersion.status && <DocumentStatus status={currentVersion.status} size=\"XS\" />}\n </Flex>\n )}\n </ActionsDrawer.Header>\n <ActionsDrawer.Content>\n <VersionsListItems />\n </ActionsDrawer.Content>\n </ActionsDrawer.Root>\n </>\n );\n};\n\nexport { VersionsList };\n"],"names":["BlueText","children","_jsx","Typography","textColor","variant","VersionAuthor","version","isCurrent","formatMessage","useIntl","author","createdBy","getDisplayName","_Fragment","id","defaultMessage","distanceToNow","RelativeTime","timestamp","Date","createdAt","isAnonymous","b","VersionCard","formatDate","query","useQueryParams","setIsOpen","useActionsDrawer","s","isActive","toString","handleClick","_jsxs","Flex","direction","alignItems","gap","hasRadius","borderWidth","borderStyle","borderColor","color","padding","tag","Link","to","stringify","style","textDecoration","onClick","fontWeight","day","month","year","hour","minute","status","DocumentStatus","size","PaginationButton","page","_id","queryRest","search","VersionsListItems","versions","useHistoryContext","state","Box","flex","overflow","meta","pagination","paddingTop","textAlign","initial","medium","data","map","index","li","aria-label","pageCount","paddingBottom","VersionsList","isMobile","useIsMobile","currentVersion","find","shrink","width","large","height","background","justifyContent","role","total","ActionsDrawer","Root","hasContent","hasSideNav","Overlay","Header","display","textOverflow","whiteSpace","indexOf","Content"],"mappings":"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"}
|
|
@@ -239,53 +239,47 @@ const PaginationButton = ({ page, children })=>{
|
|
|
239
239
|
}),
|
|
240
240
|
/*#__PURE__*/ jsx(VersionsListItems, {})
|
|
241
241
|
]
|
|
242
|
-
}) : /*#__PURE__*/
|
|
243
|
-
children:
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
/*#__PURE__*/
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
242
|
+
}) : /*#__PURE__*/ jsx(Fragment, {
|
|
243
|
+
children: /*#__PURE__*/ jsxs(ActionsDrawer.Root, {
|
|
244
|
+
hasContent: true,
|
|
245
|
+
hasSideNav: true,
|
|
246
|
+
children: [
|
|
247
|
+
/*#__PURE__*/ jsx(ActionsDrawer.Overlay, {}),
|
|
248
|
+
/*#__PURE__*/ jsx(ActionsDrawer.Header, {
|
|
249
|
+
children: currentVersion && /*#__PURE__*/ jsxs(Flex, {
|
|
250
|
+
gap: 2,
|
|
251
|
+
overflow: "hidden",
|
|
252
|
+
children: [
|
|
253
|
+
/*#__PURE__*/ jsx(Box, {
|
|
254
|
+
flex: 1,
|
|
255
|
+
overflow: "hidden",
|
|
256
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
257
|
+
display: "block",
|
|
258
|
+
variant: "omega",
|
|
259
|
+
textColor: "neutral600",
|
|
256
260
|
overflow: "hidden",
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
whiteSpace: 'nowrap'
|
|
265
|
-
},
|
|
266
|
-
children: /*#__PURE__*/ jsx(VersionAuthor, {
|
|
267
|
-
version: currentVersion,
|
|
268
|
-
isCurrent: page === 1 && versions.data.indexOf(currentVersion) === 0
|
|
269
|
-
})
|
|
261
|
+
style: {
|
|
262
|
+
textOverflow: 'ellipsis',
|
|
263
|
+
whiteSpace: 'nowrap'
|
|
264
|
+
},
|
|
265
|
+
children: /*#__PURE__*/ jsx(VersionAuthor, {
|
|
266
|
+
version: currentVersion,
|
|
267
|
+
isCurrent: page === 1 && versions.data.indexOf(currentVersion) === 0
|
|
270
268
|
})
|
|
271
|
-
}),
|
|
272
|
-
currentVersion.status && /*#__PURE__*/ jsx(DocumentStatus, {
|
|
273
|
-
status: currentVersion.status,
|
|
274
|
-
size: "XS"
|
|
275
269
|
})
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
270
|
+
}),
|
|
271
|
+
currentVersion.status && /*#__PURE__*/ jsx(DocumentStatus, {
|
|
272
|
+
status: currentVersion.status,
|
|
273
|
+
size: "XS"
|
|
274
|
+
})
|
|
275
|
+
]
|
|
281
276
|
})
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
]
|
|
277
|
+
}),
|
|
278
|
+
/*#__PURE__*/ jsx(ActionsDrawer.Content, {
|
|
279
|
+
children: /*#__PURE__*/ jsx(VersionsListItems, {})
|
|
280
|
+
})
|
|
281
|
+
]
|
|
282
|
+
})
|
|
289
283
|
});
|
|
290
284
|
};
|
|
291
285
|
|