@strapi/content-manager 0.0.0-next.e3eb76a86aff89979cc9098aec129d2ffa600c56 → 0.0.0-next.e5d4b412da0d932b61b2fa5012d16513fda6de04

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.
Files changed (181) hide show
  1. package/dist/admin/components/Widgets.js +267 -9
  2. package/dist/admin/components/Widgets.js.map +1 -1
  3. package/dist/admin/components/Widgets.mjs +250 -12
  4. package/dist/admin/components/Widgets.mjs.map +1 -1
  5. package/dist/admin/history/components/VersionContent.js +24 -3
  6. package/dist/admin/history/components/VersionContent.js.map +1 -1
  7. package/dist/admin/history/components/VersionContent.mjs +25 -4
  8. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  9. package/dist/admin/hooks/useDocumentActions.js +0 -3
  10. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  11. package/dist/admin/hooks/useDocumentActions.mjs +1 -4
  12. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  13. package/dist/admin/index.js +47 -8
  14. package/dist/admin/index.js.map +1 -1
  15. package/dist/admin/index.mjs +47 -9
  16. package/dist/admin/index.mjs.map +1 -1
  17. package/dist/admin/layout.js +1 -27
  18. package/dist/admin/layout.js.map +1 -1
  19. package/dist/admin/layout.mjs +2 -9
  20. package/dist/admin/layout.mjs.map +1 -1
  21. package/dist/admin/pages/EditView/EditViewPage.js +24 -6
  22. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  23. package/dist/admin/pages/EditView/EditViewPage.mjs +26 -8
  24. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  25. package/dist/admin/pages/EditView/components/DocumentActions.js +69 -20
  26. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  27. package/dist/admin/pages/EditView/components/DocumentActions.mjs +70 -21
  28. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  29. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +12 -1
  30. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +13 -2
  32. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +13 -2
  34. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +14 -3
  36. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +16 -3
  38. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +17 -4
  40. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +1 -0
  42. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +1 -0
  44. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +4 -1
  46. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +4 -1
  48. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  49. package/dist/admin/pages/EditView/components/FormLayout.js +27 -3
  50. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  51. package/dist/admin/pages/EditView/components/FormLayout.mjs +27 -3
  52. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  53. package/dist/admin/pages/EditView/utils/data.js +109 -0
  54. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  55. package/dist/admin/pages/EditView/utils/data.mjs +109 -1
  56. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  57. package/dist/admin/pages/ListView/ListViewPage.js +221 -203
  58. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  59. package/dist/admin/pages/ListView/ListViewPage.mjs +222 -204
  60. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  61. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +12 -2
  62. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
  63. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +12 -2
  64. package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
  65. package/dist/admin/pages/ListView/components/Filters.js +3 -1
  66. package/dist/admin/pages/ListView/components/Filters.js.map +1 -1
  67. package/dist/admin/pages/ListView/components/Filters.mjs +3 -1
  68. package/dist/admin/pages/ListView/components/Filters.mjs.map +1 -1
  69. package/dist/admin/preview/components/PreviewSidePanel.js +31 -4
  70. package/dist/admin/preview/components/PreviewSidePanel.js.map +1 -1
  71. package/dist/admin/preview/components/PreviewSidePanel.mjs +32 -5
  72. package/dist/admin/preview/components/PreviewSidePanel.mjs.map +1 -1
  73. package/dist/admin/preview/pages/Preview.js +136 -35
  74. package/dist/admin/preview/pages/Preview.js.map +1 -1
  75. package/dist/admin/preview/pages/Preview.mjs +137 -36
  76. package/dist/admin/preview/pages/Preview.mjs.map +1 -1
  77. package/dist/admin/preview/utils/constants.js +21 -0
  78. package/dist/admin/preview/utils/constants.js.map +1 -0
  79. package/dist/admin/preview/utils/constants.mjs +19 -0
  80. package/dist/admin/preview/utils/constants.mjs.map +1 -0
  81. package/dist/admin/preview/utils/previewScript.js +203 -0
  82. package/dist/admin/preview/utils/previewScript.js.map +1 -0
  83. package/dist/admin/preview/utils/previewScript.mjs +201 -0
  84. package/dist/admin/preview/utils/previewScript.mjs.map +1 -0
  85. package/dist/admin/services/api.js +4 -1
  86. package/dist/admin/services/api.js.map +1 -1
  87. package/dist/admin/services/api.mjs +4 -1
  88. package/dist/admin/services/api.mjs.map +1 -1
  89. package/dist/admin/services/documents.js +40 -14
  90. package/dist/admin/services/documents.js.map +1 -1
  91. package/dist/admin/services/documents.mjs +40 -14
  92. package/dist/admin/services/documents.mjs.map +1 -1
  93. package/dist/admin/src/components/Widgets.d.ts +2 -1
  94. package/dist/admin/src/exports.d.ts +1 -0
  95. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  96. package/dist/admin/src/pages/EditView/utils/data.d.ts +19 -1
  97. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  98. package/dist/admin/src/preview/utils/constants.d.ts +17 -0
  99. package/dist/admin/src/preview/utils/previewScript.d.ts +18 -0
  100. package/dist/admin/src/services/api.d.ts +1 -1
  101. package/dist/admin/src/services/components.d.ts +2 -2
  102. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  103. package/dist/admin/src/services/documents.d.ts +16 -16
  104. package/dist/admin/src/services/homepage.d.ts +1 -1
  105. package/dist/admin/src/services/init.d.ts +1 -1
  106. package/dist/admin/src/services/relations.d.ts +2 -2
  107. package/dist/admin/src/services/uid.d.ts +3 -3
  108. package/dist/admin/src/utils/api.d.ts +1 -1
  109. package/dist/admin/src/utils/validation.d.ts +1 -0
  110. package/dist/admin/translations/en.json.js +6 -0
  111. package/dist/admin/translations/en.json.js.map +1 -1
  112. package/dist/admin/translations/en.json.mjs +6 -0
  113. package/dist/admin/translations/en.json.mjs.map +1 -1
  114. package/dist/admin/translations/es.json.js +5 -2
  115. package/dist/admin/translations/es.json.js.map +1 -1
  116. package/dist/admin/translations/es.json.mjs +5 -2
  117. package/dist/admin/translations/es.json.mjs.map +1 -1
  118. package/dist/admin/translations/fr.json.js +10 -2
  119. package/dist/admin/translations/fr.json.js.map +1 -1
  120. package/dist/admin/translations/fr.json.mjs +10 -2
  121. package/dist/admin/translations/fr.json.mjs.map +1 -1
  122. package/dist/admin/utils/api.js +1 -1
  123. package/dist/admin/utils/api.js.map +1 -1
  124. package/dist/admin/utils/api.mjs +1 -1
  125. package/dist/admin/utils/api.mjs.map +1 -1
  126. package/dist/admin/utils/validation.js +18 -6
  127. package/dist/admin/utils/validation.js.map +1 -1
  128. package/dist/admin/utils/validation.mjs +18 -6
  129. package/dist/admin/utils/validation.mjs.map +1 -1
  130. package/dist/server/controllers/relations.js +2 -2
  131. package/dist/server/controllers/relations.js.map +1 -1
  132. package/dist/server/controllers/relations.mjs +2 -2
  133. package/dist/server/controllers/relations.mjs.map +1 -1
  134. package/dist/server/history/services/lifecycles.js +20 -19
  135. package/dist/server/history/services/lifecycles.js.map +1 -1
  136. package/dist/server/history/services/lifecycles.mjs +20 -19
  137. package/dist/server/history/services/lifecycles.mjs.map +1 -1
  138. package/dist/server/homepage/controllers/homepage.js +5 -0
  139. package/dist/server/homepage/controllers/homepage.js.map +1 -1
  140. package/dist/server/homepage/controllers/homepage.mjs +5 -0
  141. package/dist/server/homepage/controllers/homepage.mjs.map +1 -1
  142. package/dist/server/homepage/routes/homepage.js +11 -0
  143. package/dist/server/homepage/routes/homepage.js.map +1 -1
  144. package/dist/server/homepage/routes/homepage.mjs +11 -0
  145. package/dist/server/homepage/routes/homepage.mjs.map +1 -1
  146. package/dist/server/homepage/services/homepage.js +86 -46
  147. package/dist/server/homepage/services/homepage.js.map +1 -1
  148. package/dist/server/homepage/services/homepage.mjs +86 -46
  149. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  150. package/dist/server/preview/services/preview-config.js +5 -1
  151. package/dist/server/preview/services/preview-config.js.map +1 -1
  152. package/dist/server/preview/services/preview-config.mjs +5 -1
  153. package/dist/server/preview/services/preview-config.mjs.map +1 -1
  154. package/dist/server/preview/services/preview.js +4 -0
  155. package/dist/server/preview/services/preview.js.map +1 -1
  156. package/dist/server/preview/services/preview.mjs +4 -0
  157. package/dist/server/preview/services/preview.mjs.map +1 -1
  158. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  159. package/dist/server/src/homepage/controllers/homepage.d.ts +2 -1
  160. package/dist/server/src/homepage/controllers/homepage.d.ts.map +1 -1
  161. package/dist/server/src/homepage/index.d.ts +7 -0
  162. package/dist/server/src/homepage/index.d.ts.map +1 -1
  163. package/dist/server/src/homepage/routes/homepage.d.ts.map +1 -1
  164. package/dist/server/src/homepage/services/homepage.d.ts +4 -1
  165. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  166. package/dist/server/src/homepage/services/index.d.ts +7 -0
  167. package/dist/server/src/homepage/services/index.d.ts.map +1 -1
  168. package/dist/server/src/index.d.ts +7 -0
  169. package/dist/server/src/index.d.ts.map +1 -1
  170. package/dist/server/src/preview/services/index.d.ts +1 -0
  171. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  172. package/dist/server/src/preview/services/preview-config.d.ts +1 -0
  173. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  174. package/dist/server/src/preview/services/preview.d.ts.map +1 -1
  175. package/dist/server/src/preview/utils.d.ts +1 -0
  176. package/dist/server/src/preview/utils.d.ts.map +1 -1
  177. package/dist/server/src/services/index.d.ts +7 -0
  178. package/dist/server/src/services/index.d.ts.map +1 -1
  179. package/dist/shared/contracts/homepage.d.ts +13 -0
  180. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  181. package/package.json +7 -8
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import 'react';
3
- import { useQueryParams, useNotification, Page, Form, useRBAC, useForm, Blocker } from '@strapi/admin/strapi-admin';
4
- import { Tabs, Main, Grid } from '@strapi/design-system';
3
+ import { useQueryParams, useNotification, Page, tours, Form, useRBAC, useForm, Blocker } from '@strapi/admin/strapi-admin';
4
+ import { Tabs, Main, Box, Grid } from '@strapi/design-system';
5
5
  import { useIntl } from 'react-intl';
