From a2929025a1155c7d5102903542f5695eede99aed Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Tue, 3 Feb 2026 14:24:23 +0100 Subject: [PATCH 1/5] Able to validate user --- .../pendingMembers/PendingMembers.jsx | 131 ++++++------------ 1 file changed, 44 insertions(+), 87 deletions(-) diff --git a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx index bb1e1ac..0a964cd 100644 --- a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx +++ b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from "react"; +import React, {useState, useEffect} from "react"; import Button from "../../../../components/ui/button/button.jsx"; import styles from "./PendingMembers.module.css"; @@ -8,104 +8,61 @@ import validateUser from "../../../../utils/users/validateUser.js"; import deleteOtherUser from "../../../../utils/users/deleteOtherUser.js"; function PendingMembers() { - const [pendingMembers, setPendingMembers] = useState([]); - const [loading, setLoading] = useState(true); - const [actionLoading, setActionLoading] = useState(null); - const [error, setError] = useState(null); - useEffect(() => { - const fetchPendingMembers = async () => { - setLoading(true); - const result = await getUserToValidate(); - const userIds = result.data - if (userIds && userIds.length > 0) { - const users = await Promise.all(userIds.map((id) => getUserById(id))); - setPendingMembers(users.filter(Boolean)); - } else { - setPendingMembers([]); - } - setLoading(false); - }; - fetchPendingMembers(); - }, []); + const [pendingMembers, setPendingMembers] = useState([]); - const removeMember = (id) => { - setPendingMembers(prevMembers => - prevMembers.filter(member => member.id !== id) - ); - }; + const fetchUsers = async () => { -const handleValidate = async (id) => { - setActionLoading(id); - setError(null); - try { - const result = await validateUser(id); - if (result === true) { - removeMember(id); - } else { - setError("Échec de la validation."); + const result = await getUserToValidate(); + const userIds = result.data; + + if (userIds && userIds.length > 0) { + const users = await Promise.all(userIds.map(id => getUserById(id))); + const usersData = users.map(u => u.data); + setPendingMembers(usersData); + } } - } catch (err) { - setError("Erreur lors de la validation."); - } finally { - setActionLoading(null); - } -}; -const handleReject = async (id) => { - setActionLoading(id); - setError(null); - try { - const result = await deleteUser(id); - if (result.status >= 200 && result.status < 300) { - removeMember(id); - } else { - setError(result.errors || "Échec de la suppression."); + useEffect(() => { + fetchUsers(); + }, []); + + const handleValidate = async (id) => { + const result = await validateUser(id); + console.log(result); + fetchUsers(); } - } catch (err) { - setError("Erreur lors de la suppression."); - } finally { - setActionLoading(null); - } -}; + const handleRefuse = (id) => { - if (loading) { - return
Chargement des membres en attente...
; - } + } - return ( -
-

Membres en attente de validation

- {error &&

{error}

} + return ( +
+

Membres en attente de validation

-
- {pendingMembers.length === 0 &&

Aucun membre en attente

} +
+ + {pendingMembers.length === 0 &&

Aucun membre en attente

} + + {pendingMembers.map((member, index) => ( + +
+ +

{member.name} {member.lastname}

+ +
+ + +
+ +
+ + ))} - {pendingMembers.map((member) => ( -
-

{member.name} {member.lastname}

-
- -
-
- ))} -
-
- ); +
+ ); } export default PendingMembers; From bda8331ed17ebd5c0ca66ba135ed89288dc37bd1 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Tue, 3 Feb 2026 14:24:31 +0100 Subject: [PATCH 2/5] Typescript install --- pnpm-lock.yaml | 274 ++++++++++++++++++++++++++----------------------- 1 file changed, 147 insertions(+), 127 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8af6edc..f4a4b85 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,16 @@ importers: dependencies: '@emotion/react': specifier: ^11.14.0 - version: 11.14.0(@types/react@19.2.2)(react@19.2.0) + version: 11.14.0(@types/react@19.2.10)(react@19.2.0) '@emotion/styled': specifier: ^11.14.1 - version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) + version: 11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0) '@floating-ui/react': specifier: ^0.27.16 version: 0.27.16(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@mui/material': specifier: ^7.3.6 - version: 7.3.7(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 7.3.7(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) bootstrap: specifier: ^5.3.8 version: 5.3.8(@popperjs/core@2.11.8) @@ -37,7 +37,7 @@ importers: version: 19.2.0 react-bootstrap: specifier: ^2.10.10 - version: 2.10.10(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + version: 2.10.10(@types/react@19.2.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react-chartjs-2: specifier: ^5.3.1 version: 5.3.1(chart.js@4.5.1)(react@19.2.0) @@ -53,37 +53,40 @@ importers: devDependencies: '@chromatic-com/storybook': specifier: ^4.1.2 - version: 4.1.2(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9)) + version: 4.1.2(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0))) '@eslint/js': specifier: ^9.36.0 version: 9.37.0 '@storybook/addon-a11y': specifier: ^10.0.6 - version: 10.0.6(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9)) + version: 10.0.6(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0))) '@storybook/addon-docs': specifier: ^10.0.6 - version: 10.0.6(@types/react@19.2.2)(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(vite@7.1.9) + version: 10.0.6(@types/react@19.2.10)(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(vite@7.1.9(@types/node@25.1.0)) '@storybook/addon-vitest': specifier: ^10.0.6 - version: 10.0.6(@vitest/browser-playwright@4.0.8)(@vitest/browser@4.0.8(vite@7.1.9)(vitest@4.0.8))(@vitest/runner@4.0.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(vitest@4.0.8) + version: 10.0.6(@vitest/browser-playwright@4.0.8)(@vitest/browser@4.0.8(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8))(@vitest/runner@4.0.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(vitest@4.0.8) '@storybook/react-vite': specifier: ^10.0.6 - version: 10.0.6(esbuild@0.25.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(typescript@5.9.3)(vite@7.1.9) + version: 10.0.6(esbuild@0.25.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(typescript@5.9.3)(vite@7.1.9(@types/node@25.1.0)) + '@types/node': + specifier: ^25.0.10 + version: 25.1.0 '@types/react': - specifier: ^19.1.16 - version: 19.2.2 + specifier: ^19.2.10 + version: 19.2.10 '@types/react-dom': - specifier: ^19.1.9 - version: 19.2.1(@types/react@19.2.2) + specifier: ^19.2.3 + version: 19.2.3(@types/react@19.2.10) '@vitejs/plugin-react': specifier: ^5.0.4 - version: 5.0.4(vite@7.1.9) + version: 5.0.4(vite@7.1.9(@types/node@25.1.0)) '@vitest/browser-playwright': specifier: ^4.0.8 - version: 4.0.8(playwright@1.56.1)(vite@7.1.9)(vitest@4.0.8) + version: 4.0.8(playwright@1.56.1)(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8) '@vitest/coverage-v8': specifier: ^4.0.8 - version: 4.0.8(@vitest/browser@4.0.8(vite@7.1.9)(vitest@4.0.8))(vitest@4.0.8) + version: 4.0.8(@vitest/browser@4.0.8(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8))(vitest@4.0.8) baseline-browser-mapping: specifier: ^2.9.7 version: 2.9.14 @@ -98,7 +101,7 @@ importers: version: 0.4.23(eslint@9.37.0) eslint-plugin-storybook: specifier: ^10.0.6 - version: 10.0.6(eslint@9.37.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(typescript@5.9.3) + version: 10.0.6(eslint@9.37.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(typescript@5.9.3) globals: specifier: ^16.4.0 version: 16.4.0 @@ -110,13 +113,16 @@ importers: version: 15.8.1 storybook: specifier: ^10.0.6 - version: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + version: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) + typescript: + specifier: ^5.9.3 + version: 5.9.3 vite: specifier: ^7.1.7 - version: 7.1.9 + version: 7.1.9(@types/node@25.1.0) vitest: specifier: ^4.0.8 - version: 4.0.8(@vitest/browser-playwright@4.0.8) + version: 4.0.8(@types/node@25.1.0)(@vitest/browser-playwright@4.0.8) packages: @@ -949,14 +955,17 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + '@types/node@25.1.0': + resolution: {integrity: sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==} + '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - '@types/react-dom@19.2.1': - resolution: {integrity: sha512-/EEvYBdT3BflCWvTMO7YkYBHVE9Ci6XdqZciZANQgKpaiDRGOLIlRo91jbTNRQjgPFWVaRxcYc0luVNFitz57A==} + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: '@types/react': ^19.2.0 @@ -965,8 +974,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@19.2.2': - resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==} + '@types/react@19.2.10': + resolution: {integrity: sha512-WPigyYuGhgZ/cTPRXB2EwUw+XvsRA3GqHlsP4qteqrnnjDrApbS7MxcGr/hke5iUoeB7E/gQtrs9I37zAJ0Vjw==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -2135,6 +2144,9 @@ packages: peerDependencies: react: '>=16.14.0' + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -2412,13 +2424,13 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} - '@chromatic-com/storybook@4.1.2(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))': + '@chromatic-com/storybook@4.1.2(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))': dependencies: '@neoconfetti/react': 1.0.0 chromatic: 12.2.0 filesize: 10.1.6 jsonfile: 6.2.0 - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) strip-ansi: 7.1.2 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -2456,7 +2468,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0)': + '@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 @@ -2468,7 +2480,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.2.0 optionalDependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.10 transitivePeerDependencies: - supports-color @@ -2482,18 +2494,18 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)': + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) + '@emotion/react': 11.14.0(@types/react@19.2.10)(react@19.2.0) '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.0) '@emotion/utils': 1.4.2 react: 19.2.0 optionalDependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.10 transitivePeerDependencies: - supports-color @@ -2676,12 +2688,12 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.9.3)(vite@7.1.9)': + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.9.3)(vite@7.1.9(@types/node@25.1.0))': dependencies: glob: 10.4.5 magic-string: 0.30.21 react-docgen-typescript: 2.4.0(typescript@5.9.3) - vite: 7.1.9 + vite: 7.1.9(@types/node@25.1.0) optionalDependencies: typescript: 5.9.3 @@ -2706,23 +2718,23 @@ snapshots: '@kurkle/color@0.3.4': {} - '@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0)': + '@mdx-js/react@3.1.1(@types/react@19.2.10)(react@19.2.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.2.2 + '@types/react': 19.2.10 react: 19.2.0 '@mui/core-downloads-tracker@7.3.7': {} - '@mui/material@7.3.7(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@mui/material@7.3.7(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 '@mui/core-downloads-tracker': 7.3.7 - '@mui/system': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) - '@mui/types': 7.4.10(@types/react@19.2.2) - '@mui/utils': 7.3.7(@types/react@19.2.2)(react@19.2.0) + '@mui/system': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0) + '@mui/types': 7.4.10(@types/react@19.2.10) + '@mui/utils': 7.3.7(@types/react@19.2.10)(react@19.2.0) '@popperjs/core': 2.11.8 - '@types/react-transition-group': 4.4.12(@types/react@19.2.2) + '@types/react-transition-group': 4.4.12(@types/react@19.2.10) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 @@ -2731,20 +2743,20 @@ snapshots: react-is: 19.2.3 react-transition-group: 4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0) optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) - '@types/react': 19.2.2 + '@emotion/react': 11.14.0(@types/react@19.2.10)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0) + '@types/react': 19.2.10 - '@mui/private-theming@7.3.7(@types/react@19.2.2)(react@19.2.0)': + '@mui/private-theming@7.3.7(@types/react@19.2.10)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/utils': 7.3.7(@types/react@19.2.2)(react@19.2.0) + '@mui/utils': 7.3.7(@types/react@19.2.10)(react@19.2.0) prop-types: 15.8.1 react: 19.2.0 optionalDependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.10 - '@mui/styled-engine@7.3.7(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(react@19.2.0)': + '@mui/styled-engine@7.3.7(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0))(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 '@emotion/cache': 11.14.0 @@ -2754,42 +2766,42 @@ snapshots: prop-types: 15.8.1 react: 19.2.0 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) + '@emotion/react': 11.14.0(@types/react@19.2.10)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0) - '@mui/system@7.3.7(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)': + '@mui/system@7.3.7(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/private-theming': 7.3.7(@types/react@19.2.2)(react@19.2.0) - '@mui/styled-engine': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(react@19.2.0) - '@mui/types': 7.4.10(@types/react@19.2.2) - '@mui/utils': 7.3.7(@types/react@19.2.2)(react@19.2.0) + '@mui/private-theming': 7.3.7(@types/react@19.2.10)(react@19.2.0) + '@mui/styled-engine': 7.3.7(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0))(react@19.2.0) + '@mui/types': 7.4.10(@types/react@19.2.10) + '@mui/utils': 7.3.7(@types/react@19.2.10)(react@19.2.0) clsx: 2.1.1 csstype: 3.2.3 prop-types: 15.8.1 react: 19.2.0 optionalDependencies: - '@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0) - '@types/react': 19.2.2 + '@emotion/react': 11.14.0(@types/react@19.2.10)(react@19.2.0) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.10)(react@19.2.0))(@types/react@19.2.10)(react@19.2.0) + '@types/react': 19.2.10 - '@mui/types@7.4.10(@types/react@19.2.2)': + '@mui/types@7.4.10(@types/react@19.2.10)': dependencies: '@babel/runtime': 7.28.4 optionalDependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.10 - '@mui/utils@7.3.7(@types/react@19.2.2)(react@19.2.0)': + '@mui/utils@7.3.7(@types/react@19.2.10)(react@19.2.0)': dependencies: '@babel/runtime': 7.28.4 - '@mui/types': 7.4.10(@types/react@19.2.2) + '@mui/types': 7.4.10(@types/react@19.2.10) '@types/prop-types': 15.7.15 clsx: 2.1.1 prop-types: 15.8.1 react: 19.2.0 react-is: 19.2.3 optionalDependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.10 '@neoconfetti/react@1.0.0': {} @@ -2921,21 +2933,21 @@ snapshots: '@standard-schema/spec@1.0.0': {} - '@storybook/addon-a11y@10.0.6(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))': + '@storybook/addon-a11y@10.0.6(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))': dependencies: '@storybook/global': 5.0.0 axe-core: 4.11.0 - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) - '@storybook/addon-docs@10.0.6(@types/react@19.2.2)(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(vite@7.1.9)': + '@storybook/addon-docs@10.0.6(@types/react@19.2.10)(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(vite@7.1.9(@types/node@25.1.0))': dependencies: - '@mdx-js/react': 3.1.1(@types/react@19.2.2)(react@19.2.0) - '@storybook/csf-plugin': 10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(vite@7.1.9) + '@mdx-js/react': 3.1.1(@types/react@19.2.10)(react@19.2.0) + '@storybook/csf-plugin': 10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(vite@7.1.9(@types/node@25.1.0)) '@storybook/icons': 1.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@storybook/react-dom-shim': 10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9)) + '@storybook/react-dom-shim': 10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0))) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' @@ -2944,41 +2956,41 @@ snapshots: - vite - webpack - '@storybook/addon-vitest@10.0.6(@vitest/browser-playwright@4.0.8)(@vitest/browser@4.0.8(vite@7.1.9)(vitest@4.0.8))(@vitest/runner@4.0.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(vitest@4.0.8)': + '@storybook/addon-vitest@10.0.6(@vitest/browser-playwright@4.0.8)(@vitest/browser@4.0.8(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8))(@vitest/runner@4.0.8)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(vitest@4.0.8)': dependencies: '@storybook/global': 5.0.0 '@storybook/icons': 1.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) prompts: 2.4.2 - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) ts-dedent: 2.2.0 optionalDependencies: - '@vitest/browser': 4.0.8(vite@7.1.9)(vitest@4.0.8) - '@vitest/browser-playwright': 4.0.8(playwright@1.56.1)(vite@7.1.9)(vitest@4.0.8) + '@vitest/browser': 4.0.8(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8) + '@vitest/browser-playwright': 4.0.8(playwright@1.56.1)(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8) '@vitest/runner': 4.0.8 - vitest: 4.0.8(@vitest/browser-playwright@4.0.8) + vitest: 4.0.8(@types/node@25.1.0)(@vitest/browser-playwright@4.0.8) transitivePeerDependencies: - react - react-dom - '@storybook/builder-vite@10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(vite@7.1.9)': + '@storybook/builder-vite@10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(vite@7.1.9(@types/node@25.1.0))': dependencies: - '@storybook/csf-plugin': 10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(vite@7.1.9) - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + '@storybook/csf-plugin': 10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(vite@7.1.9(@types/node@25.1.0)) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) ts-dedent: 2.2.0 - vite: 7.1.9 + vite: 7.1.9(@types/node@25.1.0) transitivePeerDependencies: - esbuild - rollup - webpack - '@storybook/csf-plugin@10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(vite@7.1.9)': + '@storybook/csf-plugin@10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(vite@7.1.9(@types/node@25.1.0))': dependencies: - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) unplugin: 2.3.10 optionalDependencies: esbuild: 0.25.10 rollup: 4.52.4 - vite: 7.1.9 + vite: 7.1.9(@types/node@25.1.0) '@storybook/global@5.0.0': {} @@ -2987,27 +2999,27 @@ snapshots: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - '@storybook/react-dom-shim@10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))': + '@storybook/react-dom-shim@10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))': dependencies: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) - '@storybook/react-vite@10.0.6(esbuild@0.25.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(typescript@5.9.3)(vite@7.1.9)': + '@storybook/react-vite@10.0.6(esbuild@0.25.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(typescript@5.9.3)(vite@7.1.9(@types/node@25.1.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.9.3)(vite@7.1.9) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.9.3)(vite@7.1.9(@types/node@25.1.0)) '@rollup/pluginutils': 5.3.0(rollup@4.52.4) - '@storybook/builder-vite': 10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(vite@7.1.9) - '@storybook/react': 10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(typescript@5.9.3) + '@storybook/builder-vite': 10.0.6(esbuild@0.25.10)(rollup@4.52.4)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(vite@7.1.9(@types/node@25.1.0)) + '@storybook/react': 10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(typescript@5.9.3) empathic: 2.0.0 magic-string: 0.30.21 react: 19.2.0 react-docgen: 8.0.2 react-dom: 19.2.0(react@19.2.0) resolve: 1.22.11 - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) tsconfig-paths: 4.2.0 - vite: 7.1.9 + vite: 7.1.9(@types/node@25.1.0) transitivePeerDependencies: - esbuild - rollup @@ -3015,13 +3027,13 @@ snapshots: - typescript - webpack - '@storybook/react@10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(typescript@5.9.3)': + '@storybook/react@10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(typescript@5.9.3)': dependencies: '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9)) + '@storybook/react-dom-shim': 10.0.6(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0))) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) optionalDependencies: typescript: 5.9.3 @@ -3091,21 +3103,25 @@ snapshots: '@types/mdx@2.0.13': {} + '@types/node@25.1.0': + dependencies: + undici-types: 7.16.0 + '@types/parse-json@4.0.2': {} '@types/prop-types@15.7.15': {} - '@types/react-dom@19.2.1(@types/react@19.2.2)': + '@types/react-dom@19.2.3(@types/react@19.2.10)': dependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.10 - '@types/react-transition-group@4.4.12(@types/react@19.2.2)': + '@types/react-transition-group@4.4.12(@types/react@19.2.10)': dependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.10 - '@types/react@19.2.2': + '@types/react@19.2.10': dependencies: - csstype: 3.1.3 + csstype: 3.2.3 '@types/resolve@1.20.6': {} @@ -3163,7 +3179,7 @@ snapshots: '@typescript-eslint/types': 8.46.3 eslint-visitor-keys: 4.2.1 - '@vitejs/plugin-react@5.0.4(vite@7.1.9)': + '@vitejs/plugin-react@5.0.4(vite@7.1.9(@types/node@25.1.0))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -3171,33 +3187,33 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.38 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.9 + vite: 7.1.9(@types/node@25.1.0) transitivePeerDependencies: - supports-color - '@vitest/browser-playwright@4.0.8(playwright@1.56.1)(vite@7.1.9)(vitest@4.0.8)': + '@vitest/browser-playwright@4.0.8(playwright@1.56.1)(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8)': dependencies: - '@vitest/browser': 4.0.8(vite@7.1.9)(vitest@4.0.8) - '@vitest/mocker': 4.0.8(vite@7.1.9) + '@vitest/browser': 4.0.8(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8) + '@vitest/mocker': 4.0.8(vite@7.1.9(@types/node@25.1.0)) playwright: 1.56.1 tinyrainbow: 3.0.3 - vitest: 4.0.8(@vitest/browser-playwright@4.0.8) + vitest: 4.0.8(@types/node@25.1.0)(@vitest/browser-playwright@4.0.8) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@4.0.8(vite@7.1.9)(vitest@4.0.8)': + '@vitest/browser@4.0.8(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8)': dependencies: - '@vitest/mocker': 4.0.8(vite@7.1.9) + '@vitest/mocker': 4.0.8(vite@7.1.9(@types/node@25.1.0)) '@vitest/utils': 4.0.8 magic-string: 0.30.21 pixelmatch: 7.1.0 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.0.3 - vitest: 4.0.8(@vitest/browser-playwright@4.0.8) + vitest: 4.0.8(@types/node@25.1.0)(@vitest/browser-playwright@4.0.8) ws: 8.18.3 transitivePeerDependencies: - bufferutil @@ -3205,7 +3221,7 @@ snapshots: - utf-8-validate - vite - '@vitest/coverage-v8@4.0.8(@vitest/browser@4.0.8(vite@7.1.9)(vitest@4.0.8))(vitest@4.0.8)': + '@vitest/coverage-v8@4.0.8(@vitest/browser@4.0.8(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8))(vitest@4.0.8)': dependencies: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.8 @@ -3218,9 +3234,9 @@ snapshots: magicast: 0.5.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.8(@vitest/browser-playwright@4.0.8) + vitest: 4.0.8(@types/node@25.1.0)(@vitest/browser-playwright@4.0.8) optionalDependencies: - '@vitest/browser': 4.0.8(vite@7.1.9)(vitest@4.0.8) + '@vitest/browser': 4.0.8(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8) transitivePeerDependencies: - supports-color @@ -3241,21 +3257,21 @@ snapshots: chai: 6.2.0 tinyrainbow: 3.0.3 - '@vitest/mocker@3.2.4(vite@7.1.9)': + '@vitest/mocker@3.2.4(vite@7.1.9(@types/node@25.1.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.1.9 + vite: 7.1.9(@types/node@25.1.0) - '@vitest/mocker@4.0.8(vite@7.1.9)': + '@vitest/mocker@4.0.8(vite@7.1.9(@types/node@25.1.0))': dependencies: '@vitest/spy': 4.0.8 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.1.9 + vite: 7.1.9(@types/node@25.1.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -3534,11 +3550,11 @@ snapshots: dependencies: eslint: 9.37.0 - eslint-plugin-storybook@10.0.6(eslint@9.37.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9))(typescript@5.9.3): + eslint-plugin-storybook@10.0.6(eslint@9.37.0)(storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)))(typescript@5.9.3): dependencies: '@typescript-eslint/utils': 8.46.3(eslint@9.37.0)(typescript@5.9.3) eslint: 9.37.0 - storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9) + storybook: 10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)) transitivePeerDependencies: - supports-color - typescript @@ -3994,13 +4010,13 @@ snapshots: queue-microtask@1.2.3: {} - react-bootstrap@2.10.10(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): + react-bootstrap@2.10.10(@types/react@19.2.10)(react-dom@19.2.0(react@19.2.0))(react@19.2.0): dependencies: '@babel/runtime': 7.28.4 '@restart/hooks': 0.4.16(react@19.2.0) '@restart/ui': 1.9.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@types/prop-types': 15.7.15 - '@types/react-transition-group': 4.4.12(@types/react@19.2.2) + '@types/react-transition-group': 4.4.12(@types/react@19.2.10) classnames: 2.5.1 dom-helpers: 5.2.1 invariant: 2.2.4 @@ -4012,7 +4028,7 @@ snapshots: uncontrollable: 7.2.1(react@19.2.0) warning: 4.0.3 optionalDependencies: - '@types/react': 19.2.2 + '@types/react': 19.2.10 react-chartjs-2@5.3.1(chart.js@4.5.1)(react@19.2.0): dependencies: @@ -4195,14 +4211,14 @@ snapshots: std-env@3.10.0: {} - storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9): + storybook@10.0.6(@testing-library/dom@10.4.1)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(vite@7.1.9(@types/node@25.1.0)): dependencies: '@storybook/global': 5.0.0 '@storybook/icons': 1.6.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@testing-library/jest-dom': 6.9.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.9) + '@vitest/mocker': 3.2.4(vite@7.1.9(@types/node@25.1.0)) '@vitest/spy': 3.2.4 esbuild: 0.25.10 recast: 0.23.11 @@ -4305,7 +4321,7 @@ snapshots: uncontrollable@7.2.1(react@19.2.0): dependencies: '@babel/runtime': 7.28.4 - '@types/react': 19.2.2 + '@types/react': 19.2.10 invariant: 2.2.4 react: 19.2.0 react-lifecycles-compat: 3.0.4 @@ -4314,6 +4330,8 @@ snapshots: dependencies: react: 19.2.0 + undici-types@7.16.0: {} + universalify@2.0.1: {} unplugin@2.3.10: @@ -4333,7 +4351,7 @@ snapshots: dependencies: punycode: 2.3.1 - vite@7.1.9: + vite@7.1.9(@types/node@25.1.0): dependencies: esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) @@ -4342,12 +4360,13 @@ snapshots: rollup: 4.52.4 tinyglobby: 0.2.15 optionalDependencies: + '@types/node': 25.1.0 fsevents: 2.3.3 - vitest@4.0.8(@vitest/browser-playwright@4.0.8): + vitest@4.0.8(@types/node@25.1.0)(@vitest/browser-playwright@4.0.8): dependencies: '@vitest/expect': 4.0.8 - '@vitest/mocker': 4.0.8(vite@7.1.9) + '@vitest/mocker': 4.0.8(vite@7.1.9(@types/node@25.1.0)) '@vitest/pretty-format': 4.0.8 '@vitest/runner': 4.0.8 '@vitest/snapshot': 4.0.8 @@ -4364,10 +4383,11 @@ snapshots: tinyexec: 0.3.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 - vite: 7.1.9 + vite: 7.1.9(@types/node@25.1.0) why-is-node-running: 2.3.0 optionalDependencies: - '@vitest/browser-playwright': 4.0.8(playwright@1.56.1)(vite@7.1.9)(vitest@4.0.8) + '@types/node': 25.1.0 + '@vitest/browser-playwright': 4.0.8(playwright@1.56.1)(vite@7.1.9(@types/node@25.1.0))(vitest@4.0.8) transitivePeerDependencies: - jiti - less From 6202f6dc77fc3417d41109b1764877c5a5159780 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Tue, 3 Feb 2026 14:27:54 +0100 Subject: [PATCH 3/5] Able to refuse members --- .../Admin/components/pendingMembers/PendingMembers.jsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx index 0a964cd..904da41 100644 --- a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx +++ b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx @@ -29,12 +29,13 @@ function PendingMembers() { const handleValidate = async (id) => { const result = await validateUser(id); - console.log(result); fetchUsers(); } - const handleRefuse = (id) => { - + const handleRefuse = async (id) => { + const result = await deleteOtherUser(id); + console.log(result); + fetchUsers(); } return ( From 34ad0ec3456c3294a62b492d54d5b68a30db1cd2 Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Tue, 3 Feb 2026 14:34:26 +0100 Subject: [PATCH 4/5] Show result modal --- .../pendingMembers/PendingMembers.jsx | 43 ++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx index 904da41..2da2c50 100644 --- a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx +++ b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx @@ -1,7 +1,7 @@ import React, {useState, useEffect} from "react"; import Button from "../../../../components/ui/button/button.jsx"; import styles from "./PendingMembers.module.css"; - +import Modal from "../../../../components/ui/modal/modal.jsx"; import getUserToValidate from "../../../../utils/users/getUserToValidate.js"; import getUserById from "../../../../utils/users/getUserById.js"; import validateUser from "../../../../utils/users/validateUser.js"; @@ -9,6 +9,11 @@ import deleteOtherUser from "../../../../utils/users/deleteOtherUser.js"; function PendingMembers() { + + const [open, setOpen] = useState(false); + const [message, setMessage] = useState(""); + const [title, setTitle] = useState(""); + const [pendingMembers, setPendingMembers] = useState([]); const fetchUsers = async () => { @@ -27,14 +32,35 @@ function PendingMembers() { fetchUsers(); }, []); - const handleValidate = async (id) => { + const handleValidate = async (id, name) => { const result = await validateUser(id); + + if(result.status === 200) { + setTitle("Utilisateur accepté avec succès") + setMessage(`L'utilisateur ${name} a été accepté avec succès`) + setOpen(true); + } else { + setTitle("Erreur") + setMessage(`Une erreur est survenue durant l'acceptation de l'utilisateur ${name}`) + setOpen(true); + } + fetchUsers(); } - const handleRefuse = async (id) => { + const handleRefuse = async (id, name) => { const result = await deleteOtherUser(id); - console.log(result); + + if(result.status === 200) { + setTitle("Utilisateur refusé avec succès") + setMessage(`L'utilisateur ${name} a été refusé avec succès`) + setOpen(true); + } else { + setTitle("Erreur") + setMessage(`Une erreur est survenue durant le refus de l'utilisateur ${name}`) + setOpen(true); + } + fetchUsers(); } @@ -53,8 +79,8 @@ function PendingMembers() {

{member.name} {member.lastname}

- - + +
@@ -62,6 +88,11 @@ function PendingMembers() { ))} + + setOpen(false)} title={title}> + {message} + + ); } From 39030b18cf3eb1a2e42fb9317114df341038c34c Mon Sep 17 00:00:00 2001 From: T'JAMPENS QUENTIN p2406187 Date: Tue, 3 Feb 2026 14:39:42 +0100 Subject: [PATCH 5/5] Refresh on last member --- src/pages/Admin/components/pendingMembers/PendingMembers.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx index 2da2c50..69dc4e4 100644 --- a/src/pages/Admin/components/pendingMembers/PendingMembers.jsx +++ b/src/pages/Admin/components/pendingMembers/PendingMembers.jsx @@ -25,7 +25,7 @@ function PendingMembers() { const users = await Promise.all(userIds.map(id => getUserById(id))); const usersData = users.map(u => u.data); setPendingMembers(usersData); - } + } else setPendingMembers([]); } useEffect(() => {