11"use client" ;
22import { DataTable } from "@/components/table/data-table" ;
33import columns from "@/components/columns" ;
4- import { useEffect , useMemo , useState } from "react" ;
5- import { user } from "@/store/interfaces" ;
4+ import userCol from "@/components/columns/UserCol" ;
5+ // import { useEffect, useMemo, useState } from "react";
6+ // import { user } from "@/store/interfaces";
67import oosers from "@/components/dumUser.json" ;
7- import useToast from "@/lib/toast" ;
8+ // import useToast from "@/lib/toast";
9+ import { useQuery } from "@tanstack/react-query" ;
10+ import { fetchUsers } from "@/api/fetchUsers" ;
11+ import { User } from "@/data/schema"
12+
813
914export 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 )
15+ // const { create } = useToast();
16+ // const [userList, setUserList] = useState<{data: user[]} | null>(null);
17+ // const [isError, setIsError] = useState<boolean>(false);
18+ // const [isLoading, setIsLoading] = useState(true)
1419
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- } , [ ] ) ;
20+ // useEffect(()=>{
21+ // try{
22+ // const transformedUsers = oosers.map(user =>({
23+ // ...user,
24+ // is_vitian: user.is_vitian ? 'true' : 'false',
25+ // team_id: user.team_id === null ? null : user.team_id,
26+ // }));
27+ // setUserList({data: transformedUsers as user[]});
28+ // setIsLoading(false)
29+ // }
30+ // catch(e){
31+ // setIsError(true);
32+ // setIsLoading(false)
33+ // }
34+ // },[]);
3035
36+ // useEffect(() => {
37+ // if (isError) {
38+ // create("Failed to fetch users", "error");
39+ // }
40+ // }, [isError, create]);
3141
32- useEffect ( ( ) => {
33- if ( isError ) {
34- create ( "Failed to fetch users" , "error" ) ;
35- }
36- } , [ isError , create ] ) ;
42+ // const transformedTasks = useMemo(() => {
43+ // if (!userList?.data) return [];
44+ // return userList.data.map((user: user, index: number) => ({
45+ // id: String(index + 1),
46+ // title: user.name,
47+ // label: user.role,
48+ // status: user.is_verified ? "complete" : "incomplete",
49+ // priority: user.is_banned ? "high" : "low",
50+ // }));
51+ // }, [userList?.data]);
3752
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 ] ) ;
53+ // if (isLoading) {
54+ // return <>Loading...</>;
55+ // }
4856
49- if ( isLoading ) {
50- return < > Loading... </ > ;
51- }
57+ // if (!userList?.data && !isError ) {
58+ // return <div>No data</div >;
59+ // }
5260
53- if ( ! userList ?. data && ! isError ) {
54- return < div > No data </ div > ;
55- }
61+ // if( isError){
62+ // return <>Skill Issue</>
63+ // }
5664
57- if ( isError ) {
58- return < > Skill Issue</ >
59- }
65+ const {
66+ data : userList ,
67+ isLoading,
68+ isError,
69+ } = useQuery ( {
70+ queryKey : [ "users" ] ,
71+ queryFn : fetchUsers ,
72+ } ) ;
6073
74+ if ( isLoading ) {
75+ < > loading...</ > ;
76+ }
77+ if ( isError ) {
78+ < > skill issue</ > ;
79+ }
6180
6281 return (
6382 < div className = "p-4" >
64- < div className = "mb-4" >
65- </ div >
66- < DataTable data = { transformedTasks } columns = { columns } />
83+ < div className = "mb-4" > </ div >
84+ { /* <DataTableUsers users={oosers} columns={userCol} /> */ }
85+ < DataTable < User , string > columns = { userCol } data = { oosers } />
6786 </ div >
6887 ) ;
69- }
88+ }
0 commit comments