import { trpc } from "@/app/_trpc/client";
import { User } from "@/server/user/domain/models";
import React, { useEffect, useState } from "react";
export default function useGetUsers() {
const [users, setUsers] = useState<User[]>([]);
const [data] = trpc.users.getUsers.useSuspenseQuery(undefined,{
refetchOnMount:"always",
refetchOnWindowFocus:false
});
useEffect(()=>{
setUsers(data as any)
},[data])
const handleUpdateUser=(userToUpdate:User)=>{
setUsers((prev)=>prev.map(item=>{
const userInList=item.id === userToUpdate.id
return userInList ?{...item,...userToUpdate}:item
}))
}
const handleDeleteUser=(userId:string)=>{
setUsers((prev)=>prev.filter(user=>user.id !== userId))
}
return({
users,
handleUpdateUser,
handleDeleteUser
})
}