strapi-plugin-oidc 1.0.4 → 1.0.6

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.
@@ -1,11 +1,11 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { Routes, Route } from "react-router-dom";
3
3
  import { useFetchClient, Page, Layouts } from "@strapi/strapi/admin";
4
- import { useState, useCallback, memo, useEffect } from "react";
4
+ import { useState, useCallback, useEffect, memo } from "react";
5
5
  import { Typography, Flex, Box, MultiSelect, MultiSelectOption, Field, Button, Divider, Thead, Tr, Th, Tbody, Td, Dialog, IconButton, Pagination, PreviousLink, PageLink, NextLink, Table, Alert } from "@strapi/design-system";
6
6
  import { Plus, Trash, WarningCircle } from "@strapi/icons";
7
7
  import { useIntl } from "react-intl";
8
- import { p as pluginId } from "./index-BuuCScSN.mjs";
8
+ import { p as pluginId } from "./index-YOG9buUz.mjs";
9
9
  import en from "./en-f0TxVfx7.mjs";
10
10
  import styled from "styled-components";
11
11
  function getTrad(id) {
@@ -24,19 +24,22 @@ function Role({ oidcRoles, roles, onChangeRole }) {
24
24
  {
25
25
  withTags: true,
26
26
  placeholder: formatMessage(getTrad("roles.placeholder")),
27
- value: oidcRole["role"] ? oidcRole["role"].map((r) => r.toString()) : [],
27
+ value: oidcRole.role ? oidcRole.role.map((r) => String(r)) : [],
28
28
  onChange: (value) => {
29
29
  if (value && value.length > 0) {
30
- onChangeRole(value, oidcRole["oauth_type"]);
30
+ onChangeRole(value, oidcRole.oauth_type);
31
31
  }
32
32
  },
33
- children: roles.map((role) => /* @__PURE__ */ jsx(MultiSelectOption, { value: role.id.toString(), children: role.name }, role.id))
33
+ children: roles.map((role) => /* @__PURE__ */ jsx(MultiSelectOption, { value: String(role.id), children: role.name }, role.id))
34
34
  }
35
- ) }, oidcRole["oauth_type"])) })
35
+ ) }, oidcRole.oauth_type)) })
36
36
  ] });
37
37
  }
38
38
  const CustomTable = styled(Table)`
39
- th, td, th span, td span {
39
+ th,
40
+ td,
41
+ th span,
42
+ td span {
40
43
  font-size: 1.3rem !important;
41
44
  }
42
45
  `;
@@ -50,7 +53,15 @@ const LocalizedDate = ({ date }) => {
50
53
  minute: "2-digit"
51
54
  }).format(new Date(date));
52
55
  };