6
6
  import { useLocation, useParams } from 'react-router-dom';
7
7
  import { styled } from 'styled-components';
@@ -17,6 +17,7 @@ import { createYupSchema } from '../../utils/validation.mjs';
17
17
  import { FormLayout } from './components/FormLayout.mjs';
18
18
  import { Header } from './components/Header.mjs';
19
19
  import { Panels } from './components/Panels.mjs';
20
+ import { handleInvisibleAttributes } from './utils/data.mjs';
20
21
 
21
22
  /* -------------------------------------------------------------------------------------------------
22
23
  * EditViewPage
@@ -93,16 +94,28 @@ const EditViewPage = ()=>{
93
94
  /*#__PURE__*/ jsx(Page.Title, {
94
95
  children: pageTitle
95
96
  }),
97
+ isSingleType && /*#__PURE__*/ jsx(tours.contentManager.Introduction, {
98
+ children: /*#__PURE__*/ jsx(Box, {})
99
+ }),
96
100
  /*#__PURE__*/ jsx(Form, {
97
101
  disabled: hasDraftAndPublished && status === 'published',
98
102
  initialValues: initialValues,
99
103
  method: isCreatingDocument ? 'POST' : 'PUT',
100
104
  validate: (values, options)=>{
105
+ // removes hidden fields from the validation
106
+ // this is necessary because the yup schema doesn't know about the visibility conditions
107
+ // and we don't want to validate fields that are not visible
108
+ const { data: cleanedValues, removedAttributes } = handleInvisibleAttributes(values, {
109
+ schema,
110
+ initialValues,
111
+ components
112
+ });
101
113
  const yupSchema = createYupSchema(schema?.attributes, components, {
102
114
  status,
115
+ removedAttributes,
103
116
  ...options
104
117
  });
105
- return yupSchema.validate(values, {
118
+ return yupSchema.validate(cleanedValues, {
106
119
  abortEarly: false
107
120
  });
108
121
  },
@@ -154,12 +167,17 @@ const EditViewPage = ()=>{
154
167
  direction: "column",
155
168
  alignItems: "stretch",
156
169
  children: [
157
- /*#__PURE__*/ jsx(Tabs.Content, {
170
+ /*#__PURE__*/ jsxs(Tabs.Content, {
158
171
  value: "draft",
159
- children: /*#__PURE__*/ jsx(FormLayout, {
160
- layout: layout,
161
- document: doc
162
- })
172
+ children: [
173
+ /*#__PURE__*/ jsx(tours.contentManager.Fields, {
174
+ children: /*#__PURE__*/ jsx(Box, {})
175
+ }),
176
+ /*#__PURE__*/ jsx(FormLayout, {
177
+ layout: layout,
178
+ document: doc
179
+ })
180
+ ]
163
181
  }),
164
182
  /*#__PURE__*/ jsx(Tabs.Content, {
165
183
  value: "published",
@@ -1 +1 @@
1
- {"version":3,"file":"EditViewPage.mjs","sources":["../../../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Blocker,\n Form,\n useForm,\n useRBAC,\n useNotification,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc, type UseDocument } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\n// Needs to be wrapped in a component to have access to the form context via a hook.\n// Using the Form component's render prop instead would cause unnecessary re-renders of Form children\nconst BlockerWrapper = () => {\n const resetForm = useForm('BlockerWrapper', (state) => state.resetForm);\n\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n return <Blocker onProceed={resetForm} />;\n};\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const doc = useDoc();\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = doc;\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n const pageTitle = getTitle(mainField);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues || hasError) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{pageTitle}</Page.Title>\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validate(values, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={pageTitle}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root paddingTop={8} gap={4}>\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <FormLayout layout={layout} document={doc} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} document={doc} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <BlockerWrapper />\n </>\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["BlockerWrapper","resetForm","useForm","state","_jsx","Blocker","onProceed","EditViewPage","location","useLocation","query","status","setQuery","useQueryParams","formatMessage","useIntl","toggleNotification","useNotification","doc","useDoc","document","meta","isLoading","isLoadingDocument","schema","components","collectionType","id","model","hasError","getTitle","getInitialFormValues","hasDraftAndPublished","options","draftAndPublish","useOnce","type","message","error","timeout","isLoadingActionsRBAC","useDocumentRBAC","isSingleType","SINGLE_TYPES","isCreatingDocument","isLoadingLayout","edit","layout","settings","mainField","useDocumentLayout","pageTitle","isLazyLoading","useLazyComponents","initialValues","documentId","Page","Loading","Error","handleTabChange","validateSync","values","yupSchema","createYupSchema","attributes","abortEarly","_jsxs","Main","paddingLeft","paddingRight","Title","Form","disabled","method","validate","initialErrors","forceValidation","_Fragment","Header","isCreating","getDocumentStatus","undefined","title","Tabs","Root","variant","value","onValueChange","List","aria-label","getTranslation","defaultMessage","StatusTab","availableStatus","length","Grid","paddingTop","gap","Item","col","s","direction","alignItems","Content","FormLayout","Panels","styled","Trigger","docStatus","statuses","find","publishedAt","ProtectedEditViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","map","action","subject","Protect","DocumentRBAC"],"mappings":"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"}
1
+ {"version":3,"file":"EditViewPage.mjs","sources":["../../../../admin/src/pages/EditView/EditViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Page,\n Blocker,\n Form,\n useForm,\n useRBAC,\n useNotification,\n useQueryParams,\n tours,\n} from '@strapi/admin/strapi-admin';\nimport { Grid, Main, Tabs, Box } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { SINGLE_TYPES } from '../../constants/collections';\nimport { PERMISSIONS } from '../../constants/plugin';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc, type UseDocument } from '../../hooks/useDocument';\nimport { useDocumentLayout } from '../../hooks/useDocumentLayout';\nimport { useLazyComponents } from '../../hooks/useLazyComponents';\nimport { useOnce } from '../../hooks/useOnce';\nimport { getTranslation } from '../../utils/translations';\nimport { createYupSchema } from '../../utils/validation';\n\nimport { FormLayout } from './components/FormLayout';\nimport { Header } from './components/Header';\nimport { Panels } from './components/Panels';\nimport { handleInvisibleAttributes } from './utils/data';\n\n/* -------------------------------------------------------------------------------------------------\n * EditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\n// Needs to be wrapped in a component to have access to the form context via a hook.\n// Using the Form component's render prop instead would cause unnecessary re-renders of Form children\nconst BlockerWrapper = () => {\n const resetForm = useForm('BlockerWrapper', (state) => state.resetForm);\n\n // We reset the form to the published version to avoid errors like – https://strapi-inc.atlassian.net/browse/CONTENT-2284\n return <Blocker onProceed={resetForm} />;\n};\n\nconst EditViewPage = () => {\n const location = useLocation();\n const [\n {\n query: { status },\n },\n setQuery,\n ] = useQueryParams<{ status: 'draft' | 'published' }>({\n status: 'draft',\n });\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n\n const doc = useDoc();\n const {\n document,\n meta,\n isLoading: isLoadingDocument,\n schema,\n components,\n collectionType,\n id,\n model,\n hasError,\n getTitle,\n getInitialFormValues,\n } = doc;\n\n const hasDraftAndPublished = schema?.options?.draftAndPublish ?? false;\n\n useOnce(() => {\n /**\n * We only ever want to fire the notification once otherwise\n * whenever the app re-renders it'll pop up regardless of\n * what we do because the state comes from react-router-dom\n */\n if (location?.state && 'error' in location.state) {\n toggleNotification({\n type: 'danger',\n message: location.state.error,\n timeout: 5000,\n });\n }\n });\n\n const isLoadingActionsRBAC = useDocumentRBAC('EditViewPage', (state) => state.isLoading);\n\n const isSingleType = collectionType === SINGLE_TYPES;\n\n /**\n * single-types don't current have an id, but because they're a singleton\n * we can simply use the update operation to continuously update the same\n * document with varying params.\n */\n const isCreatingDocument = !id && !isSingleType;\n\n const {\n isLoading: isLoadingLayout,\n edit: {\n layout,\n settings: { mainField },\n },\n } = useDocumentLayout(model);\n const pageTitle = getTitle(mainField);\n\n const { isLazyLoading } = useLazyComponents([]);\n\n const isLoading = isLoadingActionsRBAC || isLoadingDocument || isLoadingLayout || isLazyLoading;\n\n const initialValues = getInitialFormValues(isCreatingDocument);\n\n if (isLoading && !document?.documentId) {\n return <Page.Loading />;\n }\n\n if (!initialValues || hasError) {\n return <Page.Error />;\n }\n\n const handleTabChange = (status: string) => {\n if (status === 'published' || status === 'draft') {\n setQuery({ status }, 'push', true);\n }\n };\n\n const validateSync = (values: Record<string, unknown>, options: Record<string, string>) => {\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n ...options,\n });\n\n return yupSchema.validateSync(values, { abortEarly: false });\n };\n\n return (\n <Main paddingLeft={10} paddingRight={10}>\n <Page.Title>{pageTitle}</Page.Title>\n {isSingleType && (\n <tours.contentManager.Introduction>\n {/* Invisible Anchor */}\n <Box />\n </tours.contentManager.Introduction>\n )}\n <Form\n disabled={hasDraftAndPublished && status === 'published'}\n initialValues={initialValues}\n method={isCreatingDocument ? 'POST' : 'PUT'}\n validate={(values: Record<string, unknown>, options: Record<string, string>) => {\n // removes hidden fields from the validation\n // this is necessary because the yup schema doesn't know about the visibility conditions\n // and we don't want to validate fields that are not visible\n const { data: cleanedValues, removedAttributes } = handleInvisibleAttributes(values, {\n schema,\n initialValues,\n components,\n });\n\n const yupSchema = createYupSchema(schema?.attributes, components, {\n status,\n removedAttributes,\n ...options,\n });\n\n return yupSchema.validate(cleanedValues, { abortEarly: false });\n }}\n initialErrors={location?.state?.forceValidation ? validateSync(initialValues, {}) : {}}\n >\n <>\n <Header\n isCreating={isCreatingDocument}\n status={hasDraftAndPublished ? getDocumentStatus(document, meta) : undefined}\n title={pageTitle}\n />\n <Tabs.Root variant=\"simple\" value={status} onValueChange={handleTabChange}>\n <Tabs.List\n aria-label={formatMessage({\n id: getTranslation('containers.edit.tabs.label'),\n defaultMessage: 'Document status',\n })}\n >\n {hasDraftAndPublished ? (\n <>\n <StatusTab value=\"draft\">\n {formatMessage({\n id: getTranslation('containers.edit.tabs.draft'),\n defaultMessage: 'draft',\n })}\n </StatusTab>\n <StatusTab\n disabled={!meta || meta.availableStatus.length === 0}\n value=\"published\"\n >\n {formatMessage({\n id: getTranslation('containers.edit.tabs.published'),\n defaultMessage: 'published',\n })}\n </StatusTab>\n </>\n ) : null}\n </Tabs.List>\n <Grid.Root paddingTop={8} gap={4}>\n <Grid.Item col={9} s={12} direction=\"column\" alignItems=\"stretch\">\n <Tabs.Content value=\"draft\">\n <tours.contentManager.Fields>\n <Box />\n </tours.contentManager.Fields>\n <FormLayout layout={layout} document={doc} />\n </Tabs.Content>\n <Tabs.Content value=\"published\">\n <FormLayout layout={layout} document={doc} />\n </Tabs.Content>\n </Grid.Item>\n <Grid.Item col={3} s={12} direction=\"column\" alignItems=\"stretch\">\n <Panels />\n </Grid.Item>\n </Grid.Root>\n </Tabs.Root>\n <BlockerWrapper />\n </>\n </Form>\n </Main>\n );\n};\n\nconst StatusTab = styled(Tabs.Trigger)`\n text-transform: uppercase;\n`;\n\n/**\n * @internal\n * @description Returns the status of the document where its latest state takes priority,\n * this typically will be \"published\" unless a user has edited their draft in which we should\n * display \"modified\".\n */\nconst getDocumentStatus = (\n document: ReturnType<UseDocument>['document'],\n meta: ReturnType<UseDocument>['meta']\n): 'draft' | 'published' | 'modified' => {\n const docStatus = document?.status;\n const statuses = meta?.availableStatus ?? [];\n\n /**\n * Creating an entry\n */\n if (!docStatus) {\n return 'draft';\n }\n\n /**\n * We're viewing a draft, but the document could have a published version\n */\n if (docStatus === 'draft' && statuses.find((doc) => doc.publishedAt !== null)) {\n return 'published';\n }\n\n return docStatus;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedEditViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedEditViewPage = () => {\n const { slug = '' } = useParams<{\n slug: string;\n }>();\n const {\n permissions = [],\n isLoading,\n error,\n } = useRBAC(\n PERMISSIONS.map((action) => ({\n action,\n subject: slug,\n }))\n );\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error || !slug) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <EditViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { EditViewPage, ProtectedEditViewPage, getDocumentStatus };\n"],"names":["BlockerWrapper","resetForm","useForm","state","_jsx","Blocker","onProceed","EditViewPage","location","useLocation","query","status","setQuery","useQueryParams","formatMessage","useIntl","toggleNotification","useNotification","doc","useDoc","document","meta","isLoading","isLoadingDocument","schema","components","collectionType","id","model","hasError","getTitle","getInitialFormValues","hasDraftAndPublished","options","draftAndPublish","useOnce","type","message","error","timeout","isLoadingActionsRBAC","useDocumentRBAC","isSingleType","SINGLE_TYPES","isCreatingDocument","isLoadingLayout","edit","layout","settings","mainField","useDocumentLayout","pageTitle","isLazyLoading","useLazyComponents","initialValues","documentId","Page","Loading","Error","handleTabChange","validateSync","values","yupSchema","createYupSchema","attributes","abortEarly","_jsxs","Main","paddingLeft","paddingRight","Title","tours","contentManager","Introduction","Box","Form","disabled","method","validate","data","cleanedValues","removedAttributes","handleInvisibleAttributes","initialErrors","forceValidation","_Fragment","Header","isCreating","getDocumentStatus","undefined","title","Tabs","Root","variant","value","onValueChange","List","aria-label","getTranslation","defaultMessage","StatusTab","availableStatus","length","Grid","paddingTop","gap","Item","col","s","direction","alignItems","Content","Fields","FormLayout","Panels","styled","Trigger","docStatus","statuses","find","publishedAt","ProtectedEditViewPage","slug","useParams","permissions","useRBAC","PERMISSIONS","map","action","subject","Protect","DocumentRBAC"],"mappings":"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"}
@@ -22,6 +22,7 @@ var router = require('../../../router.js');
22
22
  var documents = require('../../../services/documents.js');
23
23
  var api = require('../../../utils/api.js');
24
24
  var translations = require('../../../utils/translations.js');
25
+ var data = require('../utils/data.js');
25
26
  var RelationModal = require('./FormInputs/Relations/RelationModal.js');
26
27
 
27
28
  function _interopNamespaceDefault(e) {
@@ -95,23 +96,33 @@ const DocumentActions = ({ actions })=>{
95
96
  alignItems: "stretch",
96
97
  width: "100%",
97
98
  children: [
98
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
99
- gap: 2,
100
- children: [
101
- /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
102
- ...primaryAction,
103
- variant: primaryAction.variant || 'default'
104
- }),
105
- restActions.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionsMenu, {
106
- actions: restActions,
107
- label: formatMessage({
108
- id: 'content-manager.containers.edit.panels.default.more-actions',
109
- defaultMessage: 'More document actions'
110
- })
111
- }) : null
112
- ]
99
+ /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.tours.contentManager.Publish, {
100
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
101
+ gap: 2,
102
+ children: [
103
+ primaryAction.label === 'Publish' ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
104
+ ...primaryAction,
105
+ variant: primaryAction.variant || 'default'
106
+ }) : /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
107
+ ...primaryAction,
108
+ variant: primaryAction.variant || 'default'
109
+ }),
110
+ restActions.length > 0 ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionsMenu, {
111
+ actions: restActions,
112
+ label: formatMessage({
113
+ id: 'content-manager.containers.edit.panels.default.more-actions',
114
+ defaultMessage: 'More document actions'
115
+ })
116
+ }) : null
117
+ ]
118
+ })
113
119
  }),
114
- secondaryAction ? /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
120
+ secondaryAction ? secondaryAction.label === 'Publish' ? /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.tours.contentManager.Publish, {
121
+ children: /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
122
+ ...secondaryAction,
123
+ variant: secondaryAction.variant || 'secondary'
124
+ })
125
+ }) : /*#__PURE__*/ jsxRuntime.jsx(DocumentActionButton, {
115
126
  ...secondaryAction,
116
127
  variant: secondaryAction.variant || 'secondary'
117
128
  }) : null
@@ -396,6 +407,7 @@ const transformData = (data)=>{
396
407
  const setErrors = strapiAdmin.useForm('PublishAction', (state)=>state.setErrors);
397
408
  const formValues = strapiAdmin.useForm('PublishAction', ({ values })=>values);
398
409
  const resetForm = strapiAdmin.useForm('PublishAction', ({ resetForm })=>resetForm);
410
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('PublishAction');
399
411
  // need to discriminate if the publish is coming from a relation modal or in the edit view
400
412
  const relationContext = RelationModal.useRelationModal('PublishAction', ()=>true, false);
401
413
  const fromRelationModal = relationContext != undefined;
@@ -404,6 +416,7 @@ const transformData = (data)=>{
404
416
  const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
405
417
  const documentHistory = RelationModal.useRelationModal('PublishAction', (state)=>state.state.documentHistory, false);
406
418
  const rootDocumentMeta = RelationModal.useRelationModal('PublishAction', (state)=>state.rootDocumentMeta);
419
+ const dispatchGuidedTour = strapiAdmin.useGuidedTour('PublishAction', (s)=>s.dispatch);
407
420
  const { currentDocumentMeta } = useDocumentContext.useDocumentContext('PublishAction');
408
421
  const [updateDocumentMutation] = documents.useUpdateDocumentMutation();
409
422
  const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
@@ -534,15 +547,25 @@ const transformData = (data)=>{
534
547
  }
535
548
  return;
536
549
  }
550
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(formValues), {
551
+ schema,
552
+ components
553
+ });
537
554
  const res = await publish({
538
555
  collectionType,
539
556
  model,
540
557
  documentId,
541
558
  params: currentDocumentMeta.params
542
- }, transformData(formValues));
559
+ }, data$1);
543
560
  // Reset form if successful
