@strapi/i18n 0.0.0-next.eedb036f0a7ac282d2a645d8a40625091bd28b1e → 0.0.0-next.ef9237644b07791c05e1b7edc54d1921e59565ae

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 (131) hide show
  1. package/dist/admin/chunks/SettingsPage-BOEeBbiM.mjs +797 -0
  2. package/dist/admin/chunks/SettingsPage-BOEeBbiM.mjs.map +1 -0
  3. package/dist/admin/chunks/SettingsPage-Mg2Ygywx.js +820 -0
  4. package/dist/admin/chunks/SettingsPage-Mg2Ygywx.js.map +1 -0
  5. package/dist/admin/chunks/de-Cm8mYdaO.mjs +64 -0
  6. package/dist/admin/chunks/de-Cm8mYdaO.mjs.map +1 -0
  7. package/dist/admin/chunks/de-nEMWvIiY.js +66 -0
  8. package/dist/admin/chunks/de-nEMWvIiY.js.map +1 -0
  9. package/dist/admin/chunks/dk-BeUFOegB.mjs +64 -0
  10. package/dist/admin/chunks/dk-BeUFOegB.mjs.map +1 -0
  11. package/dist/admin/chunks/dk-CYATLPVe.js +66 -0
  12. package/dist/admin/chunks/dk-CYATLPVe.js.map +1 -0
  13. package/dist/admin/chunks/en-CG5cUCbD.js +81 -0
  14. package/dist/admin/chunks/en-CG5cUCbD.js.map +1 -0
  15. package/dist/admin/chunks/en-eWSaCeOb.mjs +79 -0
  16. package/dist/admin/chunks/en-eWSaCeOb.mjs.map +1 -0
  17. package/dist/admin/chunks/es-CWsogTGm.js +66 -0
  18. package/dist/admin/chunks/es-CWsogTGm.js.map +1 -0
  19. package/dist/admin/chunks/es-DqF_IdAc.mjs +64 -0
  20. package/dist/admin/chunks/es-DqF_IdAc.mjs.map +1 -0
  21. package/dist/admin/chunks/fr-CC7UFcYd.js +66 -0
  22. package/dist/admin/chunks/fr-CC7UFcYd.js.map +1 -0
  23. package/dist/admin/chunks/fr-CyARbZ3c.mjs +64 -0
  24. package/dist/admin/chunks/fr-CyARbZ3c.mjs.map +1 -0
  25. package/dist/admin/chunks/index--VTS8j_L.mjs +2008 -0
  26. package/dist/admin/chunks/index--VTS8j_L.mjs.map +1 -0
  27. package/dist/admin/chunks/index-hJ67XV0K.js +2037 -0
  28. package/dist/admin/chunks/index-hJ67XV0K.js.map +1 -0
  29. package/dist/admin/chunks/ko-Ax4NSedM.mjs +63 -0
  30. package/dist/admin/chunks/ko-Ax4NSedM.mjs.map +1 -0
  31. package/dist/admin/chunks/ko-XwGmfhoq.js +65 -0
  32. package/dist/admin/chunks/ko-XwGmfhoq.js.map +1 -0
  33. package/dist/admin/chunks/pl-B-aqvMqL.mjs +64 -0
  34. package/dist/admin/chunks/pl-B-aqvMqL.mjs.map +1 -0
  35. package/dist/admin/chunks/pl-B_vzY_ZB.js +66 -0
  36. package/dist/admin/chunks/pl-B_vzY_ZB.js.map +1 -0
  37. package/dist/admin/chunks/ru-VkPjQ-Sk.mjs +66 -0
  38. package/dist/admin/chunks/ru-VkPjQ-Sk.mjs.map +1 -0
  39. package/dist/admin/chunks/ru-WzHcJV1f.js +68 -0
  40. package/dist/admin/chunks/ru-WzHcJV1f.js.map +1 -0
  41. package/dist/admin/chunks/tr-CcWp6u3w.js +66 -0
  42. package/dist/admin/chunks/tr-CcWp6u3w.js.map +1 -0
  43. package/dist/admin/chunks/tr-DcTR88c9.mjs +64 -0
  44. package/dist/admin/chunks/tr-DcTR88c9.mjs.map +1 -0
  45. package/dist/admin/chunks/uk-CMz6iPag.mjs +80 -0
  46. package/dist/admin/chunks/uk-CMz6iPag.mjs.map +1 -0
  47. package/dist/admin/chunks/uk-CO6JHYRC.js +82 -0
  48. package/dist/admin/chunks/uk-CO6JHYRC.js.map +1 -0
  49. package/dist/admin/chunks/zh-C9So4SGq.js +66 -0
  50. package/dist/admin/chunks/zh-C9So4SGq.js.map +1 -0
  51. package/dist/admin/chunks/zh-Hans-DnU2bhri.js +57 -0
  52. package/dist/admin/chunks/zh-Hans-DnU2bhri.js.map +1 -0
  53. package/dist/admin/chunks/zh-Hans-L3wsRegj.mjs +55 -0
  54. package/dist/admin/chunks/zh-Hans-L3wsRegj.mjs.map +1 -0
  55. package/dist/admin/chunks/zh-RZyMiPIs.mjs +64 -0
  56. package/dist/admin/chunks/zh-RZyMiPIs.mjs.map +1 -0
  57. package/dist/admin/index.js +20 -4
  58. package/dist/admin/index.js.map +1 -1
  59. package/dist/admin/index.mjs +15 -6
  60. package/dist/admin/index.mjs.map +1 -1
  61. package/dist/admin/src/components/CMHeaderActions.d.ts +1 -1
  62. package/dist/admin/src/components/LocaleListCell.d.ts +4 -4
  63. package/dist/admin/src/components/tests/CreateLocale.test.d.ts +1 -0
  64. package/dist/admin/src/components/tests/DeleteLocale.test.d.ts +1 -0
  65. package/dist/admin/src/components/tests/EditLocale.test.d.ts +1 -0
  66. package/dist/admin/src/components/tests/LocaleListCell.test.d.ts +1 -0
  67. package/dist/admin/src/contentReleasesHooks/releaseDetailsView.d.ts +1 -1
  68. package/dist/admin/src/pages/tests/SettingsPage.test.d.ts +1 -0
  69. package/dist/admin/tests/server.d.ts +1 -0
  70. package/dist/admin/tests/utils.d.ts +6 -0
  71. package/dist/server/index.js +3650 -3383
  72. package/dist/server/index.js.map +1 -1
  73. package/dist/server/index.mjs +3632 -3366
  74. package/dist/server/index.mjs.map +1 -1
  75. package/dist/server/src/services/localizations.d.ts +1 -1
  76. package/dist/server/src/services/localizations.d.ts.map +1 -1
  77. package/dist/shared/contracts/content-manager.d.ts +1 -1
  78. package/dist/shared/contracts/shared.d.ts +1 -1
  79. package/package.json +15 -13
  80. package/dist/_chunks/SettingsPage-D0hqaut-.js +0 -574
  81. package/dist/_chunks/SettingsPage-D0hqaut-.js.map +0 -1
  82. package/dist/_chunks/SettingsPage-D67CaQAB.mjs +0 -554
  83. package/dist/_chunks/SettingsPage-D67CaQAB.mjs.map +0 -1
  84. package/dist/_chunks/de-9eCAqqrB.mjs +0 -66
  85. package/dist/_chunks/de-9eCAqqrB.mjs.map +0 -1
  86. package/dist/_chunks/de-DtWiGdHl.js +0 -66
  87. package/dist/_chunks/de-DtWiGdHl.js.map +0 -1
  88. package/dist/_chunks/dk-2qBjxt-P.mjs +0 -66
  89. package/dist/_chunks/dk-2qBjxt-P.mjs.map +0 -1
  90. package/dist/_chunks/dk-D8C-casx.js +0 -66
  91. package/dist/_chunks/dk-D8C-casx.js.map +0 -1
  92. package/dist/_chunks/en-BKBz3tro.js +0 -81
  93. package/dist/_chunks/en-BKBz3tro.js.map +0 -1
  94. package/dist/_chunks/en-DlXfy6Gy.mjs +0 -81
  95. package/dist/_chunks/en-DlXfy6Gy.mjs.map +0 -1
  96. package/dist/_chunks/es-DS-XFGSw.js +0 -66
  97. package/dist/_chunks/es-DS-XFGSw.js.map +0 -1
  98. package/dist/_chunks/es-DlmMVaBG.mjs +0 -66
  99. package/dist/_chunks/es-DlmMVaBG.mjs.map +0 -1
  100. package/dist/_chunks/fr-3S6ke71d.mjs +0 -66
  101. package/dist/_chunks/fr-3S6ke71d.mjs.map +0 -1
  102. package/dist/_chunks/fr-BTjekDpq.js +0 -66
  103. package/dist/_chunks/fr-BTjekDpq.js.map +0 -1
  104. package/dist/_chunks/index-46DNtLCn.js +0 -1635
  105. package/dist/_chunks/index-46DNtLCn.js.map +0 -1
  106. package/dist/_chunks/index-CNR8i3KM.mjs +0 -1613
  107. package/dist/_chunks/index-CNR8i3KM.mjs.map +0 -1
  108. package/dist/_chunks/ko-DmcGUBQ3.js +0 -65
  109. package/dist/_chunks/ko-DmcGUBQ3.js.map +0 -1
  110. package/dist/_chunks/ko-qTjQ8IMw.mjs +0 -65
  111. package/dist/_chunks/ko-qTjQ8IMw.mjs.map +0 -1
  112. package/dist/_chunks/pl-B67TSHqT.mjs +0 -66
  113. package/dist/_chunks/pl-B67TSHqT.mjs.map +0 -1
  114. package/dist/_chunks/pl-Cn5RYonZ.js +0 -66
  115. package/dist/_chunks/pl-Cn5RYonZ.js.map +0 -1
  116. package/dist/_chunks/ru-BMBgVL3s.js +0 -68
  117. package/dist/_chunks/ru-BMBgVL3s.js.map +0 -1
  118. package/dist/_chunks/ru-hagMa57T.mjs +0 -68
  119. package/dist/_chunks/ru-hagMa57T.mjs.map +0 -1
  120. package/dist/_chunks/tr-CarUU76c.js +0 -66
  121. package/dist/_chunks/tr-CarUU76c.js.map +0 -1
  122. package/dist/_chunks/tr-Dw_jmkG-.mjs +0 -66
  123. package/dist/_chunks/tr-Dw_jmkG-.mjs.map +0 -1
  124. package/dist/_chunks/zh-57YM4amO.mjs +0 -66
  125. package/dist/_chunks/zh-57YM4amO.mjs.map +0 -1
  126. package/dist/_chunks/zh-CukOviB0.js +0 -66
  127. package/dist/_chunks/zh-CukOviB0.js.map +0 -1
  128. package/dist/_chunks/zh-Hans-DSHIXAa3.js +0 -57
  129. package/dist/_chunks/zh-Hans-DSHIXAa3.js.map +0 -1
  130. package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs +0 -57
  131. package/dist/_chunks/zh-Hans-Dyc-aR-h.mjs.map +0 -1