53
- function Whitelist({ users, roles, oidcRoles = [], useWhitelist, loading, onSave, onDelete }) {
56
+ function Whitelist({
57
+ users,
58
+ roles,
59
+ oidcRoles = [],
60
+ useWhitelist,
61
+ loading,
62
+ onSave,
63
+ onDelete
64
+ }) {
54
65
  const [email, setEmail] = useState("");
55
66
  const [selectedRoles, setSelectedRoles] = useState([]);
56
67
  const [page, setPage] = useState(1);
@@ -61,9 +72,7 @@ function Whitelist({ users, roles, oidcRoles = [], useWhitelist, loading, onSave
61
72
  const onSaveEmail = useCallback(async () => {
62
73
  const emailText = email.trim();
63
74
  if (users.some((user) => user.email === emailText)) {
64
- alert(
65
- formatMessage(getTrad("whitelist.error.unique"))
66
- );
75
+ alert(formatMessage(getTrad("whitelist.error.unique")));
67
76
  } else {
68
77
  await onSave(emailText, selectedRoles);
69
78
  setEmail("");
@@ -122,61 +131,103 @@ function Whitelist({ users, roles, oidcRoles = [], useWhitelist, loading, onSave
122
131
  /* @__PURE__ */ jsx(Th, { style: { paddingRight: 0 }, children: " " })
123
132
  ] }) }),
124
133
  /* @__PURE__ */ jsx(Tbody, { children: users.length === 0 ? /* @__PURE__ */ jsx(Tr, { children: /* @__PURE__ */ jsx(Td, { colSpan: 5, children: /* @__PURE__ */ jsx(Flex, { justifyContent: "center", padding: 4, children: /* @__PURE__ */ jsx(Typography, { textColor: "neutral600", children: formatMessage(getTrad("whitelist.table.empty")) }) }) }) }) : paginatedUsers.map((user, index) => {
125
- let userRolesNames = (user.roles || []).map((roleId) => {
126
- const r = roles.find((ro) => ro.id.toString() === roleId.toString());
134
+ const getRoleNames = (roleIds) => roleIds.map((roleId) => {
135
+ const r = roles.find((ro) => String(ro.id) === String(roleId));
127
136
  return r ? r.name : roleId;
128
137
  }).join(", ");
138
+ let userRolesNames = getRoleNames(user.roles || []);
129
139
  if (!userRolesNames) {
130
140
  const defaultRolesIds = oidcRoles.reduce((acc, oidc) => {
131
- if (oidc.role) {
132
- acc.push(...oidc.role);
133
- }
141
+ if (oidc.role) acc.push(...oidc.role);
134
142
  return acc;
135
143
  }, []);
136
- userRolesNames = defaultRolesIds.map((roleId) => {
137
- const r = roles.find((ro) => ro.id.toString() === roleId.toString());
138
- return r ? r.name : roleId;
139
- }).join(", ");
144
+ userRolesNames = getRoleNames(defaultRolesIds);
140
145
  }
141
146
  return /* @__PURE__ */ jsxs(Tr, { children: [
142
147
  /* @__PURE__ */ jsx(Td, { children: index + 1 + (page - 1) * PAGE_SIZE }),
143
148
  /* @__PURE__ */ jsx(Td, { children: user.email }),
144
149
  /* @__PURE__ */ jsx(Td, { children: userRolesNames || "-" }),
145
150
  /* @__PURE__ */ jsx(Td, { children: /* @__PURE__ */ jsx(LocalizedDate, { date: user.createdAt }) }),
146
- /* @__PURE__ */ jsx(Td, { style: { paddingRight: 0 }, children: /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", onClick: (e) => e.stopPropagation(), style: { width: "100%" }, children: /* @__PURE__ */ jsxs(Dialog.Root, { children: [
147
- /* @__PURE__ */ jsx(Dialog.Trigger, { children: /* @__PURE__ */ jsx(IconButton, { label: formatMessage(getTrad("whitelist.delete.label")), withTooltip: false, children: /* @__PURE__ */ jsx(Trash, {}) }) }),
148
- /* @__PURE__ */ jsxs(Dialog.Content, { children: [
149
- /* @__PURE__ */ jsx(Dialog.Header, { children: formatMessage(getTrad("whitelist.delete.title")) }),
150
- /* @__PURE__ */ jsx(Dialog.Body, { icon: /* @__PURE__ */ jsx(WarningCircle, { fill: "danger600" }), children: /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "center", gap: 2, children: [
151
- /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { id: "confirm-description", children: formatMessage(getTrad("whitelist.delete.description")) }) }),
152
- /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "bold", children: user.email }) }),
153
- /* @__PURE__ */ jsx(Flex, { justifyContent: "center", marginTop: 2, children: /* @__PURE__ */ jsx(Typography, { variant: "pi", textColor: "neutral600", children: formatMessage(getTrad("whitelist.delete.note")) }) })
154
- ] }) }),
155
- /* @__PURE__ */ jsxs(Dialog.Footer, { children: [
156
- /* @__PURE__ */ jsx(Dialog.Cancel, { children: /* @__PURE__ */ jsx(Button, { fullWidth: true, variant: "tertiary", children: formatMessage(getTrad("page.cancel")) }) }),
157
- /* @__PURE__ */ jsx(Dialog.Action, { children: /* @__PURE__ */ jsx(Button, { fullWidth: true, variant: "danger-light", onClick: () => onDelete(user.email), children: formatMessage(getTrad("page.ok")) }) })
151
+ /* @__PURE__ */ jsx(Td, { style: { paddingRight: 0 }, children: /* @__PURE__ */ jsx(
152
+ Flex,
153
+ {
154
+ justifyContent: "flex-end",
155
+ onClick: (e) => e.stopPropagation(),
156
+ style: { width: "100%" },
157
+ children: /* @__PURE__ */ jsxs(Dialog.Root, { children: [
158
+ /* @__PURE__ */ jsx(Dialog.Trigger, { children: /* @__PURE__ */ jsx(
159
+ IconButton,
160
+ {
161
+ label: formatMessage(getTrad("whitelist.delete.label")),
162
+ withTooltip: false,
163
+ children: /* @__PURE__ */ jsx(Trash, {})
164
+ }
165
+ ) }),
166
+ /* @__PURE__ */ jsxs(Dialog.Content, { children: [
167
+ /* @__PURE__ */ jsx(Dialog.Header, { children: formatMessage(getTrad("whitelist.delete.title")) }),
168
+ /* @__PURE__ */ jsx(Dialog.Body, { icon: /* @__PURE__ */ jsx(WarningCircle, { fill: "danger600" }), children: /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "center", gap: 2, children: [
169
+ /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { id: "confirm-description", children: formatMessage(getTrad("whitelist.delete.description")) }) }),
170
+ /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { variant: "omega", fontWeight: "bold", children: user.email }) }),
171
+ /* @__PURE__ */ jsx(Flex, { justifyContent: "center", marginTop: 2, children: /* @__PURE__ */ jsx(Typography, { variant: "pi", textColor: "neutral600", children: formatMessage(getTrad("whitelist.delete.note")) }) })
172
+ ] }) }),
173
+ /* @__PURE__ */ jsxs(Dialog.Footer, { children: [
174
+ /* @__PURE__ */ jsx(Dialog.Cancel, { children: /* @__PURE__ */ jsx(Button, { fullWidth: true, variant: "tertiary", children: formatMessage(getTrad("page.cancel")) }) }),
175
+ /* @__PURE__ */ jsx(Dialog.Action, { children: /* @__PURE__ */ jsx(
176
+ Button,
177
+ {
178
+ fullWidth: true,
179
+ variant: "danger-light",
180
+ onClick: () => onDelete(user.email),
181
+ children: formatMessage(getTrad("page.ok"))
182
+ }
183
+ ) })
184
+ ] })
185
+ ] })
158
186
  ] })
159
- ] })
160
- ] }) }) })
187
+ }
188
+ ) })
161
189
  ] }, user.email);
