1- "use client"
1+ "use client" ;
22import { DataTable } from "@/components/table/data-table" ;
33import columns from "@/components/columns" ;
4- import { tasks } from "@/data/data" ;
5- import { useQuery } from "@tanstack/react-query" ;
6- import { fetchUsers } from "@/api/fetchUsers"
7- import oosers from '@/components/dumUser.json'
8- export default function Users ( ) {
9- const { data : userList , isLoading, isError} = useQuery ( {
10- queryKey : [ 'users' ] ,
11- queryFn : fetchUsers
12- } )
13-
14- if ( isLoading ) {
15- < > loading...</ >
16- }
17- if ( isError ) {
18- < > skill issue</ >
4+ import { useEffect , useMemo , useState } from "react" ;
5+ import { user } from "@/store/interfaces" ;
6+ import oosers from "@/components/dumUser.json" ;
7+ import useToast from "@/lib/toast" ;
8+
9+ export default function Users ( ) {
10+ const { create } = useToast ( ) ;
11+ const [ userList , setUserList ] = useState < { data : user [ ] } | null > ( null ) ;
12+ const [ isError , setIsError ] = useState < boolean > ( false ) ;
13+ const [ isLoading , setIsLoading ] = useState ( true )
14+
15+ useEffect ( ( ) => {
16+ try {
17+ const transformedUsers = oosers . map ( user => ( {
18+ ...user ,
19+ is_vitian : user . is_vitian ? 'true' : 'false' ,
20+ team_id : user . team_id === null ? null : user . team_id ,
21+ } ) ) ;
22+ setUserList ( { data : transformedUsers as user [ ] } ) ;
23+ setIsLoading ( false )
24+ }
25+ catch ( e ) {
26+ setIsError ( true ) ;
27+ setIsLoading ( false )
28+ }
29+ } , [ ] ) ;
30+
31+
32+ useEffect ( ( ) => {
33+ if ( isError ) {
34+ create ( "Failed to fetch users" , "error" ) ;
1935 }
36+ } , [ isError , create ] ) ;
37+
38+ const transformedTasks = useMemo ( ( ) => {
39+ if ( ! userList ?. data ) return [ ] ;
40+ return userList . data . map ( ( user : user , index : number ) => ( {
41+ id : String ( index + 1 ) ,
42+ title : user . name ,
43+ label : user . role ,
44+ status : user . is_verified ? "complete" : "incomplete" ,
45+ priority : user . is_banned ? "high" : "low" ,
46+ } ) ) ;
47+ } , [ userList ?. data ] ) ;
48+
49+ if ( isLoading ) {
50+ return < > Loading...</ > ;
51+ }
52+
53+ if ( ! userList ?. data && ! isError ) {
54+ return < div > No data</ div > ;
55+ }
56+
57+ if ( isError ) {
58+ return < > Skill Issue</ >
59+ }
2060
21- return ( < div className = "" >
22- < DataTable data = { tasks } columns = { columns } />
2361
24- </ div > )
62+ return (
63+ < div className = "p-4" >
64+ < div className = "mb-4" >
65+ </ div >
66+ < DataTable data = { transformedTasks } columns = { columns } />
67+ </ div >
68+ ) ;
2569}
0 commit comments