@strapi/content-manager 5.34.0 → 5.36.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 +208 -0
- package/dist/admin/components/ActionsDrawer.js.map +1 -0
- package/dist/admin/components/ActionsDrawer.mjs +186 -0
- package/dist/admin/components/ActionsDrawer.mjs.map +1 -0
- package/dist/admin/components/LeftMenu.js +1 -28
- package/dist/admin/components/LeftMenu.js.map +1 -1
- package/dist/admin/components/LeftMenu.mjs +2 -29
- package/dist/admin/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/history/components/VersionContent.js +96 -68
- package/dist/admin/history/components/VersionContent.js.map +1 -1
- package/dist/admin/history/components/VersionContent.mjs +98 -70
- package/dist/admin/history/components/VersionContent.mjs.map +1 -1
- package/dist/admin/history/components/VersionsList.js +139 -54
- package/dist/admin/history/components/VersionsList.js.map +1 -1
- package/dist/admin/history/components/VersionsList.mjs +141 -56
- package/dist/admin/history/components/VersionsList.mjs.map +1 -1
- package/dist/admin/history/pages/History.js +27 -9
- package/dist/admin/history/pages/History.js.map +1 -1
- package/dist/admin/history/pages/History.mjs +28 -10
- package/dist/admin/history/pages/History.mjs.map +1 -1
- package/dist/admin/hooks/useDocument.js +1 -1
- package/dist/admin/hooks/useDocument.js.map +1 -1
- package/dist/admin/hooks/useDocument.mjs +1 -1
- package/dist/admin/hooks/useDocument.mjs.map +1 -1
- package/dist/admin/hooks/usePersistentQueryParams.js +56 -0
- package/dist/admin/hooks/usePersistentQueryParams.js.map +1 -0
- package/dist/admin/hooks/usePersistentQueryParams.mjs +54 -0
- package/dist/admin/hooks/usePersistentQueryParams.mjs.map +1 -0
- package/dist/admin/pages/EditView/EditViewPage.js +107 -71
- package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/pages/EditView/EditViewPage.mjs +109 -73
- package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.js +48 -40
- package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
- package/dist/admin/pages/EditView/components/DocumentActions.mjs +50 -42
- package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js +63 -31
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.js.map +1 -1
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs +64 -32
- package/dist/admin/pages/EditView/components/EditorToolbarObserver.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js +20 -5
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs +20 -5
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Blocks/Link.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js +22 -12
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs +22 -12
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksContent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js +6 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs +7 -2
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js +151 -10
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs +152 -11
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/BlocksToolbar.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js +52 -5
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs +53 -6
- package/dist/admin/pages/EditView/components/FormInputs/BlocksInput/Modifiers.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +10 -6
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +11 -7
- package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +8 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +8 -2
- package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.js +9 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.mjs +9 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/AddComponentButton.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js +7 -2
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs +7 -2
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js +30 -11
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs +31 -12
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/ComponentPicker.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +4 -4
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +4 -4
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js +4 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs +4 -1
- package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/Field.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js +6 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs +6 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Editor.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs +1 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js +21 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.mjs +24 -4
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/Field.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs +2 -2
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/PreviewWysiwyg.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.js +4 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.mjs +4 -0
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +30 -13
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +32 -16
- package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.js +6 -9
- package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
- package/dist/admin/pages/EditView/components/FormLayout.mjs +6 -9
- package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/Header.js +2 -0
- package/dist/admin/pages/EditView/components/Header.js.map +1 -1
- package/dist/admin/pages/EditView/components/Header.mjs +2 -0
- package/dist/admin/pages/EditView/components/Header.mjs.map +1 -1
- package/dist/admin/pages/EditView/components/Panels.js +67 -15
- package/dist/admin/pages/EditView/components/Panels.js.map +1 -1
- package/dist/admin/pages/EditView/components/Panels.mjs +67 -18
- package/dist/admin/pages/EditView/components/Panels.mjs.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.js +52 -20
- package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
- package/dist/admin/pages/ListView/ListViewPage.mjs +53 -21
- package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
- package/dist/admin/preview/index.js +9 -3
- package/dist/admin/preview/index.js.map +1 -1
- package/dist/admin/preview/index.mjs +9 -3
- package/dist/admin/preview/index.mjs.map +1 -1
- package/dist/admin/src/components/ActionsDrawer.d.ts +35 -0
- package/dist/admin/src/hooks/usePersistentQueryParams.d.ts +5 -0
- package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.d.ts +7 -2
- package/dist/admin/src/pages/EditView/components/Panels.d.ts +14 -2
- package/dist/admin/translations/en.json.js +5 -1
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +5 -1
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/admin/translations/es.json.js +3 -1
- package/dist/admin/translations/es.json.js.map +1 -1
- package/dist/admin/translations/es.json.mjs +3 -1
- package/dist/admin/translations/es.json.mjs.map +1 -1
- package/dist/admin/translations/fr.json.js +3 -1
- package/dist/admin/translations/fr.json.js.map +1 -1
- package/dist/admin/translations/fr.json.mjs +3 -1
- package/dist/admin/translations/fr.json.mjs.map +1 -1
- package/dist/server/preview/services/preview.js +1 -1
- package/dist/server/preview/services/preview.js.map +1 -1
- package/dist/server/preview/services/preview.mjs +1 -1
- package/dist/server/preview/services/preview.mjs.map +1 -1
- package/dist/server/src/preview/services/index.d.ts +1 -1
- package/dist/server/src/preview/utils.d.ts +1 -1
- package/package.json +5 -5
|
@@ -30,15 +30,39 @@ function _interopNamespaceDefault(e) {
|
|
|
30
30
|
|
|
31
31
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
32
32
|
|
|
33
|
+
const PanelsItems = ({ panels, setVisiblePanels, visiblePanelsLength })=>{
|
|
34
|
+
React__namespace.useEffect(()=>{
|
|
35
|
+
if (setVisiblePanels && visiblePanelsLength !== panels.length) {
|
|
36
|
+
setVisiblePanels(panels);
|
|
37
|
+
}
|
|
38
|
+
}, [
|
|
39
|
+
panels,
|
|
40
|
+
panels.length,
|
|
41
|
+
setVisiblePanels,
|
|
42
|
+
visiblePanelsLength
|
|
43
|
+
]);
|
|
44
|
+
return /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
45
|
+
children: panels.map(({ content, id, ...description })=>/*#__PURE__*/ jsxRuntime.jsx(Panel, {
|
|
46
|
+
...description,
|
|
47
|
+
children: content
|
|
48
|
+
}, id))
|
|
49
|
+
});
|
|
50
|
+
};
|
|
33
51
|
/* -------------------------------------------------------------------------------------------------
|
|
34
52
|
* Panels
|
|
35
|
-
* -----------------------------------------------------------------------------------------------*/ const Panels = ()=>{
|
|
53
|
+
* -----------------------------------------------------------------------------------------------*/ const Panels = ({ withActions = true })=>{
|
|
36
54
|
const isCloning = reactRouterDom.useMatch(router.CLONE_PATH) !== null;
|
|
37
55
|
const [{ query: { status } }] = strapiAdmin.useQueryParams({
|
|
38
56
|
status: 'draft'
|
|
39
57
|
});
|
|
40
58
|
const { model, id, document, meta, collectionType } = useDocument.useDoc();
|
|
41
59
|
const plugins = strapiAdmin.useStrapiApp('Panels', (state)=>state.plugins);
|
|
60
|
+
// Optional context consumer
|
|
61
|
+
const setVisiblePanels = usePanelsContext('Panels', (s)=>s.setVisiblePanels, false);
|
|
62
|
+
const visiblePanels = usePanelsContext('Panels', (s)=>s.visiblePanels, false);
|
|
63
|
+
const allPanels = plugins['content-manager'].apis.getEditViewSidePanels();
|
|
64
|
+
const filteredPanels = allPanels.filter((panel)=>panel.type !== 'actions');
|
|
65
|
+
const panelsToDisplay = withActions ? allPanels : filteredPanels;
|
|
42
66
|
const props = {
|
|
43
67
|
activeTab: status,
|
|
44
68
|
model,
|
|
@@ -53,11 +77,12 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
|
53
77
|
gap: 2,
|
|
54
78
|
children: /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.DescriptionComponentRenderer, {
|
|
55
79
|
props: props,
|
|
56
|
-
descriptions:
|
|
57
|
-
children: (panels)
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
80
|
+
descriptions: panelsToDisplay,
|
|
81
|
+
children: (panels)=>/*#__PURE__*/ jsxRuntime.jsx(PanelsItems, {
|
|
82
|
+
panels: panels,
|
|
83
|
+
setVisiblePanels: setVisiblePanels,
|
|
84
|
+
visiblePanelsLength: visiblePanels?.length
|
|
85
|
+
})
|
|
61
86
|
})
|
|
62
87
|
});
|
|
63
88
|
};
|
|
@@ -107,19 +132,32 @@ const ActionsPanelContent = ()=>{
|
|
|
107
132
|
});
|
|
108
133
|
};
|
|
109
134
|
const Panel = /*#__PURE__*/ React__namespace.forwardRef(({ children, title }, ref)=>{
|
|
135
|
+
const isDesktop = strapiAdmin.useIsDesktop();
|
|
110
136
|
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
111
137
|
ref: ref,
|
|
112
138
|
tag: "aside",
|
|
113
139
|
"aria-labelledby": "additional-information",
|
|
114
|
-
background:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
140
|
+
background: {
|
|
141
|
+
initial: 'transparent',
|
|
142
|
+
large: 'neutral0'
|
|
143
|
+
},
|
|
144
|
+
borderColor: {
|
|
145
|
+
initial: 'transparent',
|
|
146
|
+
large: 'neutral150'
|
|
147
|
+
},
|
|
148
|
+
hasRadius: isDesktop,
|
|
149
|
+
padding: {
|
|
150
|
+
initial: 0,
|
|
151
|
+
large: 4
|
|
152
|
+
},
|
|
153
|
+
shadow: {
|
|
154
|
+
initial: 'none',
|
|
155
|
+
large: 'tableShadow'
|
|
156
|
+
},
|
|
157
|
+
gap: {
|
|
158
|
+
initial: 4,
|
|
159
|
+
large: 3
|
|
160
|
+
},
|
|
123
161
|
direction: "column",
|
|
124
162
|
justifyContent: "stretch",
|
|
125
163
|
alignItems: "flex-start",
|
|
@@ -135,7 +173,21 @@ const Panel = /*#__PURE__*/ React__namespace.forwardRef(({ children, title }, re
|
|
|
135
173
|
]
|
|
136
174
|
});
|
|
137
175
|
});
|
|
176
|
+
/* -------------------------------------------------------------------------------------------------
|
|
177
|
+
* PanelsContext
|
|
178
|
+
* -----------------------------------------------------------------------------------------------*/ const [PanelsProviderImpl, usePanelsContext] = strapiAdmin.createContext('PanelsContext');
|
|
179
|
+
const PanelsProvider = ({ children })=>{
|
|
180
|
+
const [visiblePanels, setVisiblePanels] = React__namespace.useState([]);
|
|
181
|
+
return /*#__PURE__*/ jsxRuntime.jsx(PanelsProviderImpl, {
|
|
182
|
+
visiblePanels: visiblePanels,
|
|
183
|
+
setVisiblePanels: setVisiblePanels,
|
|
184
|
+
children: children
|
|
185
|
+
});
|
|
186
|
+
};
|
|
138
187
|
|
|
139
188
|
exports.ActionsPanel = ActionsPanel;
|
|
189
|
+
exports.ActionsPanelContent = ActionsPanelContent;
|
|
140
190
|
exports.Panels = Panels;
|
|
191
|
+
exports.PanelsProvider = PanelsProvider;
|
|
192
|
+
exports.usePanelsContext = usePanelsContext;
|
|
141
193
|
//# sourceMappingURL=Panels.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Panels.js","sources":["../../../../../admin/src/pages/EditView/components/Panels.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useQueryParams,\n useStrapiApp,\n DescriptionComponentRenderer,\n} from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useMatch } from 'react-router-dom';\n\nimport { InjectionZone } from '../../../components/InjectionZone';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { CLONE_PATH } from '../../../router';\n\nimport { DocumentActions } from './DocumentActions';\n\nimport type {\n ContentManagerPlugin,\n DocumentActionProps,\n PanelComponent,\n PanelComponentProps,\n} from '../../../content-manager';\n\ninterface PanelDescription {\n title: string;\n content: React.ReactNode;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Panels\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panels = () => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('Panels', (state) => state.plugins);\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies PanelComponentProps;\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getEditViewSidePanels()}\n >\n {(panels) =>\n panels.map(({ content, id, ...description }) => (\n <Panel key={id} {...description}>\n {content}\n </Panel>\n ))\n }\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Default Action Panels (CE)\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionsPanel: PanelComponent = () => {\n const { formatMessage } = useIntl();\n\n return {\n title: formatMessage({\n id: 'content-manager.containers.edit.panels.default.title',\n defaultMessage: 'Entry',\n }),\n content: <ActionsPanelContent />,\n };\n};\n\nActionsPanel.type = 'actions';\n\nconst ActionsPanelContent = () => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('ActionsPanel', (state) => state.plugins);\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies DocumentActionProps;\n\n return (\n <Flex direction=\"column\" gap={2} width=\"100%\">\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('panel')}\n >\n {(actions) => <DocumentActions actions={actions} />}\n </DescriptionComponentRenderer>\n <InjectionZone area=\"editView.right-links\" slug={model} />\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panel\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PanelProps extends Pick<PanelDescription, 'title'> {\n children: React.ReactNode;\n}\n\nconst Panel = React.forwardRef<any, PanelProps>(({ children, title }, ref) => {\n return (\n <Flex\n ref={ref}\n tag=\"aside\"\n aria-labelledby=\"additional-information\"\n background=\"neutral0\"\n borderColor=\"neutral150\"\n hasRadius\n paddingBottom={4}\n paddingLeft={4}\n paddingRight={4}\n paddingTop={4}\n shadow=\"tableShadow\"\n gap={3}\n direction=\"column\"\n justifyContent=\"stretch\"\n alignItems=\"flex-start\"\n >\n <Typography tag=\"h2\" variant=\"sigma\" textTransform=\"uppercase\" textColor=\"neutral600\">\n {title}\n </Typography>\n {children}\n </Flex>\n );\n});\n\nexport { Panels, ActionsPanel };\nexport type { PanelDescription };\n"],"names":["Panels","isCloning","useMatch","CLONE_PATH","query","status","useQueryParams","model","id","document","meta","collectionType","useDoc","plugins","useStrapiApp","state","props","activeTab","documentId","undefined","_jsx","Flex","direction","alignItems","gap","DescriptionComponentRenderer","descriptions","apis","getEditViewSidePanels","panels","map","content","description","Panel","ActionsPanel","formatMessage","useIntl","title","defaultMessage","ActionsPanelContent","type","_jsxs","width","getDocumentActions","actions","DocumentActions","InjectionZone","area","slug","React","forwardRef","children","ref","tag","aria-labelledby","background","borderColor","hasRadius","paddingBottom","paddingLeft","paddingRight","paddingTop","shadow","justifyContent","Typography","variant","textTransform","textColor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Panels.js","sources":["../../../../../admin/src/pages/EditView/components/Panels.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useQueryParams,\n useStrapiApp,\n DescriptionComponentRenderer,\n useIsDesktop,\n createContext,\n} from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useMatch } from 'react-router-dom';\n\nimport { InjectionZone } from '../../../components/InjectionZone';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { CLONE_PATH } from '../../../router';\n\nimport { DocumentActions } from './DocumentActions';\n\nimport type {\n ContentManagerPlugin,\n DocumentActionProps,\n PanelComponent,\n PanelComponentProps,\n} from '../../../content-manager';\n\ninterface PanelDescription {\n title: string;\n content: React.ReactNode;\n}\ninterface PanelsItemsProps {\n panels: (PanelDescription & { id: string })[];\n setVisiblePanels:\n | React.Dispatch<React.SetStateAction<(PanelDescription & { id: string })[]>>\n | null\n | undefined;\n visiblePanelsLength: number | undefined;\n}\n\nconst PanelsItems = ({ panels, setVisiblePanels, visiblePanelsLength }: PanelsItemsProps) => {\n React.useEffect(() => {\n if (setVisiblePanels && visiblePanelsLength !== panels.length) {\n setVisiblePanels(panels);\n }\n }, [panels, panels.length, setVisiblePanels, visiblePanelsLength]);\n\n return (\n <>\n {panels.map(({ content, id, ...description }) => (\n <Panel key={id} {...description}>\n {content}\n </Panel>\n ))}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panels\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panels = ({ withActions = true }: { withActions?: boolean }) => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('Panels', (state) => state.plugins);\n // Optional context consumer\n const setVisiblePanels = usePanelsContext('Panels', (s) => s.setVisiblePanels, false);\n const visiblePanels = usePanelsContext('Panels', (s) => s.visiblePanels, false);\n\n const allPanels = (\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getEditViewSidePanels();\n const filteredPanels = allPanels.filter((panel) => (panel as PanelComponent).type !== 'actions');\n const panelsToDisplay = withActions ? allPanels : filteredPanels;\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies PanelComponentProps;\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <DescriptionComponentRenderer props={props} descriptions={panelsToDisplay}>\n {(panels) => (\n <PanelsItems\n panels={panels}\n setVisiblePanels={setVisiblePanels}\n visiblePanelsLength={visiblePanels?.length}\n />\n )}\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Default Action Panels (CE)\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionsPanel: PanelComponent = () => {\n const { formatMessage } = useIntl();\n\n return {\n title: formatMessage({\n id: 'content-manager.containers.edit.panels.default.title',\n defaultMessage: 'Entry',\n }),\n content: <ActionsPanelContent />,\n };\n};\n\nActionsPanel.type = 'actions';\n\nconst ActionsPanelContent = () => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('ActionsPanel', (state) => state.plugins);\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies DocumentActionProps;\n\n return (\n <Flex direction=\"column\" gap={2} width=\"100%\">\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('panel')}\n >\n {(actions) => <DocumentActions actions={actions} />}\n </DescriptionComponentRenderer>\n <InjectionZone area=\"editView.right-links\" slug={model} />\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panel\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PanelProps extends Pick<PanelDescription, 'title'> {\n children: React.ReactNode;\n}\n\nconst Panel = React.forwardRef<any, PanelProps>(({ children, title }, ref) => {\n const isDesktop = useIsDesktop();\n\n return (\n <Flex\n ref={ref}\n tag=\"aside\"\n aria-labelledby=\"additional-information\"\n background={{ initial: 'transparent', large: 'neutral0' }}\n borderColor={{ initial: 'transparent', large: 'neutral150' }}\n hasRadius={isDesktop}\n padding={{ initial: 0, large: 4 }}\n shadow={{ initial: 'none', large: 'tableShadow' }}\n gap={{ initial: 4, large: 3 }}\n direction=\"column\"\n justifyContent=\"stretch\"\n alignItems=\"flex-start\"\n >\n <Typography tag=\"h2\" variant=\"sigma\" textTransform=\"uppercase\" textColor=\"neutral600\">\n {title}\n </Typography>\n {children}\n </Flex>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * PanelsContext\n * -----------------------------------------------------------------------------------------------*/\n\nconst [PanelsProviderImpl, usePanelsContext] = createContext<{\n visiblePanels: (PanelDescription & { id: string })[];\n setVisiblePanels: React.Dispatch<React.SetStateAction<(PanelDescription & { id: string })[]>>;\n}>('PanelsContext');\n\nconst PanelsProvider = ({ children }: React.PropsWithChildren) => {\n const [visiblePanels, setVisiblePanels] = React.useState<(PanelDescription & { id: string })[]>(\n []\n );\n\n return (\n <PanelsProviderImpl visiblePanels={visiblePanels} setVisiblePanels={setVisiblePanels}>\n {children}\n </PanelsProviderImpl>\n );\n};\n\nexport { Panels, ActionsPanel, ActionsPanelContent, PanelsProvider, usePanelsContext };\nexport type { PanelDescription };\n"],"names":["PanelsItems","panels","setVisiblePanels","visiblePanelsLength","React","useEffect","length","_jsx","_Fragment","map","content","id","description","Panel","Panels","withActions","isCloning","useMatch","CLONE_PATH","query","status","useQueryParams","model","document","meta","collectionType","useDoc","plugins","useStrapiApp","state","usePanelsContext","s","visiblePanels","allPanels","apis","getEditViewSidePanels","filteredPanels","filter","panel","type","panelsToDisplay","props","activeTab","documentId","undefined","Flex","direction","alignItems","gap","DescriptionComponentRenderer","descriptions","ActionsPanel","formatMessage","useIntl","title","defaultMessage","ActionsPanelContent","_jsxs","width","getDocumentActions","actions","DocumentActions","InjectionZone","area","slug","forwardRef","children","ref","isDesktop","useIsDesktop","tag","aria-labelledby","background","initial","large","borderColor","hasRadius","padding","shadow","justifyContent","Typography","variant","textTransform","textColor","PanelsProviderImpl","createContext","PanelsProvider","useState"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { useQueryParams, useStrapiApp, DescriptionComponentRenderer } from '@strapi/admin/strapi-admin';
|
|
3
|
+
import { createContext, useQueryParams, useStrapiApp, DescriptionComponentRenderer, useIsDesktop } from '@strapi/admin/strapi-admin';
|
|
4
4
|
import { Flex, Typography } from '@strapi/design-system';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import { useMatch } from 'react-router-dom';
|
|
@@ -9,15 +9,39 @@ import { useDoc } from '../../../hooks/useDocument.mjs';
|
|
|
9
9
|
import { CLONE_PATH } from '../../../router.mjs';
|
|
10
10
|
import { DocumentActions } from './DocumentActions.mjs';
|
|
11
11
|
|
|
12
|
+
const PanelsItems = ({ panels, setVisiblePanels, visiblePanelsLength })=>{
|
|
13
|
+
React.useEffect(()=>{
|
|
14
|
+
if (setVisiblePanels && visiblePanelsLength !== panels.length) {
|
|
15
|
+
setVisiblePanels(panels);
|
|
16
|
+
}
|
|
17
|
+
}, [
|
|
18
|
+
panels,
|
|
19
|
+
panels.length,
|
|
20
|
+
setVisiblePanels,
|
|
21
|
+
visiblePanelsLength
|
|
22
|
+
]);
|
|
23
|
+
return /*#__PURE__*/ jsx(Fragment, {
|
|
24
|
+
children: panels.map(({ content, id, ...description })=>/*#__PURE__*/ jsx(Panel, {
|
|
25
|
+
...description,
|
|
26
|
+
children: content
|
|
27
|
+
}, id))
|
|
28
|
+
});
|
|
29
|
+
};
|
|
12
30
|
/* -------------------------------------------------------------------------------------------------
|
|
13
31
|
* Panels
|
|
14
|
-
* -----------------------------------------------------------------------------------------------*/ const Panels = ()=>{
|
|
32
|
+
* -----------------------------------------------------------------------------------------------*/ const Panels = ({ withActions = true })=>{
|
|
15
33
|
const isCloning = useMatch(CLONE_PATH) !== null;
|
|
16
34
|
const [{ query: { status } }] = useQueryParams({
|
|
17
35
|
status: 'draft'
|
|
18
36
|
});
|
|
19
37
|
const { model, id, document, meta, collectionType } = useDoc();
|
|
20
38
|
const plugins = useStrapiApp('Panels', (state)=>state.plugins);
|
|
39
|
+
// Optional context consumer
|
|
40
|
+
const setVisiblePanels = usePanelsContext('Panels', (s)=>s.setVisiblePanels, false);
|
|
41
|
+
const visiblePanels = usePanelsContext('Panels', (s)=>s.visiblePanels, false);
|
|
42
|
+
const allPanels = plugins['content-manager'].apis.getEditViewSidePanels();
|
|
43
|
+
const filteredPanels = allPanels.filter((panel)=>panel.type !== 'actions');
|
|
44
|
+
const panelsToDisplay = withActions ? allPanels : filteredPanels;
|
|
21
45
|
const props = {
|
|
22
46
|
activeTab: status,
|
|
23
47
|
model,
|
|
@@ -32,11 +56,12 @@ import { DocumentActions } from './DocumentActions.mjs';
|
|
|
32
56
|
gap: 2,
|
|
33
57
|
children: /*#__PURE__*/ jsx(DescriptionComponentRenderer, {
|
|
34
58
|
props: props,
|
|
35
|
-
descriptions:
|
|
36
|
-
children: (panels)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
59
|
+
descriptions: panelsToDisplay,
|
|
60
|
+
children: (panels)=>/*#__PURE__*/ jsx(PanelsItems, {
|
|
61
|
+
panels: panels,
|
|
62
|
+
setVisiblePanels: setVisiblePanels,
|
|
63
|
+
visiblePanelsLength: visiblePanels?.length
|
|
64
|
+
})
|
|
40
65
|
})
|
|
41
66
|
});
|
|
42
67
|
};
|
|
@@ -86,19 +111,32 @@ const ActionsPanelContent = ()=>{
|
|
|
86
111
|
});
|
|
87
112
|
};
|
|
88
113
|
const Panel = /*#__PURE__*/ React.forwardRef(({ children, title }, ref)=>{
|
|
114
|
+
const isDesktop = useIsDesktop();
|
|
89
115
|
return /*#__PURE__*/ jsxs(Flex, {
|
|
90
116
|
ref: ref,
|
|
91
117
|
tag: "aside",
|
|
92
118
|
"aria-labelledby": "additional-information",
|
|
93
|
-
background:
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
119
|
+
background: {
|
|
120
|
+
initial: 'transparent',
|
|
121
|
+
large: 'neutral0'
|
|
122
|
+
},
|
|
123
|
+
borderColor: {
|
|
124
|
+
initial: 'transparent',
|
|
125
|
+
large: 'neutral150'
|
|
126
|
+
},
|
|
127
|
+
hasRadius: isDesktop,
|
|
128
|
+
padding: {
|
|
129
|
+
initial: 0,
|
|
130
|
+
large: 4
|
|
131
|
+
},
|
|
132
|
+
shadow: {
|
|
133
|
+
initial: 'none',
|
|
134
|
+
large: 'tableShadow'
|
|
135
|
+
},
|
|
136
|
+
gap: {
|
|
137
|
+
initial: 4,
|
|
138
|
+
large: 3
|
|
139
|
+
},
|
|
102
140
|
direction: "column",
|
|
103
141
|
justifyContent: "stretch",
|
|
104
142
|
alignItems: "flex-start",
|
|
@@ -114,6 +152,17 @@ const Panel = /*#__PURE__*/ React.forwardRef(({ children, title }, ref)=>{
|
|
|
114
152
|
]
|
|
115
153
|
});
|
|
116
154
|
});
|
|
155
|
+
/* -------------------------------------------------------------------------------------------------
|
|
156
|
+
* PanelsContext
|
|
157
|
+
* -----------------------------------------------------------------------------------------------*/ const [PanelsProviderImpl, usePanelsContext] = createContext('PanelsContext');
|
|
158
|
+
const PanelsProvider = ({ children })=>{
|
|
159
|
+
const [visiblePanels, setVisiblePanels] = React.useState([]);
|
|
160
|
+
return /*#__PURE__*/ jsx(PanelsProviderImpl, {
|
|
161
|
+
visiblePanels: visiblePanels,
|
|
162
|
+
setVisiblePanels: setVisiblePanels,
|
|
163
|
+
children: children
|
|
164
|
+
});
|
|
165
|
+
};
|
|
117
166
|
|
|
118
|
-
export { ActionsPanel, Panels };
|
|
167
|
+
export { ActionsPanel, ActionsPanelContent, Panels, PanelsProvider, usePanelsContext };
|
|
119
168
|
//# sourceMappingURL=Panels.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Panels.mjs","sources":["../../../../../admin/src/pages/EditView/components/Panels.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useQueryParams,\n useStrapiApp,\n DescriptionComponentRenderer,\n} from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useMatch } from 'react-router-dom';\n\nimport { InjectionZone } from '../../../components/InjectionZone';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { CLONE_PATH } from '../../../router';\n\nimport { DocumentActions } from './DocumentActions';\n\nimport type {\n ContentManagerPlugin,\n DocumentActionProps,\n PanelComponent,\n PanelComponentProps,\n} from '../../../content-manager';\n\ninterface PanelDescription {\n title: string;\n content: React.ReactNode;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Panels\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panels = () => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('Panels', (state) => state.plugins);\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies PanelComponentProps;\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getEditViewSidePanels()}\n >\n {(panels) =>\n panels.map(({ content, id, ...description }) => (\n <Panel key={id} {...description}>\n {content}\n </Panel>\n ))\n }\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Default Action Panels (CE)\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionsPanel: PanelComponent = () => {\n const { formatMessage } = useIntl();\n\n return {\n title: formatMessage({\n id: 'content-manager.containers.edit.panels.default.title',\n defaultMessage: 'Entry',\n }),\n content: <ActionsPanelContent />,\n };\n};\n\nActionsPanel.type = 'actions';\n\nconst ActionsPanelContent = () => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('ActionsPanel', (state) => state.plugins);\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies DocumentActionProps;\n\n return (\n <Flex direction=\"column\" gap={2} width=\"100%\">\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('panel')}\n >\n {(actions) => <DocumentActions actions={actions} />}\n </DescriptionComponentRenderer>\n <InjectionZone area=\"editView.right-links\" slug={model} />\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panel\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PanelProps extends Pick<PanelDescription, 'title'> {\n children: React.ReactNode;\n}\n\nconst Panel = React.forwardRef<any, PanelProps>(({ children, title }, ref) => {\n return (\n <Flex\n ref={ref}\n tag=\"aside\"\n aria-labelledby=\"additional-information\"\n background=\"neutral0\"\n borderColor=\"neutral150\"\n hasRadius\n paddingBottom={4}\n paddingLeft={4}\n paddingRight={4}\n paddingTop={4}\n shadow=\"tableShadow\"\n gap={3}\n direction=\"column\"\n justifyContent=\"stretch\"\n alignItems=\"flex-start\"\n >\n <Typography tag=\"h2\" variant=\"sigma\" textTransform=\"uppercase\" textColor=\"neutral600\">\n {title}\n </Typography>\n {children}\n </Flex>\n );\n});\n\nexport { Panels, ActionsPanel };\nexport type { PanelDescription };\n"],"names":["Panels","isCloning","useMatch","CLONE_PATH","query","status","useQueryParams","model","id","document","meta","collectionType","useDoc","plugins","useStrapiApp","state","props","activeTab","documentId","undefined","_jsx","Flex","direction","alignItems","gap","DescriptionComponentRenderer","descriptions","apis","getEditViewSidePanels","panels","map","content","description","Panel","ActionsPanel","formatMessage","useIntl","title","defaultMessage","ActionsPanelContent","type","_jsxs","width","getDocumentActions","actions","DocumentActions","InjectionZone","area","slug","React","forwardRef","children","ref","tag","aria-labelledby","background","borderColor","hasRadius","paddingBottom","paddingLeft","paddingRight","paddingTop","shadow","justifyContent","Typography","variant","textTransform","textColor"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Panels.mjs","sources":["../../../../../admin/src/pages/EditView/components/Panels.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useQueryParams,\n useStrapiApp,\n DescriptionComponentRenderer,\n useIsDesktop,\n createContext,\n} from '@strapi/admin/strapi-admin';\nimport { Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useMatch } from 'react-router-dom';\n\nimport { InjectionZone } from '../../../components/InjectionZone';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { CLONE_PATH } from '../../../router';\n\nimport { DocumentActions } from './DocumentActions';\n\nimport type {\n ContentManagerPlugin,\n DocumentActionProps,\n PanelComponent,\n PanelComponentProps,\n} from '../../../content-manager';\n\ninterface PanelDescription {\n title: string;\n content: React.ReactNode;\n}\ninterface PanelsItemsProps {\n panels: (PanelDescription & { id: string })[];\n setVisiblePanels:\n | React.Dispatch<React.SetStateAction<(PanelDescription & { id: string })[]>>\n | null\n | undefined;\n visiblePanelsLength: number | undefined;\n}\n\nconst PanelsItems = ({ panels, setVisiblePanels, visiblePanelsLength }: PanelsItemsProps) => {\n React.useEffect(() => {\n if (setVisiblePanels && visiblePanelsLength !== panels.length) {\n setVisiblePanels(panels);\n }\n }, [panels, panels.length, setVisiblePanels, visiblePanelsLength]);\n\n return (\n <>\n {panels.map(({ content, id, ...description }) => (\n <Panel key={id} {...description}>\n {content}\n </Panel>\n ))}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panels\n * -----------------------------------------------------------------------------------------------*/\n\nconst Panels = ({ withActions = true }: { withActions?: boolean }) => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('Panels', (state) => state.plugins);\n // Optional context consumer\n const setVisiblePanels = usePanelsContext('Panels', (s) => s.setVisiblePanels, false);\n const visiblePanels = usePanelsContext('Panels', (s) => s.visiblePanels, false);\n\n const allPanels = (\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getEditViewSidePanels();\n const filteredPanels = allPanels.filter((panel) => (panel as PanelComponent).type !== 'actions');\n const panelsToDisplay = withActions ? allPanels : filteredPanels;\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies PanelComponentProps;\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <DescriptionComponentRenderer props={props} descriptions={panelsToDisplay}>\n {(panels) => (\n <PanelsItems\n panels={panels}\n setVisiblePanels={setVisiblePanels}\n visiblePanelsLength={visiblePanels?.length}\n />\n )}\n </DescriptionComponentRenderer>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Default Action Panels (CE)\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionsPanel: PanelComponent = () => {\n const { formatMessage } = useIntl();\n\n return {\n title: formatMessage({\n id: 'content-manager.containers.edit.panels.default.title',\n defaultMessage: 'Entry',\n }),\n content: <ActionsPanelContent />,\n };\n};\n\nActionsPanel.type = 'actions';\n\nconst ActionsPanelContent = () => {\n const isCloning = useMatch(CLONE_PATH) !== null;\n const [\n {\n query: { status = 'draft' },\n },\n ] = useQueryParams<{ status: 'draft' | 'published' }>();\n const { model, id, document, meta, collectionType } = useDoc();\n const plugins = useStrapiApp('ActionsPanel', (state) => state.plugins);\n\n const props = {\n activeTab: status,\n model,\n documentId: id,\n document: isCloning ? undefined : document,\n meta: isCloning ? undefined : meta,\n collectionType,\n } satisfies DocumentActionProps;\n\n return (\n <Flex direction=\"column\" gap={2} width=\"100%\">\n <DescriptionComponentRenderer\n props={props}\n descriptions={(\n plugins['content-manager'].apis as ContentManagerPlugin['config']['apis']\n ).getDocumentActions('panel')}\n >\n {(actions) => <DocumentActions actions={actions} />}\n </DescriptionComponentRenderer>\n <InjectionZone area=\"editView.right-links\" slug={model} />\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Panel\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PanelProps extends Pick<PanelDescription, 'title'> {\n children: React.ReactNode;\n}\n\nconst Panel = React.forwardRef<any, PanelProps>(({ children, title }, ref) => {\n const isDesktop = useIsDesktop();\n\n return (\n <Flex\n ref={ref}\n tag=\"aside\"\n aria-labelledby=\"additional-information\"\n background={{ initial: 'transparent', large: 'neutral0' }}\n borderColor={{ initial: 'transparent', large: 'neutral150' }}\n hasRadius={isDesktop}\n padding={{ initial: 0, large: 4 }}\n shadow={{ initial: 'none', large: 'tableShadow' }}\n gap={{ initial: 4, large: 3 }}\n direction=\"column\"\n justifyContent=\"stretch\"\n alignItems=\"flex-start\"\n >\n <Typography tag=\"h2\" variant=\"sigma\" textTransform=\"uppercase\" textColor=\"neutral600\">\n {title}\n </Typography>\n {children}\n </Flex>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * PanelsContext\n * -----------------------------------------------------------------------------------------------*/\n\nconst [PanelsProviderImpl, usePanelsContext] = createContext<{\n visiblePanels: (PanelDescription & { id: string })[];\n setVisiblePanels: React.Dispatch<React.SetStateAction<(PanelDescription & { id: string })[]>>;\n}>('PanelsContext');\n\nconst PanelsProvider = ({ children }: React.PropsWithChildren) => {\n const [visiblePanels, setVisiblePanels] = React.useState<(PanelDescription & { id: string })[]>(\n []\n );\n\n return (\n <PanelsProviderImpl visiblePanels={visiblePanels} setVisiblePanels={setVisiblePanels}>\n {children}\n </PanelsProviderImpl>\n );\n};\n\nexport { Panels, ActionsPanel, ActionsPanelContent, PanelsProvider, usePanelsContext };\nexport type { PanelDescription };\n"],"names":["PanelsItems","panels","setVisiblePanels","visiblePanelsLength","React","useEffect","length","_jsx","_Fragment","map","content","id","description","Panel","Panels","withActions","isCloning","useMatch","CLONE_PATH","query","status","useQueryParams","model","document","meta","collectionType","useDoc","plugins","useStrapiApp","state","usePanelsContext","s","visiblePanels","allPanels","apis","getEditViewSidePanels","filteredPanels","filter","panel","type","panelsToDisplay","props","activeTab","documentId","undefined","Flex","direction","alignItems","gap","DescriptionComponentRenderer","descriptions","ActionsPanel","formatMessage","useIntl","title","defaultMessage","ActionsPanelContent","_jsxs","width","getDocumentActions","actions","DocumentActions","InjectionZone","area","slug","forwardRef","children","ref","isDesktop","useIsDesktop","tag","aria-labelledby","background","initial","large","borderColor","hasRadius","padding","shadow","justifyContent","Typography","variant","textTransform","textColor","PanelsProviderImpl","createContext","PanelsProvider","useState"],"mappings":"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"}
|
|
@@ -6,7 +6,6 @@ var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
|
6
6
|
var designSystem = require('@strapi/design-system');
|
|
7
7
|
var Icons = require('@strapi/icons');
|
|
8
8
|
var Symbols = require('@strapi/icons/symbols');
|
|
9
|
-
var isEqual = require('lodash/isEqual');
|
|
10
9
|
var qs = require('qs');
|
|
11
10
|
var reactIntl = require('react-intl');
|
|
12
11
|
var reactRouterDom = require('react-router-dom');
|
|
@@ -17,6 +16,7 @@ var plugin = require('../../constants/plugin.js');
|
|
|
17
16
|
var DocumentRBAC = require('../../features/DocumentRBAC.js');
|
|
18
17
|
var useDocument = require('../../hooks/useDocument.js');
|
|
19
18
|
var useDocumentLayout = require('../../hooks/useDocumentLayout.js');
|
|
19
|
+
var usePersistentQueryParams = require('../../hooks/usePersistentQueryParams.js');
|
|
20
20
|
var usePrev = require('../../hooks/usePrev.js');
|
|
21
21
|
var documents = require('../../services/documents.js');
|
|
22
22
|
var api = require('../../utils/api.js');
|
|
@@ -60,24 +60,56 @@ const ListViewPage = ()=>{
|
|
|
60
60
|
const { formatMessage } = reactIntl.useIntl();
|
|
61
61
|
const { toggleNotification } = strapiAdmin.useNotification();
|
|
62
62
|
const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler(translations.getTranslation);
|
|
63
|
+
usePersistentQueryParams.usePersistentPartialQueryParams('STRAPI_LIST_VIEW_SETTINGS:', [
|
|
64
|
+
'sort',
|
|
65
|
+
'filters',
|
|
66
|
+
'pageSize'
|
|
67
|
+
]);
|
|
68
|
+
usePersistentQueryParams.usePersistentPartialQueryParams('STRAPI_LOCALE', [
|
|
69
|
+
'plugins.i18n.locale'
|
|
70
|
+
], false);
|
|
63
71
|
const { collectionType, model, schema } = useDocument.useDoc();
|
|
64
72
|
const { list } = useDocumentLayout.useDocumentLayout(model);
|
|
65
|
-
const [
|
|
66
|
-
const
|
|
67
|
-
React__namespace.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
* layout has actually changed in value.
|
|
71
|
-
*/ if (!isEqual(listLayout, list.layout)) {
|
|
72
|
-
setDisplayedHeaders(list.layout);
|
|
73
|
-
}
|
|
73
|
+
const [displayedHeaderNames, setDisplayedHeaderNames] = strapiAdmin.useScopedPersistentState(`STRAPI_LIST_VIEW_DISPLAYED_HEADERS:${model}`, null);
|
|
74
|
+
const mapDisplayedHeaders = (headers)=>headers.map((header)=>header.name);
|
|
75
|
+
const displayedHeaders = React__namespace.useMemo(()=>{
|
|
76
|
+
if (!displayedHeaderNames || !list.metadatas || Object.keys(list.metadatas).length <= 0 || !schema?.attributes) return [];
|
|
77
|
+
return useDocumentLayout.convertListLayoutToFieldLayouts(displayedHeaderNames, schema.attributes, list.metadatas);
|
|
74
78
|
}, [
|
|
75
|
-
|
|
76
|
-
|
|
79
|
+
displayedHeaderNames,
|
|
80
|
+
schema,
|
|
81
|
+
list
|
|
77
82
|
]);
|
|
78
83
|
const handleSetHeaders = (headers)=>{
|
|
79
|
-
|
|
84
|
+
setDisplayedHeaderNames(headers);
|
|
85
|
+
};
|
|
86
|
+
const handleResetHeaders = ()=>{
|
|
87
|
+
setDisplayedHeaderNames(mapDisplayedHeaders(list.layout));
|
|
80
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* If the persistent displayedHeaders are not yet initialized, set them to list.layout
|
|
91
|
+
*/ React__namespace.useEffect(()=>{
|
|
92
|
+
// wait for list.layout to be loaded
|
|
93
|
+
if (list.layout.length === 0) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (!displayedHeaderNames) {
|
|
97
|
+
handleResetHeaders();
|
|
98
|
+
}
|
|
99
|
+
}, [
|
|
100
|
+
list.layout
|
|
101
|
+
]);
|
|
102
|
+
React__namespace.useEffect(()=>{
|
|
103
|
+
if (!schema?.attributes) return;
|
|
104
|
+
if (!displayedHeaderNames || displayedHeaderNames.length === 0) return;
|
|
105
|
+
if (schema.uid !== model) return;
|
|
106
|
+
const allowedDisplayHeaders = displayedHeaderNames.filter((header)=>Object.keys(schema?.attributes).includes(header));
|
|
107
|
+
if (allowedDisplayHeaders.length !== displayedHeaderNames.length) {
|
|
108
|
+
handleSetHeaders(allowedDisplayHeaders);
|
|
109
|
+
}
|
|
110
|
+
}, [
|
|
111
|
+
displayedHeaderNames
|
|
112
|
+
]);
|
|
81
113
|
const [{ query }] = strapiAdmin.useQueryParams({
|
|
82
114
|
page: '1',
|
|
83
115
|
pageSize: list.settings.pageSize.toString(),
|
|
@@ -86,7 +118,7 @@ const ListViewPage = ()=>{
|
|
|
86
118
|
const params = React__namespace.useMemo(()=>api.buildValidParams(query), [
|
|
87
119
|
query
|
|
88
120
|
]);
|
|
89
|
-
const { data, error, isFetching } = documents.useGetAllDocumentsQuery({
|
|
121
|
+
const { data, error, isLoading, isFetching } = documents.useGetAllDocumentsQuery({
|
|
90
122
|
model,
|
|
91
123
|
params
|
|
92
124
|
});
|
|
@@ -172,7 +204,7 @@ const ListViewPage = ()=>{
|
|
|
172
204
|
schema?.options?.draftAndPublish,
|
|
173
205
|
model
|
|
174
206
|
]);
|
|
175
|
-
if (
|
|
207
|
+
if (isLoading) {
|
|
176
208
|
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
|
|
177
209
|
}
|
|
178
210
|
if (error) {
|
|
@@ -226,8 +258,8 @@ const ListViewPage = ()=>{
|
|
|
226
258
|
}),
|
|
227
259
|
/*#__PURE__*/ jsxRuntime.jsx(ViewSettingsMenu.ViewSettingsMenu, {
|
|
228
260
|
setHeaders: handleSetHeaders,
|
|
229
|
-
resetHeaders:
|
|
230
|
-
headers:
|
|
261
|
+
resetHeaders: handleResetHeaders,
|
|
262
|
+
headers: displayedHeaderNames ?? []
|
|
231
263
|
})
|
|
232
264
|
]
|
|
233
265
|
}),
|
|
@@ -310,8 +342,8 @@ const ListViewPage = ()=>{
|
|
|
310
342
|
}),
|
|
311
343
|
/*#__PURE__*/ jsxRuntime.jsx(ViewSettingsMenu.ViewSettingsMenu, {
|
|
312
344
|
setHeaders: handleSetHeaders,
|
|
313
|
-
resetHeaders:
|
|
314
|
-
headers:
|
|
345
|
+
resetHeaders: handleResetHeaders,
|
|
346
|
+
headers: displayedHeaderNames ?? []
|
|
315
347
|
})
|
|
316
348
|
]
|
|
317
349
|
}),
|
|
@@ -518,7 +550,7 @@ const CreateButton = ({ variant })=>{
|
|
|
518
550
|
permissions: permissions,
|
|
519
551
|
children: ({ permissions })=>/*#__PURE__*/ jsxRuntime.jsx(DocumentRBAC.DocumentRBAC, {
|
|
520
552
|
permissions: permissions,
|
|
521
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(ListViewPage, {})
|
|
553
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(ListViewPage, {}, slug)
|
|
522
554
|
})
|
|
523
555
|
});
|
|
524
556
|
};
|