162
190
  }) })
163
191
  ] }),
164
192
  pageCount > 1 && /* @__PURE__ */ jsx(Box, { paddingTop: 4, children: /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", children: /* @__PURE__ */ jsxs(Pagination, { activePage: page, pageCount, children: [
165
- /* @__PURE__ */ jsx(PreviousLink, { href: "#", onClick: (e) => {
166
- e.preventDefault();
167
- setPage((p) => Math.max(1, p - 1));
168
- }, children: "Go to previous page" }),
169
- Array.from({ length: pageCount }).map((_, i) => /* @__PURE__ */ jsxs(PageLink, { number: i + 1, href: "#", onClick: (e) => {
170
- e.preventDefault();
171
- setPage(i + 1);
172
- }, children: [
173
- "Go to page ",
193
+ /* @__PURE__ */ jsx(
194
+ PreviousLink,
195
+ {
196
+ href: "#",
197
+ onClick: (e) => {
198
+ e.preventDefault();
199
+ setPage((p) => Math.max(1, p - 1));
200
+ },
201
+ children: "Go to previous page"
202
+ }
203
+ ),
204
+ Array.from({ length: pageCount }).map((_, i) => /* @__PURE__ */ jsxs(
205
+ PageLink,
206
+ {
207
+ number: i + 1,
208
+ href: "#",
209
+ onClick: (e) => {
210
+ e.preventDefault();
211
+ setPage(i + 1);
212
+ },
213
+ children: [
214
+ "Go to page ",
215
+ i + 1
216
+ ]
217
+ },
174
218
  i + 1
175
- ] }, i + 1)),
176
- /* @__PURE__ */ jsx(NextLink, { href: "#", onClick: (e) => {
177
- e.preventDefault();
178
- setPage((p) => Math.min(pageCount, p + 1));
179
- }, children: "Go to next page" })
219
+ )),
220
+ /* @__PURE__ */ jsx(
221
+ NextLink,
222
+ {
223
+ href: "#",
224
+ onClick: (e) => {
225
+ e.preventDefault();
226
+ setPage((p) => Math.min(pageCount, p + 1));
227
+ },
228
+ children: "Go to next page"
229
+ }
230
+ )
180
231
  ] }) }) })
181
232
  ] }) });
182
233
  }
@@ -297,9 +348,12 @@ function CustomSwitch({ checked, onChange, label, disabled }) {
297
348
  label && /* @__PURE__ */ jsx(Typography, { variant: "pi", fontWeight: "bold", textColor: disabled ? "neutral500" : "neutral800", children: label })
298
349
  ] });
299
350
  }
