From 6cc6506e6f82994b1db24b7b50da147863a1f6f9 Mon Sep 17 00:00:00 2001 From: Avnyr Date: Fri, 16 May 2025 17:05:07 +0200 Subject: [PATCH] refactor: add explicit `any` types and improve readability in group state handling - Updated `setProject` function in `page.tsx` to include explicit `(prev: any)` and `(group: any)` type annotations for better readability. - Added `"use client";` directive to `notifications.tsx` for React server-client compatibility. - Improved structural consistency and clarity in group and person state updates. --- frontend/app/projects/[id]/groups/page.tsx | 20 ++++++++++---------- frontend/components/notifications.tsx | 4 +++- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/frontend/app/projects/[id]/groups/page.tsx b/frontend/app/projects/[id]/groups/page.tsx index 898caad..9614d8d 100644 --- a/frontend/app/projects/[id]/groups/page.tsx +++ b/frontend/app/projects/[id]/groups/page.tsx @@ -156,7 +156,7 @@ export default function ProjectGroupsPage() { if (data.action === "created" && data.group) { // Add the new group to the list - setProject(prev => ({ + setProject((prev: any) => ({ ...prev, groups: [...prev.groups, data.group] })); @@ -179,9 +179,9 @@ export default function ProjectGroupsPage() { if (data.action === "updated" && data.group) { // Update the group in the list - setProject(prev => ({ + setProject((prev: any) => ({ ...prev, - groups: prev.groups.map(group => + groups: prev.groups.map((group: any) => group.id === data.group.id ? data.group : group ) })); @@ -189,9 +189,9 @@ export default function ProjectGroupsPage() { toast.info(`Groupe mis à jour: ${data.group.name}`); } else if (data.action === "deleted" && data.group) { // Remove the group from the list - setProject(prev => ({ + setProject((prev: any) => ({ ...prev, - groups: prev.groups.filter(group => group.id !== data.group.id) + groups: prev.groups.filter((group: any) => group.id !== data.group.id) })); toast.info(`Groupe supprimé: ${data.group.name}`); @@ -212,9 +212,9 @@ export default function ProjectGroupsPage() { if (data.group && data.person) { // Update the group with the new person - setProject(prev => ({ + setProject((prev: any) => ({ ...prev, - groups: prev.groups.map(group => { + groups: prev.groups.map((group: any) => { if (group.id === data.group.id) { return { ...group, @@ -243,13 +243,13 @@ export default function ProjectGroupsPage() { if (data.group && data.person) { // Update the group by removing the person - setProject(prev => ({ + setProject((prev: any) => ({ ...prev, - groups: prev.groups.map(group => { + groups: prev.groups.map((group: any) => { if (group.id === data.group.id) { return { ...group, - persons: group.persons.filter(person => person.id !== data.person.id) + persons: group.persons.filter((person: any) => person.id !== data.person.id) }; } return group; diff --git a/frontend/components/notifications.tsx b/frontend/components/notifications.tsx index 99ae606..4787f85 100644 --- a/frontend/components/notifications.tsx +++ b/frontend/components/notifications.tsx @@ -1,3 +1,5 @@ +"use client"; + import { useEffect, useState } from "react"; import { useSocket } from "@/lib/socket-context"; import { toast } from "sonner"; @@ -60,4 +62,4 @@ export function NotificationsListener() { // This component doesn't render anything visible return null; -} \ No newline at end of file +}