@strapi/content-manager 0.0.0-experimental.cf8bb33f3f3ac8c6469f469802867e9fc2005e58 → 0.0.0-experimental.cffeb3f30bb8beaa0d2a247ba56da461781c6690
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/chunks/{ComponentConfigurationPage-Co2eC_-C.js → ComponentConfigurationPage-BqW-t7Lr.js} +3 -3
- package/dist/admin/chunks/{ComponentConfigurationPage-Co2eC_-C.js.map → ComponentConfigurationPage-BqW-t7Lr.js.map} +1 -1
- package/dist/admin/chunks/{ComponentConfigurationPage-Dj1bNvEF.js → ComponentConfigurationPage-CM3vQxyp.js} +3 -3
- package/dist/admin/chunks/{ComponentConfigurationPage-Dj1bNvEF.js.map → ComponentConfigurationPage-CM3vQxyp.js.map} +1 -1
- package/dist/admin/chunks/{EditConfigurationPage-Dm5woBp9.js → EditConfigurationPage-CIKO27N8.js} +3 -3
- package/dist/admin/chunks/{EditConfigurationPage-Dm5woBp9.js.map → EditConfigurationPage-CIKO27N8.js.map} +1 -1
- package/dist/admin/chunks/{EditConfigurationPage-zd9OLaVh.js → EditConfigurationPage-CYQ6mJWy.js} +3 -3
- package/dist/admin/chunks/{EditConfigurationPage-zd9OLaVh.js.map → EditConfigurationPage-CYQ6mJWy.js.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-DsBKmSPb.js → EditViewPage-CRu2G4OS.js} +6 -6
- package/dist/admin/chunks/{EditViewPage-DsBKmSPb.js.map → EditViewPage-CRu2G4OS.js.map} +1 -1
- package/dist/admin/chunks/{EditViewPage-kAIaYTg0.js → EditViewPage-DaY9aMeu.js} +6 -6
- package/dist/admin/chunks/{EditViewPage-kAIaYTg0.js.map → EditViewPage-DaY9aMeu.js.map} +1 -1
- package/dist/admin/chunks/{Form-BPIhJKyf.js → Form--7s-Wsw1.js} +2 -2
- package/dist/admin/chunks/{Form-BPIhJKyf.js.map → Form--7s-Wsw1.js.map} +1 -1
- package/dist/admin/chunks/{Form-BO69oITe.js → Form-CX_f1AUZ.js} +2 -2
- package/dist/admin/chunks/{Form-BO69oITe.js.map → Form-CX_f1AUZ.js.map} +1 -1
- package/dist/admin/chunks/{History-DBQ96jv2.js → History-SRih7tGq.js} +6 -6
- package/dist/admin/chunks/{History-DBQ96jv2.js.map → History-SRih7tGq.js.map} +1 -1
- package/dist/admin/chunks/{History-BzvpM-Gw.js → History-VVVFEAnd.js} +6 -6
- package/dist/admin/chunks/{History-BzvpM-Gw.js.map → History-VVVFEAnd.js.map} +1 -1
- package/dist/admin/chunks/{Input-BlDcbhUC.js → Input-B3wbR0pJ.js} +4 -5
- package/dist/admin/chunks/{Input-Dh1MtWno.js.map → Input-B3wbR0pJ.js.map} +1 -1
- package/dist/admin/chunks/{Input-Dh1MtWno.js → Input-BIRb1gP2.js} +5 -6
- package/dist/admin/chunks/{Input-BlDcbhUC.js.map → Input-BIRb1gP2.js.map} +1 -1
- package/dist/admin/chunks/{ListConfigurationPage-DK0ARecn.js → ListConfigurationPage-BMBxgLtZ.js} +2 -2
- package/dist/admin/chunks/{ListConfigurationPage-DK0ARecn.js.map → ListConfigurationPage-BMBxgLtZ.js.map} +1 -1
- package/dist/admin/chunks/{ListConfigurationPage-8d3BsQIr.js → ListConfigurationPage-DBWZlkHs.js} +2 -2
- package/dist/admin/chunks/{ListConfigurationPage-8d3BsQIr.js.map → ListConfigurationPage-DBWZlkHs.js.map} +1 -1
- package/dist/admin/chunks/{ListViewPage-CS1ED-vI.js → ListViewPage-9jad22KO.js} +5 -5
- package/dist/admin/chunks/{ListViewPage-CS1ED-vI.js.map → ListViewPage-9jad22KO.js.map} +1 -1
- package/dist/admin/chunks/{ListViewPage-BF2q7N6W.js → ListViewPage-Dq2zuPYL.js} +4 -4
- package/dist/admin/chunks/{ListViewPage-BF2q7N6W.js.map → ListViewPage-Dq2zuPYL.js.map} +1 -1
- package/dist/admin/chunks/{NoContentTypePage-C5Qxz3I4.js → NoContentTypePage-B5xX6Br5.js} +2 -2
- package/dist/admin/chunks/{NoContentTypePage-C5Qxz3I4.js.map → NoContentTypePage-B5xX6Br5.js.map} +1 -1
- package/dist/admin/chunks/{NoContentTypePage-DjdXr1-j.js → NoContentTypePage-BtpSxTZs.js} +2 -2
- package/dist/admin/chunks/{NoContentTypePage-DjdXr1-j.js.map → NoContentTypePage-BtpSxTZs.js.map} +1 -1
- package/dist/admin/chunks/{NoPermissionsPage-C5dC0MtL.js → NoPermissionsPage-CRS0hARz.js} +2 -2
- package/dist/admin/chunks/{NoPermissionsPage-C5dC0MtL.js.map → NoPermissionsPage-CRS0hARz.js.map} +1 -1
- package/dist/admin/chunks/{NoPermissionsPage-BUwtKUEP.js → NoPermissionsPage-HnOCsRtG.js} +2 -2
- package/dist/admin/chunks/{NoPermissionsPage-BUwtKUEP.js.map → NoPermissionsPage-HnOCsRtG.js.map} +1 -1
- package/dist/admin/chunks/{Preview-C9kXTY6C.js → Preview-BcggSPwn.js} +15 -111
- package/dist/admin/chunks/Preview-BcggSPwn.js.map +1 -0
- package/dist/admin/chunks/{Preview-DBvmhR7Q.js → Preview-DRtWRrYn.js} +13 -109
- package/dist/admin/chunks/Preview-DRtWRrYn.js.map +1 -0
- package/dist/admin/chunks/{Relations-Cn0atFpd.js → Relations-B1i77Jba.js} +5 -6
- package/dist/admin/chunks/Relations-B1i77Jba.js.map +1 -0
- package/dist/admin/chunks/{Relations-XHxDKEvT.js → Relations-BDe2e0a7.js} +5 -6
- package/dist/admin/chunks/Relations-BDe2e0a7.js.map +1 -0
- package/dist/admin/chunks/{en-C1CjdAtC.js → en-1xHet_GV.js} +1 -2
- package/dist/admin/chunks/{en-C1CjdAtC.js.map → en-1xHet_GV.js.map} +1 -1
- package/dist/admin/chunks/{en-LfhocNG2.js → en-DB7sPJVj.js} +1 -2
- package/dist/admin/chunks/{en-LfhocNG2.js.map → en-DB7sPJVj.js.map} +1 -1
- package/dist/admin/chunks/{fr-gQSilC7w.js → fr-CqAyDOmo.js} +1 -4
- package/dist/admin/chunks/{fr-gQSilC7w.js.map → fr-CqAyDOmo.js.map} +1 -1
- package/dist/admin/chunks/{fr-CFdRaRVj.js → fr-Dm1xiZI5.js} +1 -4
- package/dist/admin/chunks/{fr-CFdRaRVj.js.map → fr-Dm1xiZI5.js.map} +1 -1
- package/dist/admin/chunks/{index-BczuAULz.js → index-CKZHZ3ir.js} +51 -128
- package/dist/admin/chunks/index-CKZHZ3ir.js.map +1 -0
- package/dist/admin/chunks/{index-BkyR-Bnu.js → index-DfEfFmQC.js} +53 -130
- package/dist/admin/chunks/index-DfEfFmQC.js.map +1 -0
- package/dist/admin/chunks/{layout-fghBgRgX.js → layout-BN6DSZ4t.js} +4 -4
- package/dist/admin/chunks/{layout-fghBgRgX.js.map → layout-BN6DSZ4t.js.map} +1 -1
- package/dist/admin/chunks/{layout-DcDoRT8g.js → layout-CX-A0s3P.js} +4 -4
- package/dist/admin/chunks/{layout-DcDoRT8g.js.map → layout-CX-A0s3P.js.map} +1 -1
- package/dist/admin/chunks/{relations-CgaydhiM.js → relations-CuPmv-zR.js} +2 -20
- package/dist/admin/chunks/relations-CuPmv-zR.js.map +1 -0
- package/dist/admin/chunks/{relations-DPVgU_rq.js → relations-xwSNlsdc.js} +3 -20
- package/dist/admin/chunks/relations-xwSNlsdc.js.map +1 -0
- package/dist/admin/chunks/{usePrev-DIYl-IAL.js → usePrev-CwGzb4ed.js} +18 -1
- package/dist/admin/chunks/usePrev-CwGzb4ed.js.map +1 -0
- package/dist/admin/chunks/usePrev-tlgK0qPG.js +34 -0
- package/dist/admin/chunks/usePrev-tlgK0qPG.js.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/Blocks/utils/prismLanguages.d.ts +0 -1
- package/dist/admin/src/preview/components/PreviewContent.d.ts +1 -2
- package/dist/admin/src/preview/components/PreviewHeader.d.ts +1 -2
- package/package.json +5 -5
- package/dist/admin/chunks/Preview-C9kXTY6C.js.map +0 -1
- package/dist/admin/chunks/Preview-DBvmhR7Q.js.map +0 -1
- package/dist/admin/chunks/Relations-Cn0atFpd.js.map +0 -1
- package/dist/admin/chunks/Relations-XHxDKEvT.js.map +0 -1
- package/dist/admin/chunks/index-BczuAULz.js.map +0 -1
- package/dist/admin/chunks/index-BkyR-Bnu.js.map +0 -1
- package/dist/admin/chunks/relations-CgaydhiM.js.map +0 -1
- package/dist/admin/chunks/relations-DPVgU_rq.js.map +0 -1
- package/dist/admin/chunks/usePrev-Bjw2dhmq.js +0 -18
- package/dist/admin/chunks/usePrev-Bjw2dhmq.js.map +0 -1
- package/dist/admin/chunks/usePrev-DIYl-IAL.js.map +0 -1
@@ -1,21 +1,21 @@
|
|
1
|
-
import {
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
2
2
|
import * as React from 'react';
|
3
3
|
import { useNotification, useClipboard, useQueryParams, useHistory, createContext, useRBAC, Page } from '@strapi/admin/strapi-admin';
|
4
|
-
import {
|
4
|
+
import { Box, Typography, Tabs, Grid, IconButton, Portal, FocusTrap, Flex } from '@strapi/design-system';
|
5
5
|
import { useIntl } from 'react-intl';
|
6
6
|
import { Link as Link$1, useParams } from 'react-router-dom';
|
7
|
-
import { D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, N as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout } from './index-
|
7
|
+
import { D as DocumentStatus, l as DocumentRBAC, d as buildValidParams, C as COLLECTION_TYPES, N as useGetPreviewUrlQuery, M as useDocument, h as useDocumentLayout } from './index-DfEfFmQC.js';
|
8
8
|
import { Link, Cross } from '@strapi/icons';
|
9
9
|
import { stringify } from 'qs';
|
10
10
|
import { styled } from 'styled-components';
|
11
|
-
import { getDocumentStatus } from './EditViewPage-
|
11
|
+
import { getDocumentStatus } from './EditViewPage-DaY9aMeu.js';
|
12
12
|
import 'lodash/fp/mapValues';
|
13
13
|
import 'yup';
|
14
14
|
import 'fractional-indexing';
|
15
15
|
import 'lodash/fp/pipe';
|
16
16
|
import 'date-fns';
|
17
17
|
import '@reduxjs/toolkit';
|
18
|
-
import './Input-
|
18
|
+
import './Input-B3wbR0pJ.js';
|
19
19
|
import 'slate';
|
20
20
|
import 'slate-history';
|
21
21
|
import 'slate-react';
|
@@ -70,7 +70,7 @@ import 'prismjs/components/prism-typescript';
|
|
70
70
|
import 'prismjs/components/prism-tsx';
|
71
71
|
import 'prismjs/components/prism-vbnet';
|
72
72
|
import 'prismjs/components/prism-yaml';
|
73
|
-
import './usePrev-
|
73
|
+
import './usePrev-tlgK0qPG.js';
|
74
74
|
import './useDragAndDrop-HYwNDExe.js';
|
75
75
|
import 'react-dnd';
|
76
76
|
import '@radix-ui/react-toolbar';
|
@@ -78,9 +78,9 @@ import 'react-dnd-html5-backend';
|
|
78
78
|
import './objects-wl73iEma.js';
|
79
79
|
import 'lodash/clone';
|
80
80
|
import 'lodash/toPath';
|
81
|
-
import './Relations-
|
81
|
+
import './Relations-B1i77Jba.js';
|
82
82
|
import 'react-window';
|
83
|
-
import './relations-
|
83
|
+
import './relations-xwSNlsdc.js';
|
84
84
|
import './ComponentIcon-BZcTc4rj.js';
|
85
85
|
import '@strapi/icons/symbols';
|
86
86
|
import 'codemirror5';
|
@@ -99,30 +99,6 @@ import 'markdown-it-sup';
|
|
99
99
|
import 'highlight.js/styles/solarized-dark.css';
|
100
100
|
import 'codemirror5/addon/display/placeholder';
|
101
101
|
|
102
|
-
const UnstablePreviewContent = ()=>{
|
103
|
-
const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
|
104
|
-
const { formatMessage } = useIntl();
|
105
|
-
return /*#__PURE__*/ jsxs(Flex, {
|
106
|
-
height: "100%",
|
107
|
-
children: [
|
108
|
-
/*#__PURE__*/ jsx(Box, {
|
109
|
-
flex: 1,
|
110
|
-
children: "TODO: Side editor"
|
111
|
-
}),
|
112
|
-
/*#__PURE__*/ jsx(Box, {
|
113
|
-
src: previewUrl,
|
114
|
-
title: formatMessage({
|
115
|
-
id: 'content-manager.preview.panel.title',
|
116
|
-
defaultMessage: 'Preview'
|
117
|
-
}),
|
118
|
-
flex: 1,
|
119
|
-
height: "100%",
|
120
|
-
borderWidth: 0,
|
121
|
-
tag: "iframe"
|
122
|
-
}, previewUrl)
|
123
|
-
]
|
124
|
-
});
|
125
|
-
};
|
126
102
|
const PreviewContent = ()=>{
|
127
103
|
const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
|
128
104
|
const { formatMessage } = useIntl();
|
@@ -170,7 +146,6 @@ const PreviewContent = ()=>{
|
|
170
146
|
// here in order to get the relative="path" functionality from the Link component.
|
171
147
|
};
|
172
148
|
return /*#__PURE__*/ jsx(IconButton, {
|
173
|
-
variant: "ghost",
|
174
149
|
tag: Link$1,
|
175
150
|
relative: "path",
|
176
151
|
to: toWithFallback,
|
@@ -252,68 +227,7 @@ const PreviewTabs = ()=>{
|
|
252
227
|
};
|
253
228
|
/* -------------------------------------------------------------------------------------------------
|
254
229
|
* PreviewHeader
|
255
|
-
* -----------------------------------------------------------------------------------------------*/ const
|
256
|
-
// Get the document title
|
257
|
-
const title = usePreviewContext('PreviewHeader', (state)=>state.title);
|
258
|
-
const { formatMessage } = useIntl();
|
259
|
-
const { toggleNotification } = useNotification();
|
260
|
-
const { copy } = useClipboard();
|
261
|
-
const handleCopyLink = ()=>{
|
262
|
-
copy(window.location.href);
|
263
|
-
toggleNotification({
|
264
|
-
message: formatMessage({
|
265
|
-
id: 'content-manager.preview.copy.success',
|
266
|
-
defaultMessage: 'Copied preview link'
|
267
|
-
}),
|
268
|
-
type: 'success'
|
269
|
-
});
|
270
|
-
};
|
271
|
-
return /*#__PURE__*/ jsxs(Flex, {
|
272
|
-
gap: 4,
|
273
|
-
background: "neutral0",
|
274
|
-
borderColor: "neutral150",
|
275
|
-
tag: "header",
|
276
|
-
children: [
|
277
|
-
/*#__PURE__*/ jsxs(TitleContainer, {
|
278
|
-
height: "100%",
|
279
|
-
paddingLeft: 2,
|
280
|
-
paddingRight: 4,
|
281
|
-
children: [
|
282
|
-
/*#__PURE__*/ jsx(ClosePreviewButton, {}),
|
283
|
-
/*#__PURE__*/ jsx(PreviewTitle, {
|
284
|
-
tag: "h1",
|
285
|
-
title: title,
|
286
|
-
maxWidth: "200px",
|
287
|
-
fontSize: 2,
|
288
|
-
paddingLeft: 2,
|
289
|
-
paddingRight: 3,
|
290
|
-
fontWeight: 600,
|
291
|
-
children: title
|
292
|
-
}),
|
293
|
-
/*#__PURE__*/ jsx(Status, {})
|
294
|
-
]
|
295
|
-
}),
|
296
|
-
/*#__PURE__*/ jsxs(Flex, {
|
297
|
-
flex: 1,
|
298
|
-
paddingRight: 2,
|
299
|
-
justifyContent: "space-between",
|
300
|
-
children: [
|
301
|
-
/*#__PURE__*/ jsx(PreviewTabs, {}),
|
302
|
-
/*#__PURE__*/ jsx(IconButton, {
|
303
|
-
type: "button",
|
304
|
-
label: formatMessage({
|
305
|
-
id: 'preview.copy.label',
|
306
|
-
defaultMessage: 'Copy preview link'
|
307
|
-
}),
|
308
|
-
onClick: handleCopyLink,
|
309
|
-
children: /*#__PURE__*/ jsx(Link, {})
|
310
|
-
})
|
311
|
-
]
|
312
|
-
})
|
313
|
-
]
|
314
|
-
});
|
315
|
-
};
|
316
|
-
const PreviewHeader = ()=>{
|
230
|
+
* -----------------------------------------------------------------------------------------------*/ const PreviewHeader = ()=>{
|
317
231
|
// Get the document title
|
318
232
|
const title = usePreviewContext('PreviewHeader', (state)=>state.title);
|
319
233
|
const { formatMessage } = useIntl();
|
@@ -389,9 +303,6 @@ const PreviewTitle = styled(Typography)`
|
|
389
303
|
const StatusTab = styled(Tabs.Trigger)`
|
390
304
|
text-transform: uppercase;
|
391
305
|
`;
|
392
|
-
const TitleContainer = styled(Flex)`
|
393
|
-
border-right: 1px solid ${({ theme })=>theme.colors.neutral150};
|
394
|
-
`;
|
395
306
|
|
396
307
|
const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
|
397
308
|
/* -------------------------------------------------------------------------------------------------
|
@@ -457,21 +368,14 @@ const [PreviewProvider, usePreviewContext] = createContext('PreviewPage');
|
|
457
368
|
title: documentTitle,
|
458
369
|
meta: documentResponse.meta,
|
459
370
|
schema: documentResponse.schema,
|
460
|
-
children: /*#__PURE__*/
|
371
|
+
children: /*#__PURE__*/ jsxs(Flex, {
|
461
372
|
direction: "column",
|
462
373
|
height: "100%",
|
463
374
|
alignItems: "stretch",
|
464
|
-
children:
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
]
|
469
|
-
}) : /*#__PURE__*/ jsxs(Fragment, {
|
470
|
-
children: [
|
471
|
-
/*#__PURE__*/ jsx(PreviewHeader, {}),
|
472
|
-
/*#__PURE__*/ jsx(PreviewContent, {})
|
473
|
-
]
|
474
|
-
})
|
375
|
+
children: [
|
376
|
+
/*#__PURE__*/ jsx(PreviewHeader, {}),
|
377
|
+
/*#__PURE__*/ jsx(PreviewContent, {})
|
378
|
+
]
|
475
379
|
})
|
476
380
|
})
|
477
381
|
]
|
@@ -528,4 +432,4 @@ const ProtectedPreviewPage = ()=>{
|
|
528
432
|
};
|
529
433
|
|
530
434
|
export { ProtectedPreviewPage, usePreviewContext };
|
531
|
-
//# sourceMappingURL=Preview-
|
435
|
+
//# sourceMappingURL=Preview-BcggSPwn.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Preview-BcggSPwn.js","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { usePreviewContext } from '../pages/Preview';\n\nconst PreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n );\n};\n\nexport { PreviewContent };\n","import * as React from 'react';\n\nimport {\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Grid } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <>\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n return (\n <Grid.Root\n gap={3}\n gridCols={3}\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n borderColor=\"neutral150\"\n tag=\"header\"\n >\n {/* Title and status */}\n <Grid.Item xs={1} paddingTop={2} paddingBottom={2} gap={3}>\n <ClosePreviewButton />\n <PreviewTitle tag=\"h1\" fontWeight={600} fontSize={2} maxWidth=\"200px\" title={title}>\n {title}\n </PreviewTitle>\n <Status />\n </Grid.Item>\n {/* Tabs */}\n <Grid.Item xs={1} marginBottom=\"-1px\" alignItems=\"end\" margin=\"auto\">\n <PreviewTabs />\n </Grid.Item>\n {/* Copy link */}\n <Grid.Item xs={1} justifyContent=\"end\" paddingTop={2} paddingBottom={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n </Grid.Item>\n </Grid.Root>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nexport { PreviewHeader };\n","import * as React from 'react';\n\nimport { Page, useQueryParams, useRBAC, createContext } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, Portal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { PreviewContent } from '../components/PreviewContent';\nimport { PreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewPage = () => {\n const { formatMessage } = useIntl();\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n\n const documentLayoutResponse = useDocumentLayout(model);\n\n if (\n documentResponse.isLoading ||\n previewUrlResponse.isLoading ||\n documentLayoutResponse.isLoading\n ) {\n return <Page.Loading />;\n }\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <PreviewProvider\n url={previewUrlResponse.data.data.url}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n >\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n <PreviewHeader />\n <PreviewContent />\n </Flex>\n </PreviewProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([{ action: 'plugin::content-manager.explorer.read', subject: model }]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["PreviewContent","previewUrl","usePreviewContext","state","url","formatMessage","useIntl","_jsx","Box","src","title","id","defaultMessage","width","height","borderWidth","tag","ClosePreviewButton","query","useQueryParams","canGoBack","useHistory","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","IconButton","Link","relative","to","onClick","label","Cross","Status","document","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","_Fragment","Tabs","Root","variant","value","onValueChange","_jsxs","List","aria-label","StatusTab","disabled","PreviewHeader","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","Grid","gap","gridCols","paddingLeft","paddingRight","background","borderColor","Item","xs","paddingTop","paddingBottom","PreviewTitle","fontWeight","fontSize","maxWidth","marginBottom","alignItems","margin","justifyContent","LinkIcon","styled","Typography","Trigger","PreviewProvider","createContext","PreviewPage","slug","model","documentId","collectionType","useParams","params","React","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","error","data","NoData","documentTitle","getTitle","edit","settings","mainField","Title","Flex","direction","ProtectedPreviewPageImpl","permissions","useRBAC","action","subject","position","top","left","zIndex","Protect","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}
|
@@ -6,18 +6,18 @@ var strapiAdmin = require('@strapi/admin/strapi-admin');
|
|
6
6
|
var designSystem = require('@strapi/design-system');
|
7
7
|
var reactIntl = require('react-intl');
|
8
8
|
var reactRouterDom = require('react-router-dom');
|
9
|
-
var index = require('./index-
|
9
|
+
var index = require('./index-CKZHZ3ir.js');
|
10
10
|
var Icons = require('@strapi/icons');
|
11
11
|
var qs = require('qs');
|
12
12
|
var styledComponents = require('styled-components');
|
13
|
-
var EditViewPage = require('./EditViewPage-
|
13
|
+
var EditViewPage = require('./EditViewPage-CRu2G4OS.js');
|
14
14
|
require('lodash/fp/mapValues');
|
15
15
|
require('yup');
|
16
16
|
require('fractional-indexing');
|
17
17
|
require('lodash/fp/pipe');
|
18
18
|
require('date-fns');
|
19
19
|
require('@reduxjs/toolkit');
|
20
|
-
require('./Input-
|
20
|
+
require('./Input-BIRb1gP2.js');
|
21
21
|
require('slate');
|
22
22
|
require('slate-history');
|
23
23
|
require('slate-react');
|
@@ -72,7 +72,7 @@ require('prismjs/components/prism-typescript');
|
|
72
72
|
require('prismjs/components/prism-tsx');
|
73
73
|
require('prismjs/components/prism-vbnet');
|
74
74
|
require('prismjs/components/prism-yaml');
|
75
|
-
require('./usePrev-
|
75
|
+
require('./usePrev-CwGzb4ed.js');
|
76
76
|
require('./useDragAndDrop-gcqEJMnO.js');
|
77
77
|
require('react-dnd');
|
78
78
|
require('@radix-ui/react-toolbar');
|
@@ -80,9 +80,9 @@ require('react-dnd-html5-backend');
|
|
80
80
|
require('./objects-C3EebVVe.js');
|
81
81
|
require('lodash/clone');
|
82
82
|
require('lodash/toPath');
|
83
|
-
require('./Relations-
|
83
|
+
require('./Relations-BDe2e0a7.js');
|
84
84
|
require('react-window');
|
85
|
-
require('./relations-
|
85
|
+
require('./relations-CuPmv-zR.js');
|
86
86
|
require('./ComponentIcon-C-EjOUPA.js');
|
87
87
|
require('@strapi/icons/symbols');
|
88
88
|
require('codemirror5');
|
@@ -120,30 +120,6 @@ function _interopNamespaceDefault(e) {
|
|
120
120
|
|
121
121
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
122
122
|
|
123
|
-
const UnstablePreviewContent = ()=>{
|
124
|
-
const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
|
125
|
-
const { formatMessage } = reactIntl.useIntl();
|
126
|
-
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
127
|
-
height: "100%",
|
128
|
-
children: [
|
129
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
130
|
-
flex: 1,
|
131
|
-
children: "TODO: Side editor"
|
132
|
-
}),
|
133
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
134
|
-
src: previewUrl,
|
135
|
-
title: formatMessage({
|
136
|
-
id: 'content-manager.preview.panel.title',
|
137
|
-
defaultMessage: 'Preview'
|
138
|
-
}),
|
139
|
-
flex: 1,
|
140
|
-
height: "100%",
|
141
|
-
borderWidth: 0,
|
142
|
-
tag: "iframe"
|
143
|
-
}, previewUrl)
|
144
|
-
]
|
145
|
-
});
|
146
|
-
};
|
147
123
|
const PreviewContent = ()=>{
|
148
124
|
const previewUrl = usePreviewContext('PreviewContent', (state)=>state.url);
|
149
125
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -191,7 +167,6 @@ const PreviewContent = ()=>{
|
|
191
167
|
// here in order to get the relative="path" functionality from the Link component.
|
192
168
|
};
|
193
169
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
194
|
-
variant: "ghost",
|
195
170
|
tag: reactRouterDom.Link,
|
196
171
|
relative: "path",
|
197
172
|
to: toWithFallback,
|
@@ -273,68 +248,7 @@ const PreviewTabs = ()=>{
|
|
273
248
|
};
|
274
249
|
/* -------------------------------------------------------------------------------------------------
|
275
250
|
* PreviewHeader
|
276
|
-
* -----------------------------------------------------------------------------------------------*/ const
|
277
|
-
// Get the document title
|
278
|
-
const title = usePreviewContext('PreviewHeader', (state)=>state.title);
|
279
|
-
const { formatMessage } = reactIntl.useIntl();
|
280
|
-
const { toggleNotification } = strapiAdmin.useNotification();
|
281
|
-
const { copy } = strapiAdmin.useClipboard();
|
282
|
-
const handleCopyLink = ()=>{
|
283
|
-
copy(window.location.href);
|
284
|
-
toggleNotification({
|
285
|
-
message: formatMessage({
|
286
|
-
id: 'content-manager.preview.copy.success',
|
287
|
-
defaultMessage: 'Copied preview link'
|
288
|
-
}),
|
289
|
-
type: 'success'
|
290
|
-
});
|
291
|
-
};
|
292
|
-
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
293
|
-
gap: 4,
|
294
|
-
background: "neutral0",
|
295
|
-
borderColor: "neutral150",
|
296
|
-
tag: "header",
|
297
|
-
children: [
|
298
|
-
/*#__PURE__*/ jsxRuntime.jsxs(TitleContainer, {
|
299
|
-
height: "100%",
|
300
|
-
paddingLeft: 2,
|
301
|
-
paddingRight: 4,
|
302
|
-
children: [
|
303
|
-
/*#__PURE__*/ jsxRuntime.jsx(ClosePreviewButton, {}),
|
304
|
-
/*#__PURE__*/ jsxRuntime.jsx(PreviewTitle, {
|
305
|
-
tag: "h1",
|
306
|
-
title: title,
|
307
|
-
maxWidth: "200px",
|
308
|
-
fontSize: 2,
|
309
|
-
paddingLeft: 2,
|
310
|
-
paddingRight: 3,
|
311
|
-
fontWeight: 600,
|
312
|
-
children: title
|
313
|
-
}),
|
314
|
-
/*#__PURE__*/ jsxRuntime.jsx(Status, {})
|
315
|
-
]
|
316
|
-
}),
|
317
|
-
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
318
|
-
flex: 1,
|
319
|
-
paddingRight: 2,
|
320
|
-
justifyContent: "space-between",
|
321
|
-
children: [
|
322
|
-
/*#__PURE__*/ jsxRuntime.jsx(PreviewTabs, {}),
|
323
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
|
324
|
-
type: "button",
|
325
|
-
label: formatMessage({
|
326
|
-
id: 'preview.copy.label',
|
327
|
-
defaultMessage: 'Copy preview link'
|
328
|
-
}),
|
329
|
-
onClick: handleCopyLink,
|
330
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(Icons.Link, {})
|
331
|
-
})
|
332
|
-
]
|
333
|
-
})
|
334
|
-
]
|
335
|
-
});
|
336
|
-
};
|
337
|
-
const PreviewHeader = ()=>{
|
251
|
+
* -----------------------------------------------------------------------------------------------*/ const PreviewHeader = ()=>{
|
338
252
|
// Get the document title
|
339
253
|
const title = usePreviewContext('PreviewHeader', (state)=>state.title);
|
340
254
|
const { formatMessage } = reactIntl.useIntl();
|
@@ -410,9 +324,6 @@ const PreviewTitle = styledComponents.styled(designSystem.Typography)`
|
|
410
324
|
const StatusTab = styledComponents.styled(designSystem.Tabs.Trigger)`
|
411
325
|
text-transform: uppercase;
|
412
326
|
`;
|
413
|
-
const TitleContainer = styledComponents.styled(designSystem.Flex)`
|
414
|
-
border-right: 1px solid ${({ theme })=>theme.colors.neutral150};
|
415
|
-
`;
|
416
327
|
|
417
328
|
const [PreviewProvider, usePreviewContext] = strapiAdmin.createContext('PreviewPage');
|
418
329
|
/* -------------------------------------------------------------------------------------------------
|
@@ -478,21 +389,14 @@ const [PreviewProvider, usePreviewContext] = strapiAdmin.createContext('PreviewP
|
|
478
389
|
title: documentTitle,
|
479
390
|
meta: documentResponse.meta,
|
480
391
|
schema: documentResponse.schema,
|
481
|
-
children: /*#__PURE__*/ jsxRuntime.
|
392
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
482
393
|
direction: "column",
|
483
394
|
height: "100%",
|
484
395
|
alignItems: "stretch",
|
485
|
-
children:
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
]
|
490
|
-
}) : /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
491
|
-
children: [
|
492
|
-
/*#__PURE__*/ jsxRuntime.jsx(PreviewHeader, {}),
|
493
|
-
/*#__PURE__*/ jsxRuntime.jsx(PreviewContent, {})
|
494
|
-
]
|
495
|
-
})
|
396
|
+
children: [
|
397
|
+
/*#__PURE__*/ jsxRuntime.jsx(PreviewHeader, {}),
|
398
|
+
/*#__PURE__*/ jsxRuntime.jsx(PreviewContent, {})
|
399
|
+
]
|
496
400
|
})
|
497
401
|
})
|
498
402
|
]
|
@@ -550,4 +454,4 @@ const ProtectedPreviewPage = ()=>{
|
|
550
454
|
|
551
455
|
exports.ProtectedPreviewPage = ProtectedPreviewPage;
|
552
456
|
exports.usePreviewContext = usePreviewContext;
|
553
|
-
//# sourceMappingURL=Preview-
|
457
|
+
//# sourceMappingURL=Preview-DRtWRrYn.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Preview-DRtWRrYn.js","sources":["../../../admin/src/preview/components/PreviewContent.tsx","../../../admin/src/preview/components/PreviewHeader.tsx","../../../admin/src/preview/pages/Preview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { usePreviewContext } from '../pages/Preview';\n\nconst PreviewContent = () => {\n const previewUrl = usePreviewContext('PreviewContent', (state) => state.url);\n\n const { formatMessage } = useIntl();\n\n return (\n <Box\n src={previewUrl}\n /**\n * For some reason, changing an iframe's src tag causes the browser to add a new item in the\n * history stack. This is an issue for us as it means clicking the back button will not let us\n * go back to the edit view. To fix it, we need to trick the browser into thinking this is a\n * different iframe when the preview URL changes. So we set a key prop to force React\n * to mount a different node when the src changes.\n */\n key={previewUrl}\n title={formatMessage({\n id: 'content-manager.preview.panel.title',\n defaultMessage: 'Preview',\n })}\n width=\"100%\"\n height=\"100%\"\n borderWidth={0}\n tag=\"iframe\"\n />\n );\n};\n\nexport { PreviewContent };\n","import * as React from 'react';\n\nimport {\n useClipboard,\n useHistory,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { IconButton, Tabs, Typography, Grid } from '@strapi/design-system';\nimport { Cross, Link as LinkIcon } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { DocumentStatus } from '../../pages/EditView/components/DocumentStatus';\nimport { getDocumentStatus } from '../../pages/EditView/EditViewPage';\nimport { usePreviewContext } from '../pages/Preview';\n\n/* -------------------------------------------------------------------------------------------------\n * ClosePreviewButton\n * -----------------------------------------------------------------------------------------------*/\n\nconst ClosePreviewButton = () => {\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n const { formatMessage } = useIntl();\n\n const canGoBack = useHistory('BackButton', (state) => state.canGoBack);\n const goBack = useHistory('BackButton', (state) => state.goBack);\n const history = useHistory('BackButton', (state) => state.history);\n const locationIndex = useHistory('BackButton', (state) => state.currentLocationIndex);\n\n /**\n * Get the link destination from the history.\n * Rely on a fallback (the parent edit view page) if there's no page to go back .\n */\n const historyTo = canGoBack ? history.at(locationIndex - 2) : undefined;\n const fallback = {\n pathname: '..',\n search: stringify(query, { encode: false }),\n } satisfies To;\n const toWithFallback = historyTo ?? fallback;\n\n const handleClick = (e: React.MouseEvent) => {\n if (canGoBack) {\n // Prevent normal link behavior, go back in the history stack instead\n e.preventDefault();\n goBack();\n return;\n }\n\n // Otherwise rely on native link behavior to go back to the edit view. We don't use navigate()\n // here in order to get the relative=\"path\" functionality from the Link component.\n };\n\n return (\n <IconButton\n tag={Link}\n relative=\"path\"\n to={toWithFallback}\n onClick={handleClick}\n label={formatMessage({\n id: 'content-manager.preview.header.close',\n defaultMessage: 'Close preview',\n })}\n >\n <Cross />\n </IconButton>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Status\n * -----------------------------------------------------------------------------------------------*/\n\nconst Status = () => {\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n if (!hasDraftAndPublished) {\n return null;\n }\n\n const status = getDocumentStatus(document, meta);\n\n return <DocumentStatus status={status} size=\"XS\" />;\n};\n\nconst PreviewTabs = () => {\n const { formatMessage } = useIntl();\n\n // URL query params\n const [{ query }, setQuery] = useQueryParams<{ status: 'draft' | 'published' }>();\n\n // Get status\n const document = usePreviewContext('PreviewHeader', (state) => state.document);\n const schema = usePreviewContext('PreviewHeader', (state) => state.schema);\n const meta = usePreviewContext('PreviewHeader', (state) => state.meta);\n const hasDraftAndPublish = schema?.options?.draftAndPublish ?? false;\n const documentStatus = getDocumentStatus(document, meta);\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n if (!hasDraftAndPublish) {\n return null;\n }\n\n return (\n <>\n <Tabs.Root variant=\"simple\" value={query.status || 'draft'} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'preview.tabs.label',\n defaultMessage: 'Document status',\n })}\n >\n <StatusTab value=\"draft\">\n {formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab value=\"published\" disabled={documentStatus === 'draft'}>\n {formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'published',\n })}\n </StatusTab>\n </Tabs.List>\n </Tabs.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewHeader = () => {\n // Get the document title\n const title = usePreviewContext('PreviewHeader', (state) => state.title);\n\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { copy } = useClipboard();\n\n const handleCopyLink = () => {\n copy(window.location.href);\n toggleNotification({\n message: formatMessage({\n id: 'content-manager.preview.copy.success',\n defaultMessage: 'Copied preview link',\n }),\n type: 'success',\n });\n };\n\n return (\n <Grid.Root\n gap={3}\n gridCols={3}\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n borderColor=\"neutral150\"\n tag=\"header\"\n >\n {/* Title and status */}\n <Grid.Item xs={1} paddingTop={2} paddingBottom={2} gap={3}>\n <ClosePreviewButton />\n <PreviewTitle tag=\"h1\" fontWeight={600} fontSize={2} maxWidth=\"200px\" title={title}>\n {title}\n </PreviewTitle>\n <Status />\n </Grid.Item>\n {/* Tabs */}\n <Grid.Item xs={1} marginBottom=\"-1px\" alignItems=\"end\" margin=\"auto\">\n <PreviewTabs />\n </Grid.Item>\n {/* Copy link */}\n <Grid.Item xs={1} justifyContent=\"end\" paddingTop={2} paddingBottom={2}>\n <IconButton\n type=\"button\"\n label={formatMessage({\n id: 'preview.copy.label',\n defaultMessage: 'Copy preview link',\n })}\n onClick={handleCopyLink}\n >\n <LinkIcon />\n </IconButton>\n </Grid.Item>\n </Grid.Root>\n );\n};\n\nconst PreviewTitle = styled(Typography)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\nexport { PreviewHeader };\n","import * as React from 'react';\n\nimport { Page, useQueryParams, useRBAC, createContext } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, FocusTrap, Portal } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { GetPreviewUrl } from '../../../../shared/contracts/preview';\nimport { COLLECTION_TYPES } from '../../constants/collections';\nimport { DocumentRBAC } from '../../features/DocumentRBAC';\nimport { type UseDocument, useDocument } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { buildValidParams } from '../../utils/api';\nimport { PreviewContent } from '../components/PreviewContent';\nimport { PreviewHeader } from '../components/PreviewHeader';\nimport { useGetPreviewUrlQuery } from '../services/preview';\n\nimport type { UID } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PreviewContextValue {\n url: string;\n title: string;\n document: NonNullable<ReturnType<UseDocument>['document']>;\n meta: NonNullable<ReturnType<UseDocument>['meta']>;\n schema: NonNullable<ReturnType<UseDocument>['schema']>;\n}\n\nconst [PreviewProvider, usePreviewContext] = createContext<PreviewContextValue>('PreviewPage');\n\n/* -------------------------------------------------------------------------------------------------\n * PreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst PreviewPage = () => {\n const { formatMessage } = useIntl();\n\n // Read all the necessary data from the URL to find the right preview URL\n const {\n slug: model,\n id: documentId,\n collectionType,\n } = useParams<{\n slug: UID.ContentType;\n id: string;\n collectionType: string;\n }>();\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n }>();\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n if (!collectionType) {\n throw new Error('Could not find collectionType in url params');\n }\n\n if (!model) {\n throw new Error('Could not find model in url params');\n }\n\n // Only collection types must have a documentId\n if (collectionType === COLLECTION_TYPES && !documentId) {\n throw new Error('Could not find documentId in url params');\n }\n\n const previewUrlResponse = useGetPreviewUrlQuery({\n params: {\n contentType: model,\n },\n query: {\n documentId,\n locale: params.locale,\n status: params.status as GetPreviewUrl.Request['query']['status'],\n },\n });\n\n const documentResponse = useDocument({\n model,\n collectionType,\n documentId,\n params,\n });\n\n const documentLayoutResponse = useDocumentLayout(model);\n\n if (\n documentResponse.isLoading ||\n previewUrlResponse.isLoading ||\n documentLayoutResponse.isLoading\n ) {\n return <Page.Loading />;\n }\n\n if (\n previewUrlResponse.error ||\n documentLayoutResponse.error ||\n !documentResponse.document ||\n !documentResponse.meta ||\n !documentResponse.schema\n ) {\n return <Page.Error />;\n }\n\n if (!previewUrlResponse.data?.data?.url) {\n return <Page.NoData />;\n }\n\n const documentTitle = documentResponse.getTitle(documentLayoutResponse.edit.settings.mainField);\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n {\n id: 'content-manager.preview.page-title',\n defaultMessage: '{contentType} preview',\n },\n {\n contentType: documentTitle,\n }\n )}\n </Page.Title>\n <PreviewProvider\n url={previewUrlResponse.data.data.url}\n document={documentResponse.document}\n title={documentTitle}\n meta={documentResponse.meta}\n schema={documentResponse.schema}\n >\n <Flex direction=\"column\" height=\"100%\" alignItems=\"stretch\">\n <PreviewHeader />\n <PreviewContent />\n </Flex>\n </PreviewProvider>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedPreviewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedPreviewPageImpl = () => {\n const { slug: model } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC([{ action: 'plugin::content-manager.explorer.read', subject: model }]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !model) {\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Error />\n </Box>\n );\n }\n\n return (\n <Box\n height=\"100vh\"\n width=\"100vw\"\n position=\"fixed\"\n top={0}\n left={0}\n zIndex={2}\n background=\"neutral0\"\n >\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <PreviewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n </Box>\n );\n};\n\nconst ProtectedPreviewPage = () => {\n return (\n <Portal>\n <FocusTrap>\n <ProtectedPreviewPageImpl />\n </FocusTrap>\n </Portal>\n );\n};\n\nexport { ProtectedPreviewPage, usePreviewContext };\n"],"names":["PreviewContent","previewUrl","usePreviewContext","state","url","formatMessage","useIntl","_jsx","Box","src","title","id","defaultMessage","width","height","borderWidth","tag","ClosePreviewButton","query","useQueryParams","canGoBack","useHistory","goBack","history","locationIndex","currentLocationIndex","historyTo","at","undefined","fallback","pathname","search","stringify","encode","toWithFallback","handleClick","e","preventDefault","IconButton","Link","relative","to","onClick","label","Cross","Status","document","schema","meta","hasDraftAndPublished","options","draftAndPublish","status","getDocumentStatus","DocumentStatus","size","PreviewTabs","setQuery","hasDraftAndPublish","documentStatus","handleTabChange","_Fragment","Tabs","Root","variant","value","onValueChange","_jsxs","List","aria-label","StatusTab","disabled","PreviewHeader","toggleNotification","useNotification","copy","useClipboard","handleCopyLink","window","location","href","message","type","Grid","gap","gridCols","paddingLeft","paddingRight","background","borderColor","Item","xs","paddingTop","paddingBottom","PreviewTitle","fontWeight","fontSize","maxWidth","marginBottom","alignItems","margin","justifyContent","LinkIcon","styled","Typography","Trigger","PreviewProvider","createContext","PreviewPage","slug","model","documentId","collectionType","useParams","params","React","useMemo","buildValidParams","Error","COLLECTION_TYPES","previewUrlResponse","useGetPreviewUrlQuery","contentType","locale","documentResponse","useDocument","documentLayoutResponse","useDocumentLayout","isLoading","Page","Loading","error","data","NoData","documentTitle","getTitle","edit","settings","mainField","Title","Flex","direction","ProtectedPreviewPageImpl","permissions","useRBAC","action","subject","position","top","left","zIndex","Protect","DocumentRBAC","ProtectedPreviewPage","Portal","FocusTrap"],"mappings":"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"}
|
@@ -10,9 +10,9 @@ import { useIntl } from 'react-intl';
|
|
10
10
|
import { NavLink } from 'react-router-dom';
|
11
11
|
import { FixedSizeList } from 'react-window';
|
12
12
|
import { styled } from 'styled-components';
|
13
|
-
import { c as useDoc, d as buildValidParams, C as COLLECTION_TYPES, g as getTranslation, D as DocumentStatus } from './index-
|
13
|
+
import { c as useDoc, d as buildValidParams, C as COLLECTION_TYPES, g as getTranslation, D as DocumentStatus } from './index-DfEfFmQC.js';
|
14
14
|
import { u as useDragAndDrop, I as ItemTypes, D as DROP_SENSITIVITY } from './useDragAndDrop-HYwNDExe.js';
|
15
|
-
import { u as useGetRelationsQuery, g as getRelationLabel, a as
|
15
|
+
import { u as useGetRelationsQuery, g as getRelationLabel, a as useLazySearchRelationsQuery } from './relations-xwSNlsdc.js';
|
16
16
|
|
17
17
|
/**
|
18
18
|
* We use this component to wrap any individual component field in the Edit View,
|
@@ -311,7 +311,6 @@ const ONE_WAY_RELATIONS = [
|
|
311
311
|
const { formatMessage } = useIntl();
|
312
312
|
const fieldRef = useFocusInputField(name);
|
313
313
|
const field = useField(name);
|
314
|
-
const searchParamsDebounced = useDebounce(searchParams, 300);
|
315
314
|
const [searchForTrigger, { data, isLoading }] = useLazySearchRelationsQuery();
|
316
315
|
/**
|
317
316
|
* Because we're using a lazy query, we need to trigger the search
|
@@ -334,7 +333,7 @@ const ONE_WAY_RELATIONS = [
|
|
334
333
|
pageSize: 10,
|
335
334
|
idsToInclude: field.value?.disconnect?.map((rel)=>rel.id.toString()) ?? [],
|
336
335
|
idsToOmit: field.value?.connect?.map((rel)=>rel.id.toString()) ?? [],
|
337
|
-
...
|
336
|
+
...searchParams
|
338
337
|
}
|
339
338
|
});
|
340
339
|
}, [
|
@@ -345,7 +344,7 @@ const ONE_WAY_RELATIONS = [
|
|
345
344
|
name,
|
346
345
|
query,
|
347
346
|
searchForTrigger,
|
348
|
-
|
347
|
+
searchParams
|
349
348
|
]);
|
350
349
|
const handleSearch = async (search)=>{
|
351
350
|
setSearchParams((s)=>({
|
@@ -824,4 +823,4 @@ const RelationItemPlaceholder = ()=>/*#__PURE__*/ jsx(Box, {
|
|
824
823
|
const MemoizedRelationsField = /*#__PURE__*/ React.memo(RelationsField);
|
825
824
|
|
826
825
|
export { ComponentProvider as C, DisconnectButton as D, FlexWrapper as F, LinkEllipsis as L, MemoizedRelationsField as M, useComponent as u };
|
827
|
-
//# sourceMappingURL=Relations-
|
826
|
+
//# sourceMappingURL=Relations-B1i77Jba.js.map
|