@strapi/admin 4.0.3 → 4.0.7

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 (161) hide show
  1. package/admin/src/components/LeftMenu/index.js +11 -3
  2. package/admin/src/components/UpgradePlanModal/index.js +7 -2
  3. package/admin/src/content-manager/components/DynamicZone/components/DzLabel/index.js +24 -7
  4. package/admin/src/content-manager/components/DynamicZone/index.js +6 -10
  5. package/admin/src/content-manager/components/InputJSON/FieldWrapper.js +32 -0
  6. package/admin/src/content-manager/components/InputJSON/Label.js +5 -11
  7. package/admin/src/content-manager/components/InputJSON/index.js +26 -26
  8. package/admin/src/content-manager/components/PreviewWysiwyg/Wrapper.js +4 -0
  9. package/admin/src/content-manager/components/PreviewWysiwyg/utils/mdRenderer.js +1 -1
  10. package/admin/src/content-manager/components/Wysiwyg/Editor.js +6 -4
  11. package/admin/src/content-manager/components/Wysiwyg/EditorLayout.js +2 -0
  12. package/admin/src/content-manager/components/Wysiwyg/EditorStylesContainer.js +2 -1
  13. package/admin/src/content-manager/components/Wysiwyg/WysiwygFooter.js +2 -4
  14. package/admin/src/content-manager/components/Wysiwyg/WysiwygNav.js +79 -68
  15. package/admin/src/content-manager/components/Wysiwyg/WysiwygStyles.js +1 -0
  16. package/admin/src/content-manager/components/Wysiwyg/index.js +17 -5
  17. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFields.js +1 -3
  18. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +6 -7
  19. package/admin/src/pages/Admin/index.js +2 -0
  20. package/admin/src/pages/InternalErrorPage/index.js +53 -0
  21. package/admin/src/pages/NotFoundPage/index.js +45 -2
  22. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventInput/index.js +2 -10
  23. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/utils/schema.js +1 -4
  24. package/admin/src/translations/dk.json +300 -110
  25. package/admin/src/translations/en.json +3 -0
  26. package/admin/src/translations/es.json +204 -4
  27. package/admin/src/translations/hu.json +672 -0
  28. package/admin/src/translations/ja.json +327 -7
  29. package/admin/src/translations/languageNativeNames.js +1 -0
  30. package/admin/src/translations/nl.json +512 -125
  31. package/admin/src/translations/pt-BR.json +398 -19
  32. package/admin/src/translations/uk.json +40 -40
  33. package/admin/src/translations/zh.json +7 -0
  34. package/build/1024.efaaca35.chunk.js +1 -0
  35. package/build/1856.ec8cf094.chunk.js +1 -0
  36. package/build/2912.b886455f.chunk.js +1 -0
  37. package/build/{5881.746d7dc1.chunk.js → 3215.b6c950c2.chunk.js} +2 -2
  38. package/build/{5881.746d7dc1.chunk.js.LICENSE.txt → 3215.b6c950c2.chunk.js.LICENSE.txt} +0 -0
  39. package/build/4261.d5024c20.chunk.js +1 -0
  40. package/build/4362.0700c5df.chunk.js +1 -0
  41. package/build/4672.e18b4834.chunk.js +1 -0
  42. package/build/4715.7f86301d.chunk.js +1 -0
  43. package/build/4741.57e58885.chunk.js +2 -0
  44. package/build/{4741.1fb6ad6e.chunk.js.LICENSE.txt → 4741.57e58885.chunk.js.LICENSE.txt} +0 -0
  45. package/build/4801.3a0d8fcd.chunk.js +2 -0
  46. package/build/{9351.a0fbd4ef.chunk.js.LICENSE.txt → 4801.3a0d8fcd.chunk.js.LICENSE.txt} +0 -0
  47. package/build/497.9a3be008.chunk.js +1 -0
  48. package/build/4982.52a2ce10.chunk.js +1 -0
  49. package/build/6060.1a1bd16a.chunk.js +2 -0
  50. package/build/{6060.a5b86bc2.chunk.js.LICENSE.txt → 6060.1a1bd16a.chunk.js.LICENSE.txt} +0 -0
  51. package/build/6250.2172d040.chunk.js +1 -0
  52. package/build/7841.c4d33a2f.chunk.js +1 -0
  53. package/build/{849.4a7be1c0.chunk.js → 849.46892e8e.chunk.js} +1 -1
  54. package/build/9235.63b1528f.chunk.js +1 -0
  55. package/build/Admin-authenticatedApp.c6b9128c.chunk.js +1 -0
  56. package/build/Admin_homePage.f044cfaf.chunk.js +1 -0
  57. package/build/{Admin_marketplace.9661a660.chunk.js → Admin_marketplace.1cf20eeb.chunk.js} +1 -1
  58. package/build/{Admin_pluginsPage.7d1bd7ce.chunk.js → Admin_pluginsPage.0d59d86e.chunk.js} +1 -1
  59. package/build/{Admin_profilePage.67dd744c.chunk.js → Admin_profilePage.c08119de.chunk.js} +1 -1
  60. package/build/Admin_settingsPage.97246c41.chunk.js +1 -0
  61. package/build/{admin-edit-roles-page.2d1b6461.chunk.js → admin-edit-roles-page.8af004a6.chunk.js} +1 -1
  62. package/build/{admin-edit-users.e736db15.chunk.js → admin-edit-users.73877840.chunk.js} +1 -1
  63. package/build/admin-users.e0558d75.chunk.js +1 -0
  64. package/build/{api-tokens-create-page.830b37b7.chunk.js → api-tokens-create-page.ebe57c8e.chunk.js} +1 -1
  65. package/build/{api-tokens-edit-page.dbe07b72.chunk.js → api-tokens-edit-page.35e1522b.chunk.js} +1 -1
  66. package/build/{api-tokens-list-page.1626150f.chunk.js → api-tokens-list-page.f01b7b98.chunk.js} +1 -1
  67. package/build/content-manager.9c7ee647.chunk.js +1 -0
  68. package/build/{content-type-builder-translation-dk-json.5c6344f9.chunk.js → content-type-builder-translation-dk-json.098bd218.chunk.js} +1 -1
  69. package/build/{content-type-builder-translation-en-json.c535d180.chunk.js → content-type-builder-translation-en-json.d70fc3af.chunk.js} +1 -1
  70. package/build/content-type-builder-translation-es-json.20c177ee.chunk.js +1 -0
  71. package/build/content-type-builder.7673250d.chunk.js +1 -0
  72. package/build/dk-json.7356ea4b.chunk.js +1 -0
  73. package/build/email-settings-page.448433af.chunk.js +1 -0
  74. package/build/email-translation-dk-json.f8a595bf.chunk.js +1 -0
  75. package/build/email-translation-es-json.eb303dea.chunk.js +1 -0
  76. package/build/en-json.ec998c8f.chunk.js +1 -0
  77. package/build/es-json.ed9c8bef.chunk.js +1 -0
  78. package/build/{fontawesome-css.ef93ee2a.chunk.js → fontawesome-css.36cff9ae.chunk.js} +1 -1
  79. package/build/hu-json.a741d263.chunk.js +1 -0
  80. package/build/i18n-settings-page.0ba8ab95.chunk.js +1 -0
  81. package/build/i18n-translation-dk-json.932d3cc2.chunk.js +1 -0
  82. package/build/i18n-translation-es-json.347904f3.chunk.js +1 -0
  83. package/build/index.html +1 -1
  84. package/build/ja-json.52581a2a.chunk.js +1 -0
  85. package/build/main.fcbcdd20.js +2 -0
  86. package/build/{main.b227e163.js.LICENSE.txt → main.fcbcdd20.js.LICENSE.txt} +0 -0
  87. package/build/nl-json.ac661b7f.chunk.js +1 -0
  88. package/build/pt-BR-json.8b3f799d.chunk.js +1 -0
  89. package/build/runtime~main.32f93f84.js +1 -0
  90. package/build/{sso-settings-page.c073b6d7.chunk.js → sso-settings-page.36c35df0.chunk.js} +1 -1
  91. package/build/uk-json.da2ed14e.chunk.js +1 -0
  92. package/build/upload-settings.113fd6b8.chunk.js +1 -0
  93. package/build/{upload-translation-dk-json.e8c0a891.chunk.js → upload-translation-dk-json.bc6af8b4.chunk.js} +1 -1
  94. package/build/upload-translation-en-json.6b529046.chunk.js +1 -0
  95. package/build/upload-translation-es-json.b53d6641.chunk.js +1 -0
  96. package/build/upload.36c37a29.chunk.js +1 -0
  97. package/build/users-advanced-settings-page.627f173b.chunk.js +1 -0
  98. package/build/{users-email-settings-page.678794aa.chunk.js → users-email-settings-page.862eb51e.chunk.js} +1 -1
  99. package/build/{users-permissions-translation-dk-json.a36b323b.chunk.js → users-permissions-translation-dk-json.3e0295e5.chunk.js} +1 -1
  100. package/build/users-permissions-translation-es-json.a4f81eaa.chunk.js +1 -0
  101. package/build/users-providers-settings-page.47f97b06.chunk.js +1 -0
  102. package/build/{users-roles-settings-page.4f04bf06.chunk.js → users-roles-settings-page.b67e2b4d.chunk.js} +1 -1
  103. package/build/webhook-edit-page.e463d0ab.chunk.js +1 -0
  104. package/build/webhook-list-page.b7649616.chunk.js +1 -0
  105. package/build/zh-json.2e4c9ef4.chunk.js +1 -0
  106. package/ee/admin/pages/App/utils/customRoutes.js +1 -1
  107. package/ee/server/controllers/authentication/utils.js +1 -1
  108. package/index.js +43 -26
  109. package/package.json +11 -11
  110. package/server/bootstrap.js +16 -0
  111. package/server/controllers/webhooks.js +6 -10
  112. package/server/services/api-token.js +1 -1
  113. package/server/services/metrics.js +6 -0
  114. package/server/services/permission/permissions-manager/sanitize.js +13 -5
  115. package/server/services/user.js +10 -0
  116. package/server/strategies/api-token.js +0 -3
  117. package/build/1024.1b15fbb5.chunk.js +0 -1
  118. package/build/1856.0a6992d6.chunk.js +0 -1
  119. package/build/2912.d903b59a.chunk.js +0 -1
  120. package/build/4064.2683bcce.chunk.js +0 -1
  121. package/build/4261.b7b7ac00.chunk.js +0 -1
  122. package/build/4362.1cf3ccbd.chunk.js +0 -1
  123. package/build/4715.f134f37a.chunk.js +0 -1
  124. package/build/4741.1fb6ad6e.chunk.js +0 -2
  125. package/build/497.726adbfa.chunk.js +0 -1
  126. package/build/4982.a7f87e6c.chunk.js +0 -1
  127. package/build/6060.a5b86bc2.chunk.js +0 -2
  128. package/build/6250.11ba8b50.chunk.js +0 -1
  129. package/build/7841.d2aa6f5e.chunk.js +0 -1
  130. package/build/9238.63386655.chunk.js +0 -1
  131. package/build/9351.a0fbd4ef.chunk.js +0 -2
  132. package/build/Admin-authenticatedApp.956e0be7.chunk.js +0 -1
  133. package/build/Admin_homePage.62ec13fd.chunk.js +0 -1
  134. package/build/Admin_settingsPage.73423460.chunk.js +0 -1
  135. package/build/admin-users.62447405.chunk.js +0 -1
  136. package/build/content-manager.0872e65e.chunk.js +0 -1
  137. package/build/content-type-builder-translation-es-json.7e2055ad.chunk.js +0 -1
  138. package/build/content-type-builder.44fdf56b.chunk.js +0 -1
  139. package/build/dk-json.9516eb08.chunk.js +0 -1
  140. package/build/email-settings-page.3cdedf03.chunk.js +0 -1
  141. package/build/email-translation-dk-json.b3740e8f.chunk.js +0 -1
  142. package/build/email-translation-es-json.abbba8e3.chunk.js +0 -1
  143. package/build/en-json.1c33de7f.chunk.js +0 -1
  144. package/build/es-json.fa8ddd1d.chunk.js +0 -1
  145. package/build/i18n-settings-page.ad670b2c.chunk.js +0 -1
  146. package/build/ja-json.57abaacb.chunk.js +0 -1
  147. package/build/main.b227e163.js +0 -2
  148. package/build/nl-json.d757328d.chunk.js +0 -1
  149. package/build/pt-BR-json.6d1cfdb2.chunk.js +0 -1
  150. package/build/runtime~main.d7a87b81.js +0 -1
  151. package/build/uk-json.c50ad2a8.chunk.js +0 -1
  152. package/build/upload-settings.f65c4d08.chunk.js +0 -1
  153. package/build/upload-translation-en-json.31ea0622.chunk.js +0 -1
  154. package/build/upload-translation-es-json.42b5c758.chunk.js +0 -1
  155. package/build/upload.1e3e2685.chunk.js +0 -1
  156. package/build/users-advanced-settings-page.da9830fd.chunk.js +0 -1
  157. package/build/users-permissions-translation-es-json.c8ef51bd.chunk.js +0 -1
  158. package/build/users-providers-settings-page.d4f78a77.chunk.js +0 -1
  159. package/build/webhook-edit-page.c87c6764.chunk.js +0 -1
  160. package/build/webhook-list-page.8abf0b5f.chunk.js +0 -1
  161. package/build/zh-json.496bd6c4.chunk.js +0 -1