300
- function HomePage() {
301
- const { formatMessage } = useIntl();
351
+ function useOidcSettings() {
352
+ const { get, put } = useFetchClient();
302
353
  const [loading, setLoading] = useState(false);
354
+ const [showSuccess, setSuccess] = useState(false);
355
+ const [showError, setError] = useState(false);
356
+ const [showMatched, setMatched] = useState(0);
303
357
  const [initialOidcRoles, setInitialOIDCRoles] = useState([]);
304
358
  const [oidcRoles, setOIDCRoles] = useState([]);
305
359
  const [roles, setRoles] = useState([]);
@@ -309,10 +363,6 @@ function HomePage() {
309
363
  const [enforceOIDC, setEnforceOIDC] = useState(false);
310
364
  const [initialUsers, setInitialUsers] = useState([]);
311
365
  const [users, setUsers] = useState([]);
312
- const [showSuccess, setSuccess] = useState(false);
313
- const [showError, setError] = useState(false);
314
- const [showMatched, setMatched] = useState(0);
315
- const { get, put, post, del } = useFetchClient();
316
366
  useEffect(() => {
317
367
  get(`/strapi-plugin-oidc/oidc-roles`).then((response) => {
318
368
  setOIDCRoles(response.data);
@@ -329,31 +379,51 @@ function HomePage() {
329
379
  setEnforceOIDC(response.data.enforceOIDC);
330
380
  setInitialEnforceOIDC(response.data.enforceOIDC);
331
381
  });
332
- }, [setOIDCRoles, setRoles]);
382
+ }, [get]);
333
383
  const onChangeRole = (values, oidcId) => {
334
- for (const oidcRole of oidcRoles) {
335
- if (oidcRole["oauth_type"] === oidcId) {
336
- oidcRole["role"] = values;
337
- }
384
+ const updatedRoles = oidcRoles.map(
385
+ (role) => role.oauth_type === oidcId ? { ...role, role: values } : role
386
+ );
387
+ setOIDCRoles(updatedRoles);
388
+ };
389
+ const onRegisterWhitelist = async (email, selectedRoles) => {
390
+ const newUser = { email, roles: selectedRoles, createdAt: (/* @__PURE__ */ new Date()).toISOString() };
391
+ setUsers([...users, newUser]);
392
+ };
393
+ const onDeleteWhitelist = async (email) => {
394
+ const updatedUsers = users.filter((u) => u.email !== email);
395
+ setUsers(updatedUsers);
396
+ if (useWhitelist && updatedUsers.length === 0) {
397
+ setEnforceOIDC(false);
398
+ }
399
+ };
400
+ const onToggleWhitelist = (e) => {
401
+ const checked = e.target.checked;
402
+ setUseWhitelist(checked);
403
+ if (checked && users.length === 0) {
404
+ setEnforceOIDC(false);
338
405
  }
339
- setOIDCRoles(oidcRoles.slice());
340
406
  };
407
+ const onToggleEnforce = (e) => {
408
+ setEnforceOIDC(e.target.checked);
409
+ };
410
+ const isDirty = useWhitelist !== initialUseWhitelist || enforceOIDC !== initialEnforceOIDC || JSON.stringify(oidcRoles) !== JSON.stringify(initialOidcRoles) || JSON.stringify(users) !== JSON.stringify(initialUsers);
341
411
  const onSaveAll = async () => {
342
412
  setLoading(true);
343
413
  try {
344
414
  await put("/strapi-plugin-oidc/oidc-roles", {
345
415
  roles: oidcRoles.map((role) => ({
346
- "oauth_type": role["oauth_type"],
347
- role: role["role"]
416
+ oauth_type: role.oauth_type,
417
+ role: role.role
348
418
  }))
349
419
  });
420
+ const syncResponse = await put("/strapi-plugin-oidc/whitelist/sync", {
421
+ users: users.map((u) => ({ email: u.email, roles: u.roles }))
422
+ });
350
423
  await put("/strapi-plugin-oidc/whitelist/settings", {
351
424
  useWhitelist,
352
425
  enforceOIDC
353
426
  });
354
- const syncResponse = await put("/strapi-plugin-oidc/whitelist/sync", {
355
- users: users.map((u) => ({ email: u.email, roles: u.roles }))
356
- });
357
427
  setInitialOIDCRoles(JSON.parse(JSON.stringify(oidcRoles)));
358
428
  setInitialUseWhitelist(useWhitelist);
359
429
  setInitialEnforceOIDC(enforceOIDC);
@@ -361,43 +431,51 @@ function HomePage() {
361
431
  setUsers(getResponse.data.whitelistUsers);
362
432
  setInitialUsers(JSON.parse(JSON.stringify(getResponse.data.whitelistUsers)));
363
433
  });
364
- if (syncResponse.data && syncResponse.data.matchedExistingUsersCount > 0) {
434
+ if (syncResponse.data?.matchedExistingUsersCount > 0) {
365
435
  setMatched(syncResponse.data.matchedExistingUsersCount);
366
- setTimeout(() => {
367
- setMatched(0);
368
- }, 3e3);
436
+ setTimeout(() => setMatched(0), 3e3);
369
437
  } else {
370
438
  setSuccess(true);
371
- setTimeout(() => {
372
- setSuccess(false);
373
- }, 3e3);
439
+ setTimeout(() => setSuccess(false), 3e3);
374
440
  }
375
441
  } catch (e) {
376
442
  console.error(e);
377
443
  setError(true);
378
- setTimeout(() => {
379
- setError(false);
380
- }, 3e3);
444
+ setTimeout(() => setError(false), 3e3);
381
445
  } finally {
382
446
  setLoading(false);
383
447
  }
384
448
  };
385
- const onRegisterWhitelist = async (email, selectedRoles) => {
386
- const newUser = { email, roles: selectedRoles, createdAt: (/* @__PURE__ */ new Date()).toISOString() };
387
- setUsers([...users, newUser]);
388
- };
389
- const onDeleteWhitelist = async (email) => {
390
- setUsers(users.filter((u) => u.email !== email));
391
- };
392
- const onToggleWhitelist = (e) => {
393
- const newValue = e.target.checked;
394
- setUseWhitelist(newValue);
395
- };
396
- const onToggleEnforce = (e) => {
397
- const newValue = e.target.checked;
398
- setEnforceOIDC(newValue);
449
+ return {
450
+ state: {
451
+ loading,
452
+ showSuccess,
453
+ showError,
454
+ showMatched,
455
+ oidcRoles,
456
+ roles,
457
+ useWhitelist,
458
+ enforceOIDC,
459
+ initialEnforceOIDC,
460
+ users,
461
+ isDirty
462
+ },
463
+ actions: {
464
+ setSuccess,
465
+ setError,
466
+ setMatched,
467
+ onChangeRole,
468
+ onRegisterWhitelist,
469
+ onDeleteWhitelist,
470
+ onToggleWhitelist,
471
+ onToggleEnforce,
472
+ onSaveAll
473
+ }
399
474
  };
400
- const isDirty = useWhitelist !== initialUseWhitelist || enforceOIDC !== initialEnforceOIDC || JSON.stringify(oidcRoles) !== JSON.stringify(initialOidcRoles) || JSON.stringify(users) !== JSON.stringify(initialUsers);
475
+ }
476
+ function HomePage() {
477
+ const { formatMessage } = useIntl();
478
+ const { state, actions } = useOidcSettings();
401
479
  return /* @__PURE__ */ jsxs(Page.Protect, { permissions: [{ action: "plugin::strapi-plugin-oidc.read", subject: null }], children: [
402
480
  /* @__PURE__ */ jsx(
403
481
  Layouts.Header,
@@ -406,18 +484,18 @@ function HomePage() {
406
484
  subtitle: formatMessage(getTrad("page.title"))
407
485
  }
408
486
  ),
409
- showSuccess && /* @__PURE__ */ jsx(SuccessAlertMessage, { onClose: () => setSuccess(false) }),
410
- showError && /* @__PURE__ */ jsx(ErrorAlertMessage, { onClose: () => setError(false) }),
411
- showMatched > 0 && /* @__PURE__ */ jsx(MatchedUserAlertMessage, { count: showMatched, onClose: () => setMatched(0) }),
487
+ state.showSuccess && /* @__PURE__ */ jsx(SuccessAlertMessage, { onClose: () => actions.setSuccess(false) }),
488
+ state.showError && /* @__PURE__ */ jsx(ErrorAlertMessage, { onClose: () => actions.setError(false) }),
489
+ state.showMatched > 0 && /* @__PURE__ */ jsx(MatchedUserAlertMessage, { count: state.showMatched, onClose: () => actions.setMatched(0) }),
412
490
  /* @__PURE__ */ jsx(Layouts.Content, { children: /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: [
413
491
  /* @__PURE__ */ jsxs(Box, { background: "neutral0", hasRadius: true, shadow: "filterShadow", padding: 6, children: [
414
492
  /* @__PURE__ */ jsx(Box, { paddingBottom: 4, children: /* @__PURE__ */ jsx(Typography, { variant: "beta", tag: "h2", children: formatMessage(getTrad("roles.title")) }) }),
415
493
  /* @__PURE__ */ jsx(
416
494
  Role,
417
495
  {
418
- roles,
419
- oidcRoles,
420
- onChangeRole
496
+ roles: state.roles,
497
+ oidcRoles: state.oidcRoles,
498
+ onChangeRole: actions.onChangeRole
421
499
  }
422
500
  )
423
501
  ] }),
@@ -427,22 +505,22 @@ function HomePage() {
427
505
  /* @__PURE__ */ jsx(
428
506
  CustomSwitch,
429
507
  {
430
- checked: useWhitelist,
431
- onChange: onToggleWhitelist,
432
- label: useWhitelist ? formatMessage(getTrad("whitelist.toggle.enabled")) : formatMessage(getTrad("whitelist.toggle.disabled"))
508
+ checked: state.useWhitelist,
509
+ onChange: actions.onToggleWhitelist,
510
+ label: state.useWhitelist ? formatMessage(getTrad("whitelist.toggle.enabled")) : formatMessage(getTrad("whitelist.toggle.disabled"))
433
511
  }
434
512
  )
435
513
  ] }),
436
514
  /* @__PURE__ */ jsx(
437
515
  Whitelist,
438
516
  {
439
- loading,
440
- users,
441
- roles,
442
- oidcRoles,
443
- useWhitelist,
444
- onSave: onRegisterWhitelist,
445
- onDelete: onDeleteWhitelist
517
+ loading: state.loading,
518
+ users: state.users,
519
+ roles: state.roles,
520
+ oidcRoles: state.oidcRoles,
521
+ useWhitelist: state.useWhitelist,
522
+ onSave: actions.onRegisterWhitelist,
523
+ onDelete: actions.onDeleteWhitelist
446
524
  }
447
525
  )
448
526
  ] }),
@@ -452,14 +530,14 @@ function HomePage() {
452
530
  /* @__PURE__ */ jsx(
453
531
  CustomSwitch,
454
532
  {
455
- checked: enforceOIDC,
456
- onChange: onToggleEnforce,
457
- disabled: useWhitelist && users.length === 0,
458
- label: enforceOIDC ? formatMessage(getTrad("enforce.toggle.enabled")) : formatMessage(getTrad("enforce.toggle.disabled"))
533
+ checked: state.enforceOIDC,
534
+ onChange: actions.onToggleEnforce,
535
+ disabled: state.useWhitelist && state.users.length === 0,
536
+ label: state.enforceOIDC ? formatMessage(getTrad("enforce.toggle.enabled")) : formatMessage(getTrad("enforce.toggle.disabled"))
459
537
  }
460
538
  )
461
539
  ] }),
462
- enforceOIDC && enforceOIDC !== initialEnforceOIDC && /* @__PURE__ */ jsx(Box, { background: "danger100", padding: 3, hasRadius: true, children: /* @__PURE__ */ jsxs(Flex, { gap: 3, alignItems: "center", children: [
540
+ state.enforceOIDC && state.enforceOIDC !== state.initialEnforceOIDC && /* @__PURE__ */ jsx(Box, { background: "danger100", padding: 3, hasRadius: true, children: /* @__PURE__ */ jsxs(Flex, { gap: 3, alignItems: "center", children: [
463
541
  /* @__PURE__ */ jsx(WarningCircle, { fill: "danger600" }),
464
542
  /* @__PURE__ */ jsx(Typography, { textColor: "danger600", children: formatMessage(getTrad("enforce.warning")) })
465
543
  ] }) })
@@ -468,9 +546,9 @@ function HomePage() {
468
546
  Button,
469
547
  {
470
548
  size: "L",
471
- onClick: onSaveAll,
472
- disabled: !isDirty || loading,
473
- loading,
549
+ onClick: actions.onSaveAll,
550
+ disabled: !state.isDirty || state.loading,
551
+ loading: state.loading,
474
552
  children: formatMessage(getTrad("page.save"))
475
553
  }
476
554
  ) })
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const index = require("./index-C0GkDnGG.js");
3
+ const index = require("./index-BITZIRCD.js");
4
4
  exports.default = index.index;
@@ -1,4 +1,4 @@
1
- import { i } from "./index-BuuCScSN.mjs";
1
+ import { i } from "./index-YOG9buUz.mjs";
2
2
  export {
3
3
  i as default
4
4
  };