@@ -1,574 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const React = require("react");
5
- const strapiAdmin = require("@strapi/admin/strapi-admin");
6
- const designSystem = require("@strapi/design-system");
7
- const symbols = require("@strapi/icons/symbols");
8
- const reactIntl = require("react-intl");
9
- const icons = require("@strapi/icons");
10
- const yup = require("yup");
11
- const index = require("./index-46DNtLCn.js");
12
- function _interopNamespace(e) {
13
- if (e && e.__esModule)
14
- return e;
15
- const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
16
- if (e) {
17
- for (const k in e) {
18
- if (k !== "default") {
19
- const d = Object.getOwnPropertyDescriptor(e, k);
20
- Object.defineProperty(n, k, d.get ? d : {
21
- enumerable: true,
22
- get: () => e[k]
23
- });
24
- }
25
- }
26
- }
27
- n.default = e;
28
- return Object.freeze(n);
29
- }
30
- const React__namespace = /* @__PURE__ */ _interopNamespace(React);
31
- const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
32
- const isBaseQueryError = (error) => {
33
- return error.name !== void 0;
34
- };
35
- const CreateLocale = ({ disabled, variant = "default" }) => {
36
- const { formatMessage } = reactIntl.useIntl();
37
- const [visible, setVisible] = React__namespace.useState(false);
38
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Root, { open: visible, onOpenChange: setVisible, children: [
39
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
40
- designSystem.Button,
41
- {
42
- variant,
43
- disabled,
44
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Plus, {}),
45
- onClick: () => setVisible(true),
46
- size: "S",
47
- children: formatMessage({
48
- id: index.getTranslation("Settings.list.actions.add"),
49
- defaultMessage: "Add new locale"
50
- })
51
- }
52
- ) }),
53
- /* @__PURE__ */ jsxRuntime.jsx(CreateModal, { onClose: () => setVisible(false) })
54
- ] });
55
- };
56
- const LOCALE_SCHEMA = yup__namespace.object().shape({
57
- code: yup__namespace.string().nullable().required({
58
- id: "Settings.locales.modal.create.code.error",
59
- defaultMessage: "Please select a locale"
60
- }),
61
- name: yup__namespace.string().nullable().max(50, {
62
- id: "Settings.locales.modal.create.name.error.min",
63
- defaultMessage: "The locale display name can only be less than 50 characters."
64
- }).required({
65
- id: "Settings.locales.modal.create.name.error.required",
66
- defaultMessage: "Please give the locale a display name"
67
- }),
68
- isDefault: yup__namespace.boolean()
69
- });
70
- const initialFormValues = {
71
- code: "",
72
- name: "",
73
- isDefault: false
74
- };
75
- const CreateModal = ({ onClose }) => {
76
- const titleId = designSystem.useId();
77
- const { toggleNotification } = strapiAdmin.useNotification();
78
- const {
79
- _unstableFormatAPIError: formatAPIError,
80
- _unstableFormatValidationErrors: formatValidationErrors
81
- } = strapiAdmin.useAPIErrorHandler();
82
- const [createLocale] = index.useCreateLocaleMutation();
83
- const { formatMessage } = reactIntl.useIntl();
84
- const refetchPermissions = strapiAdmin.useAuth("CreateModal", (state) => state.refetchPermissions);
85
- const handleSubmit = async (values, helpers) => {
86
- try {
87
- const res = await createLocale(values);
88
- if ("error" in res) {
89
- if (isBaseQueryError(res.error) && res.error.name === "ValidationError") {
90
- helpers.setErrors(formatValidationErrors(res.error));
91
- } else {
92
- toggleNotification({ type: "danger", message: formatAPIError(res.error) });
93
- }
94
- return;
95
- }
96
- toggleNotification({
97
- type: "success",
98
- message: formatMessage({
99
- id: index.getTranslation("Settings.locales.modal.create.success"),
100
- defaultMessage: "Created locale"
101
- })
102
- });
103
- refetchPermissions();
104
- onClose();
105
- } catch (err) {
106
- toggleNotification({
107
- type: "danger",
108
- message: formatMessage({
109
- id: "notification.error",
110
- defaultMessage: "An error occurred, please try again"
111
- })
112
- });
113
- }
114
- };
115
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Content, { children: /* @__PURE__ */ jsxRuntime.jsxs(
116
- strapiAdmin.Form,
117
- {
118
- method: "POST",
119
- initialValues: initialFormValues,
120
- validationSchema: LOCALE_SCHEMA,
121
- onSubmit: handleSubmit,
122
- children: [
123
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Title, { children: formatMessage({
124
- id: index.getTranslation("Settings.list.actions.add"),
125
- defaultMessage: "Add new locale"
126
- }) }) }),
127
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.Root, { variant: "simple", defaultValue: "basic", children: [
128
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", children: [
129
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "beta", id: titleId, children: formatMessage({
130
- id: index.getTranslation("Settings.locales.modal.title"),
131
- defaultMessage: "Configuration"
132
- }) }),
133
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.List, { "aria-labelledby": titleId, children: [
134
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "basic", children: formatMessage({
135
- id: index.getTranslation("Settings.locales.modal.base"),
136
- defaultMessage: "Basic settings"
137
- }) }),
138
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "advanced", children: formatMessage({
139
- id: index.getTranslation("Settings.locales.modal.advanced"),
140
- defaultMessage: "Advanced settings"
141
- }) })
142
- ] })
143
- ] }),
144
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {}),
145
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { paddingTop: 7, paddingBottom: 7, children: [
146
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "basic", children: /* @__PURE__ */ jsxRuntime.jsx(BaseForm, {}) }),
147
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "advanced", children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedForm, {}) })
148
- ] })
149
- ] }) }),
150
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Footer, { children: [
151
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Close, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", children: formatMessage({ id: "app.components.Button.cancel", defaultMessage: "Cancel" }) }) }),
152
- /* @__PURE__ */ jsxRuntime.jsx(SubmitButton, {})
153
- ] })
154
- ]
155
- }
156
- ) });
157
- };
158
- const SubmitButton = () => {
159
- const { formatMessage } = reactIntl.useIntl();
160
- const isSubmitting = strapiAdmin.useForm("SubmitButton", (state) => state.isSubmitting);
161
- const modified = strapiAdmin.useForm("SubmitButton", (state) => state.modified);
162
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}), disabled: isSubmitting || !modified, children: formatMessage({ id: "global.save", defaultMessage: "Save" }) });
163
- };
164
- const BaseForm = ({ mode = "create" }) => {
165
- const { formatMessage } = reactIntl.useIntl();
166
- const { toggleNotification } = strapiAdmin.useNotification();
167
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
168
- const { data: defaultLocales, error } = index.useGetDefaultLocalesQuery();
169
- React__namespace.useEffect(() => {
170
- if (error) {
171
- toggleNotification({
172
- type: "danger",
173
- message: formatAPIError(error)
174
- });
175
- }
176
- }, [error, formatAPIError, toggleNotification]);
177
- if (!Array.isArray(defaultLocales)) {
178
- return null;
179
- }
180
- const options = defaultLocales.map((locale) => ({
181
- label: locale.name,
182
- value: locale.code
183
- }));
184
- const translatedForm = [
185
- {
186
- disabled: mode !== "create",
187
- label: {
188
- id: index.getTranslation("Settings.locales.modal.create.code.label"),
189
- defaultMessage: "Locales"
190
- },
191
- name: "code",
192
- options,
193
- placeholder: {
194
- id: "components.placeholder.select",
195
- defaultMessage: "Select"
196
- },
197
- required: true,
198
- size: 6,
199
- type: "enumeration"
200
- },
201
- {
202
- hint: {
203
- id: index.getTranslation("Settings.locales.modal.create.name.label.description"),
204
- defaultMessage: "Locale will be displayed under that name in the administration panel"
205
- },
206
- label: {
207
- id: index.getTranslation("Settings.locales.modal.create.name.label"),
208
- defaultMessage: "Locale display name"
209
- },
210
- name: "name",
211
- required: true,
212
- size: 6,
213
- type: "string"
214
- }
215
- ].map((field) => ({
216
- ...field,
217
- hint: field.hint ? formatMessage(field.hint) : void 0,
218
- label: formatMessage(field.label),
219
- placeholder: field.placeholder ? formatMessage(field.placeholder) : void 0
220
- }));
221
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: translatedForm.map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(FormRenderer, { ...field }) }, field.name)) });
222
- };
223
- const AdvancedForm = ({ isDefaultLocale }) => {
224
- const { formatMessage } = reactIntl.useIntl();
225
- const form = [
226
- {
227
- disabled: isDefaultLocale,
228
- hint: {
229
- id: index.getTranslation("Settings.locales.modal.advanced.setAsDefault.hint"),
230
- defaultMessage: "One default locale is required, change it by selecting another one"
231
- },
232
- label: {
233
- id: index.getTranslation("Settings.locales.modal.advanced.setAsDefault"),
234
- defaultMessage: "Set as default locale"
235
- },
236
- name: "isDefault",
237
- size: 6,
238
- type: "boolean"
239
- }
240
- ].map((field) => ({
241
- ...field,
242
- hint: field.hint ? formatMessage(field.hint) : void 0,
243
- label: formatMessage(field.label)
244
- }));
245
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: form.map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(FormRenderer, { ...field }) }, field.name)) });
246
- };
247
- const FormRenderer = (field) => {
248
- switch (field.type) {
249
- case "enumeration":
250
- return /* @__PURE__ */ jsxRuntime.jsx(EnumerationInput, { ...field });
251
- default:
252
- return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.InputRenderer, { ...field });
253
- }
254
- };
255
- const EnumerationInput = ({
256
- disabled,
257
- hint,
258
- label,
259
- name,
260
- options,
261
- placeholder,
262
- required
263
- }) => {
264
- const { value, error, onChange } = strapiAdmin.useField(name);
265
- const { data: defaultLocales = [] } = index.useGetDefaultLocalesQuery();
266
- const handleChange = (value2) => {
267
- if (Array.isArray(defaultLocales)) {
268
- const locale = defaultLocales.find((locale2) => locale2.code === value2);
269
- onChange(name, value2);
270
- onChange("name", locale.name);
271
- } else {
272
- onChange(name, value2);
273
- }
274
- };
275
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, hint, name, required, children: [
276
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: label }),
277
- /* @__PURE__ */ jsxRuntime.jsx(
278
- designSystem.SingleSelect,
279
- {
280
- disabled,
281
- onChange: handleChange,
282
- placeholder,
283
- value,
284
- children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: option.value, children: option.label }, option.value))
285
- }
286
- ),
287
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {}),
288
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
289
- ] });
290
- };
291
- const DeleteLocale = ({ id, name }) => {
292
- const { formatMessage } = reactIntl.useIntl();
293
- const { toggleNotification } = strapiAdmin.useNotification();
294
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
295
- const [visible, setVisible] = React__namespace.useState(false);
296
- const [deleteLocale] = index.useDeleteLocaleMutation();
297
- const handleConfirm = async () => {
298
- try {
299
- const res = await deleteLocale(id);
300
- if ("error" in res) {
301
- toggleNotification({ type: "danger", message: formatAPIError(res.error) });
302
- return;
303
- }
304
- toggleNotification({
305
- type: "success",
306
- message: formatMessage({
307
- id: index.getTranslation("Settings.locales.modal.delete.success"),
308
- defaultMessage: "Deleted locale"
309
- })
310
- });
311
- setVisible(false);
312
- } catch (err) {
313
- toggleNotification({
314
- type: "danger",
315
- message: formatMessage({
316
- id: "notification.error",
317
- defaultMessage: "An error occurred, please try again"
318
- })
319
- });
320
- }
321
- };
322
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Root, { open: visible, onOpenChange: setVisible, children: [
323
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
324
- designSystem.IconButton,
325
- {
326
- onClick: () => setVisible(true),
327
- label: formatMessage(
328
- {
329
- id: index.getTranslation("Settings.list.actions.delete"),
330
- defaultMessage: "Delete {name} locale"
331
- },
332
- {
333
- name
334
- }
335
- ),
336
- variant: "ghost",
337
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.Trash, {})
338
- }
339
- ) }),
340
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, { onConfirm: handleConfirm })
341
- ] });
342
- };
343
- const EditLocale = (props) => {
344
- const { formatMessage } = reactIntl.useIntl();
345
- const [visible, setVisible] = React__namespace.useState(false);
346
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
347
- /* @__PURE__ */ jsxRuntime.jsx(
348
- designSystem.IconButton,
349
- {
350
- onClick: () => setVisible(true),
351
- label: formatMessage(
352
- {
353
- id: index.getTranslation("Settings.list.actions.edit"),
354
- defaultMessage: "Edit {name} locale"
355
- },
356
- {
357
- name: props.name
358
- }
359
- ),
360
- variant: "ghost",
361
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.Pencil, {})
362
- }
363
- ),
364
- /* @__PURE__ */ jsxRuntime.jsx(EditModal, { ...props, open: visible, onOpenChange: setVisible })
365
- ] });
366
- };
367
- const EditModal = ({ id, code, isDefault, name, open, onOpenChange }) => {
368
- const { toggleNotification } = strapiAdmin.useNotification();
369
- const {
370
- _unstableFormatAPIError: formatAPIError,
371
- _unstableFormatValidationErrors: formatValidationErrors
372
- } = strapiAdmin.useAPIErrorHandler();
373
- const refetchPermissions = strapiAdmin.useAuth("EditModal", (state) => state.refetchPermissions);
374
- const { formatMessage } = reactIntl.useIntl();
375
- const titleId = designSystem.useId();
376
- const [updateLocale] = index.useUpdateLocaleMutation();
377
- const handleSubmit = async ({ code: _code, ...data }, helpers) => {
378
- try {
379
- const res = await updateLocale({
380
- id,
381
- ...data
382
- });
383
- if ("error" in res) {
384
- if (isBaseQueryError(res.error) && res.error.name === "ValidationError") {
385
- helpers.setErrors(formatValidationErrors(res.error));
386
- } else {
387
- toggleNotification({ type: "danger", message: formatAPIError(res.error) });
388
- }
389
- return;
390
- }
391
- toggleNotification({
392
- type: "success",
393
- message: formatMessage({
394
- id: index.getTranslation("Settings.locales.modal.edit.success"),
395
- defaultMessage: "Updated locale"
396
- })
397
- });
398
- refetchPermissions();
399
- onOpenChange(false);
400
- } catch (err) {
401
- toggleNotification({
402
- type: "danger",
403
- message: formatMessage({
404
- id: "notification.error",
405
- defaultMessage: "An error occurred, please try again"
406
- })
407
- });
408
- }
409
- };
410
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Root, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Content, { children: /* @__PURE__ */ jsxRuntime.jsxs(
411
- strapiAdmin.Form,
412
- {
413
- method: "PUT",
414
- onSubmit: handleSubmit,
415
- initialValues: {
416
- code,
417
- name,
418
- isDefault
419
- },
420
- validationSchema: LOCALE_SCHEMA,
421
- children: [
422
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Title, { children: formatMessage(
423
- {
424
- id: index.getTranslation("Settings.list.actions.edit"),
425
- defaultMessage: "Edit a locale"
426
- },
427
- {
428
- name
429
- }
430
- ) }) }),
431
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.Root, { variant: "simple", defaultValue: "basic", children: [
432
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", children: [
433
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "beta", id: titleId, children: formatMessage({
434
- id: index.getTranslation("Settings.locales.modal.title"),
435
- defaultMessage: "Configuration"
436
- }) }),
437
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tabs.List, { "aria-labelledby": titleId, children: [
438
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "basic", children: formatMessage({
439
- id: index.getTranslation("Settings.locales.modal.base"),
440
- defaultMessage: "Basic settings"
441
- }) }),
442
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Trigger, { value: "advanced", children: formatMessage({
443
- id: index.getTranslation("Settings.locales.modal.advanced"),
444
- defaultMessage: "Advanced settings"
445
- }) })
446
- ] })
447
- ] }),
448
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Divider, {}),
449
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { paddingTop: 7, paddingBottom: 7, children: [
450
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "basic", children: /* @__PURE__ */ jsxRuntime.jsx(BaseForm, { mode: "edit" }) }),
451
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tabs.Content, { value: "advanced", children: /* @__PURE__ */ jsxRuntime.jsx(AdvancedForm, { isDefaultLocale: isDefault }) })
452
- ] })
453
- ] }) }),
454
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Footer, { children: [
455
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Close, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", children: formatMessage({ id: "app.components.Button.cancel", defaultMessage: "Cancel" }) }) }),
456
- /* @__PURE__ */ jsxRuntime.jsx(SubmitButton, {})
457
- ] })
458
- ]
459
- }
460
- ) }) });
461
- };
462
- const LocaleTable = ({ locales = [], canDelete, canUpdate }) => {
463
- const [editLocaleId, setEditLocaleId] = React__namespace.useState();
464
- const { formatMessage } = reactIntl.useIntl();
465
- const handleClick = (localeId) => () => {
466
- if (canUpdate) {
467
- setEditLocaleId(localeId);
468
- }
469
- };
470
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Table, { colCount: 4, rowCount: locales.length + 1, children: [
471
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Thead, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
472
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({
473
- id: index.getTranslation("Settings.locales.row.id"),
474
- defaultMessage: "ID"
475
- }) }) }),
476
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({
477
- id: index.getTranslation("Settings.locales.row.displayName"),
478
- defaultMessage: "Display name"
479
- }) }) }),
480
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", textColor: "neutral600", children: formatMessage({
481
- id: index.getTranslation("Settings.locales.row.default-locale"),
482
- defaultMessage: "Default locale"
483
- }) }) }),
484
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Th, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { children: "Actions" }) })
485
- ] }) }),
486
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tbody, { children: locales.map((locale) => /* @__PURE__ */ jsxRuntime.jsxs(React__namespace.Fragment, { children: [
487
- /* @__PURE__ */ jsxRuntime.jsxs(
488
- designSystem.Tr,
489
- {
490
- onClick: handleClick(locale.id),
491
- style: { cursor: canUpdate ? "pointer" : "default" },
492
- children: [
493
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: locale.id }) }),
494
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: locale.name }) }),
495
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: locale.isDefault ? formatMessage({
496
- id: index.getTranslation("Settings.locales.default"),
497
- defaultMessage: "Default"
498
- }) : null }) }),
499
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 1, justifyContent: "flex-end", onClick: (e) => e.stopPropagation(), children: [
500
- canUpdate && /* @__PURE__ */ jsxRuntime.jsx(EditLocale, { ...locale }),
501
- canDelete && !locale.isDefault && /* @__PURE__ */ jsxRuntime.jsx(DeleteLocale, { ...locale })
502
- ] }) })
503
- ]
504
- }
505
- ),
506
- /* @__PURE__ */ jsxRuntime.jsx(
507
- EditModal,
508
- {
509
- ...locale,
510
- onOpenChange: () => setEditLocaleId(void 0),
511
- open: editLocaleId === locale.id
512
- }
513
- )
514
- ] }, locale.id)) })
515
- ] });
516
- };
517
- const SettingsPage = () => {
518
- const { formatMessage } = reactIntl.useIntl();
519
- const { toggleNotification } = strapiAdmin.useNotification();
520
- const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
521
- const { data: locales, isLoading: isLoadingLocales, error } = index.useGetLocalesQuery();
522
- const {
523
- isLoading: isLoadingRBAC,
524
- allowedActions: { canUpdate, canCreate, canDelete }
525
- } = strapiAdmin.useRBAC(index.PERMISSIONS);
526
- React__namespace.useEffect(() => {
527
- if (error) {
528
- toggleNotification({
529
- type: "danger",
530
- message: formatAPIError(error)
531
- });
532
- }
533
- }, [error, formatAPIError, toggleNotification]);
534
- const isLoading = isLoadingLocales || isLoadingRBAC;
535
- if (isLoading) {
536
- return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
537
- }
538
- if (error || !Array.isArray(locales)) {
539
- return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Error, {});
540
- }
541
- return /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Page.Main, { tabIndex: -1, children: [
542
- /* @__PURE__ */ jsxRuntime.jsx(
543
- strapiAdmin.Layouts.Header,
544
- {
545
- primaryAction: /* @__PURE__ */ jsxRuntime.jsx(CreateLocale, { disabled: !canCreate }),
546
- title: formatMessage({
547
- id: index.getTranslation("plugin.name"),
548
- defaultMessage: "Internationalization"
549
- }),
550
- subtitle: formatMessage({
551
- id: index.getTranslation("Settings.list.description"),
552
- defaultMessage: "Configure the settings"
553
- })
554
- }
555
- ),
556
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Layouts.Content, { children: locales.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(LocaleTable, { locales, canDelete, canUpdate }) : /* @__PURE__ */ jsxRuntime.jsx(
557
- designSystem.EmptyStateLayout,
558
- {
559
- icon: /* @__PURE__ */ jsxRuntime.jsx(symbols.EmptyDocuments, { width: void 0, height: void 0 }),
560
- content: formatMessage({
561
- id: index.getTranslation("Settings.list.empty.title"),
562
- defaultMessage: "There are no locales"
563
- }),
564
- action: /* @__PURE__ */ jsxRuntime.jsx(CreateLocale, { disabled: !canCreate, variant: "secondary" })
565
- }
566
- ) })
567
- ] });
568
- };
569
- const ProtectedSettingsPage = () => {
570
- return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Protect, { permissions: index.PERMISSIONS.read, children: /* @__PURE__ */ jsxRuntime.jsx(SettingsPage, {}) });
571
- };
572
- exports.ProtectedSettingsPage = ProtectedSettingsPage;
573
- exports.SettingsPage = SettingsPage;
574
- //# sourceMappingURL=SettingsPage-D0hqaut-.js.map