@@ -26,6 +26,10 @@ const LabelAction = styled(Box)`
26
26
  }
27
27
  `;
28
28
 
29
+ const TypographyAsterisk = styled(Typography)`
30
+ line-height: 0;
31
+ `;
32
+
29
33
  const Wysiwyg = ({
30
34
  description,
31
35
  disabled,
@@ -36,6 +40,7 @@ const Wysiwyg = ({
36
40
  onChange,
37
41
  placeholder,
38
42
  value,
43
+ required,
39
44
  }) => {
40
45
  const { formatMessage } = useIntl();
41
46
  const textareaRef = useRef(null);
@@ -49,7 +54,10 @@ const Wysiwyg = ({
49
54
 
50
55
  const handleToggleMediaLib = () => setMediaLibVisible(prev => !prev);
51
56
  const handleTogglePreviewMode = () => setIsPreviewMode(prev => !prev);
52
- const handleToggleExpand = () => setIsExpandMode(prev => !prev);
57
+ const handleToggleExpand = () => {
58
+ setIsPreviewMode(false);
59
+ setIsExpandMode(prev => !prev);
60
+ };
53
61
 
54
62
  const handleActionClick = (value, currentEditorRef, togglePopover) => {
55
63
  switch (value) {
@@ -124,6 +132,7 @@ const Wysiwyg = ({
124
132
  <Stack horizontal size={1}>
125
133
  <Typography variant="pi" fontWeight="bold" textColor="neutral800">
126
134
  {label}
135
+ {required && <TypographyAsterisk textColor="danger600">*</TypographyAsterisk>}
127
136
  </Typography>
128
137
  {labelAction && <LabelAction paddingLeft={1}>{labelAction}</LabelAction>}
129
138
  </Stack>
@@ -135,15 +144,18 @@ const Wysiwyg = ({
135
144
  onCollapse={handleToggleExpand}
136
145
  >
137
146
  <WysiwygNav
147
+ isExpandMode={isExpandMode}
138
148
  editorRef={editorRef}
139
149
  isPreviewMode={isPreviewMode}
140
150
  onActionClick={handleActionClick}
141
151
  onToggleMediaLib={handleToggleMediaLib}
142
152
  onTogglePreviewMode={isExpandMode ? undefined : handleTogglePreviewMode}
153
+ disabled={disabled}
143
154
  />
144
155
 
145
156
  <Editor
146
157
  disabled={disabled}
158
+ isExpandMode={isExpandMode}
147
159
  editorRef={editorRef}
148
160
  error={errorMessage}
149
161
  isPreviewMode={isPreviewMode}
@@ -154,9 +166,7 @@ const Wysiwyg = ({
154
166
  value={value}
155
167
  />
156
168
 
157
- {!isExpandMode && (
158
- <WysiwygFooter isPreviewMode={isPreviewMode} onToggleExpand={handleToggleExpand} />
159
- )}
169
+ {!isExpandMode && <WysiwygFooter onToggleExpand={handleToggleExpand} />}
160
170
  </EditorLayout>
161
171
  <Hint description={description} name={name} error={error} />
162
172
  </Stack>
@@ -178,10 +188,11 @@ const Wysiwyg = ({
178
188
 
179
189
  Wysiwyg.defaultProps = {
180
190
  description: null,
181
- disabled: true,
191
+ disabled: false,
182
192
  error: '',
183
193
  labelAction: undefined,
184
194
  placeholder: null,
195
+ required: false,
185
196
  value: '',
186
197
  };
187
198
 
@@ -206,6 +217,7 @@ Wysiwyg.propTypes = {
206
217
  defaultMessage: PropTypes.string.isRequired,
207
218
  values: PropTypes.object,
208
219
  }),
220
+ required: PropTypes.bool,
209
221
  value: PropTypes.string,
210
222
  };
211
223
 
@@ -41,9 +41,7 @@ const DisplayedFields = ({ editLayout, editLayoutRemainingFields, onRemoveField,
41
41
  <Box padding={4} hasRadius borderStyle="dashed" borderWidth="1px" borderColor="neutral300">
42
42
  <Stack size={2}>
43
43
  {editLayout.map((row, index) => (
44
- <React.Fragment key={row.rowId}>
45
- <RowsLayout row={row} rowIndex={index} onRemoveField={onRemoveField} />
46
- </React.Fragment>
44
+ <RowsLayout key={row.rowId} row={row} rowIndex={index} onRemoveField={onRemoveField} />
47
45
  ))}
48
46
  <SimpleMenu
49
47
  id="label"
@@ -47,19 +47,18 @@ const ModalForm = ({ onChange }) => {
47
47
  return formToDisplay.map(meta => {
48
48
  const formType = get(attributes, [selectedField, 'type']);
49
49
 
50
- if (formType === 'dynamiczone' && !['label', 'description'].includes(meta)) {
50
+ if (
51
+ formType === 'dynamiczone' ||
52
+ (formType === 'component' && !['label', 'description'].includes(meta))
53
+ ) {
51
54
  return null;
52
55
  }
53
56
 
54
- if ((formType === 'component' || formType === 'media') && meta !== 'label') {
57
+ if (formType === 'component' && meta !== 'label') {
55
58
  return null;
56
59
  }
57
60
 
58
- if ((formType === 'json' || formType === 'boolean') && meta === 'placeholder') {
59
- return null;
60
- }
61
-
62
- if (formType === 'richtext' && meta === 'editable') {
61
+ if (['media', 'json', 'boolean'].includes(formType) && meta === 'placeholder') {
63
62
  return null;
64
63
  }
65
64
 
@@ -27,6 +27,7 @@ const MarketplacePage = lazy(() =>
27
27
  import(/* webpackChunkName: "Admin_marketplace" */ '../MarketplacePage')
28
28
  );
29
29
  const NotFoundPage = lazy(() => import('../NotFoundPage'));
30
+ const InternalErrorPage = lazy(() => import('../InternalErrorPage'));
30
31
 
31
32
  const ProfilePage = lazy(() =>
32
33
  import(/* webpackChunkName: "Admin_profilePage" */ '../ProfilePage')
@@ -87,6 +88,7 @@ const Admin = () => {
87
88
  <InstalledPluginsPage />
88
89
  </Route>
89
90
  <Route path="/404" component={NotFoundPage} />
91
+ <Route path="/500" component={InternalErrorPage} />
90
92
  <Route path="" component={NotFoundPage} />
91
93
  </Switch>
92
94
  </Suspense>
@@ -0,0 +1,53 @@
1
+ /**
2
+ * InternalErrorPage
3
+ *
4
+ * This is the page we show when the user gets a 500 error
5
+ *
6
+ */
7
+ import React from 'react';
8
+ import { useFocusWhenNavigate } from '@strapi/helper-plugin';
9
+ import { Main } from '@strapi/design-system/Main';
10
+ import { LinkButton } from '@strapi/design-system/LinkButton';
11
+ import { ContentLayout, HeaderLayout } from '@strapi/design-system/Layout';
12
+ import { EmptyStateLayout } from '@strapi/design-system/EmptyStateLayout';
13
+ import EmptyPictures from '@strapi/icons/EmptyPictures';
14
+ import ArrowRight from '@strapi/icons/ArrowRight';
15
+ import { useIntl } from 'react-intl';
16
+
17
+ const InternalErrorPage = () => {
18
+ const { formatMessage } = useIntl();
19
+ useFocusWhenNavigate();
20
+
21
+ return (
22
+ <Main labelledBy="title">
23
+ <HeaderLayout
24
+ id="title"
25
+ title={formatMessage({
26
+ id: 'content-manager.pageNotFound',
27
+ defaultMessage: 'Page not found',
28
+ })}
29
+ />
30
+ <ContentLayout>
31
+ <EmptyStateLayout
32
+ action={
33
+ <LinkButton variant="secondary" endIcon={<ArrowRight />} to="/">
34
+ {formatMessage({
35
+ id: 'app.components.NotFoundPage.back',
36
+ defaultMessage: 'Back to homepage',
37
+ })}
38
+ </LinkButton>
39
+ }
40
+ content={formatMessage({
41
+ id: 'notification.error',
42
+ defaultMessage: 'An error occured',
43
+ })}
44
+ hasRadius
45
+ icon={<EmptyPictures width="10rem" />}
46
+ shadow="tableShadow"
47
+ />
48
+ </ContentLayout>
49
+ </Main>
50
+ );
51
+ };
52
+
53
+ export default InternalErrorPage;
@@ -4,7 +4,50 @@
4
4
  * This is the page we show when the user visits a url that doesn't have a route
5
5
  *
6
6
  */
7
+ import React from 'react';
8
+ import { useFocusWhenNavigate } from '@strapi/helper-plugin';
9
+ import { Main } from '@strapi/design-system/Main';
10
+ import { LinkButton } from '@strapi/design-system/LinkButton';
11
+ import { ContentLayout, HeaderLayout } from '@strapi/design-system/Layout';
12
+ import { EmptyStateLayout } from '@strapi/design-system/EmptyStateLayout';
13
+ import EmptyPictures from '@strapi/icons/EmptyPictures';
14
+ import ArrowRight from '@strapi/icons/ArrowRight';
15
+ import { useIntl } from 'react-intl';
7
16
 
8
- const NotFoundPage = () => 'TODO NOT FOUND';
17
+ const NoContentType = () => {
18
+ const { formatMessage } = useIntl();
19
+ useFocusWhenNavigate();
9
20
 
10
- export default NotFoundPage;
21
+ return (
22
+ <Main labelledBy="title">
23
+ <HeaderLayout
24
+ id="title"
25
+ title={formatMessage({
26
+ id: 'content-manager.pageNotFound',
27
+ defaultMessage: 'Page not found',
28
+ })}
29
+ />
30
+ <ContentLayout>
31
+ <EmptyStateLayout
32
+ action={
33
+ <LinkButton variant="secondary" endIcon={<ArrowRight />} to="/">
34
+ {formatMessage({
35
+ id: 'app.components.NotFoundPage.back',
36
+ defaultMessage: 'Back to homepage',
37
+ })}
38
+ </LinkButton>
39
+ }
40
+ content={formatMessage({
41
+ id: 'app.page.not.found',
42
+ defaultMessage: "Oops! We can't seem to find the page you're looging for...",
43
+ })}
44
+ hasRadius
45
+ icon={<EmptyPictures width="10rem" />}
46
+ shadow="tableShadow"
47
+ />
48
+ </ContentLayout>
49
+ </Main>
50
+ );
51
+ };
52
+
53
+ export default NoContentType;
@@ -63,7 +63,7 @@ const EventInput = ({ isDraftAndPublish }) => {
63
63
  : displayedData.events.default;
64
64
 
65
65
  const { formatMessage } = useIntl();
66
- const { values, errors, handleChange: onChange } = useFormikContext();
66
+ const { values, handleChange: onChange } = useFormikContext();
67
67
 
68
68
  const inputName = 'events';
69
69
  const inputValue = values.events;
@@ -100,7 +100,7 @@ const EventInput = ({ isDraftAndPublish }) => {
100
100
 
101
101
  return (
102
102
  <Stack size={1}>
103
- <FieldLabel required>
103
+ <FieldLabel>
104
104
  {formatMessage({
105
105
  id: 'Settings.webhooks.form.events',
106
106
  defaultMessage: 'Events',
@@ -154,14 +154,6 @@ const EventInput = ({ isDraftAndPublish }) => {
154
154
  })}
155
155
  </tbody>
156
156
  </StyledTable>
157
- {errors.events && (
158
- <Typography variant="pi" textColor="danger600" data-strapi-field-error>
159
- {formatMessage({
160
- id: 'components.Input.error.validation.required',
161
- defaultMessage: 'This value is required',
162
- })}
163
- </Typography>
164
- )}
165
157
  </Stack>
166
158
  );
167
159
  };
@@ -29,10 +29,7 @@ const schema = yup.object().shape({
29
29
  })
30
30
  );
31
31
  }),
32
- events: yup
33
- .array()
34
- .min(1, translatedErrors.min)
35
- .required(translatedErrors.required),
32
+ events: yup.array(),
36
33
  });
37
34
 
38
35
  export default schema;