Skip to content

Commit 4faed24

Browse files
committed
User page table
1 parent 5236be6 commit 4faed24

1 file changed

Lines changed: 63 additions & 19 deletions

File tree

src/app/users/page.tsx

Lines changed: 63 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,69 @@
1-
"use client"
1+
"use client";
22
import { DataTable } from "@/components/table/data-table";
33
import 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

Comments
 (0)