544
561
  if ('data' in res) {
545
562
  resetForm();
563
+ dispatchGuidedTour({
564
+ type: 'set_completed_actions',
565
+ payload: [
566
+ strapiAdmin.GUIDED_TOUR_REQUIRED_ACTIONS.contentManager.createContent
567
+ ]
568
+ });
546
569
  }
547
570
  if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
548
571
  /**
@@ -666,6 +689,7 @@ PublishAction.position = [
666
689
  'relation-modal'
667
690
  ];
668
691
  const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
692
+ const dispatchGuidedTour = strapiAdmin.useGuidedTour('UpdateAction', (s)=>s.dispatch);
669
693
  const navigate = reactRouterDom.useNavigate();
670
694
  const { toggleNotification } = strapiAdmin.useNotification();
671
695
  const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
@@ -673,12 +697,14 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
673
697
  const isCloning = cloneMatch !== null;
674
698
  const { formatMessage } = reactIntl.useIntl();
675
699
  const { create, update, clone, isLoading } = useDocumentActions.useDocumentActions();
700
+ const { currentDocument: { components } } = useDocumentContext.useDocumentContext('UpdateAction');
676
701
  const [{ rawQuery }] = strapiAdmin.useQueryParams();
677
702
  const onPreview = Preview.usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
678
703
  const { getInitialFormValues } = useDocument.useDoc();
679
704
  const isSubmitting = strapiAdmin.useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
680
705
  const modified = strapiAdmin.useForm('UpdateAction', ({ modified })=>modified);
681
706
  const setSubmitting = strapiAdmin.useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
707
+ const initialValues = strapiAdmin.useForm('UpdateAction', ({ initialValues })=>initialValues);
682
708
  const document = strapiAdmin.useForm('UpdateAction', ({ values })=>values);
683
709
  const validate = strapiAdmin.useForm('UpdateAction', (state)=>state.validate);
684
710
  const setErrors = strapiAdmin.useForm('UpdateAction', (state)=>state.setErrors);
@@ -686,6 +712,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
686
712
  const dispatch = RelationModal.useRelationModal('UpdateAction', (state)=>state.dispatch);
687
713
  // need to discriminate if the update is coming from a relation modal or in the edit view
688
714
  const relationContext = RelationModal.useRelationModal('UpdateAction', ()=>true, false);
715
+ const relationalModalSchema = RelationModal.useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
689
716
  const fieldToConnect = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
690
717
  const fieldToConnectUID = RelationModal.useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
691
718
  const documentHistory = RelationModal.useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
@@ -703,6 +730,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
703
730
  }, {
704
731
  skip: !parentDocumentMetaToUpdate
705
732
  });
733
+ const { schema } = useDocument.useDoc();
706
734
  const handleUpdate = React__namespace.useCallback(async ()=>{
707
735
  setSubmitting(true);
708
736
  try {
@@ -739,22 +767,32 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
739
767
  setErrors(formatValidationErrors(res.error));
740
768
  }
741
769
  } else if (documentId || collectionType === collections.SINGLE_TYPES) {
770
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
771
+ schema: fromRelationModal ? relationalModalSchema : schema,
772
+ initialValues,
773
+ components
774
+ });
742
775
  const res = await update({
743
776
  collectionType,
744
777
  model,
745
778
  documentId,
746
779
  params: currentDocumentMeta.params
747
- }, transformData(document));
780
+ }, data$1);
748
781
  if ('error' in res && api.isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
749
782
  setErrors(formatValidationErrors(res.error));
750
783
  } else {
751
784
  resetForm();
752
785
  }
753
786
  } else {
787
+ const { data: data$1 } = data.handleInvisibleAttributes(transformData(document), {
788
+ schema: fromRelationModal ? relationalModalSchema : schema,
789
+ initialValues,
790
+ components
791
+ });
754
792
  const res = await create({
755
793
  model,
756
794
  params: currentDocumentMeta.params
757
- }, transformData(document));
795
+ }, data$1);
758
796
  if ('data' in res && collectionType !== collections.SINGLE_TYPES) {
759
797
  if (fromRelationModal) {
760
798
  const createdRelation = {
@@ -819,6 +857,12 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
819
857
  }
820
858
  }
821
859
  } finally{
860
+ dispatchGuidedTour({
861
+ type: 'set_completed_actions',
862
+ payload: [
863
+ strapiAdmin.GUIDED_TOUR_REQUIRED_ACTIONS.contentManager.createContent
864
+ ]
865
+ });
822
866
  setSubmitting(false);
823
867
  if (onPreview) {
824
868
  onPreview();
@@ -855,7 +899,12 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
855
899
  fieldToConnectUID,
856
900
  updateDocumentMutation,
857
901
  formatAPIError,
858
- onPreview
902
+ onPreview,
903
+ initialValues,
904
+ schema,
905
+ components,
906
+ relationalModalSchema,
907
+ dispatchGuidedTour
859
908
  ]);
860
909
  // Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
861
910
  React__namespace.useEffect(()=>{