feat:table experts

This commit is contained in:
Anang Yusman 2025-03-03 11:00:17 +08:00
parent 146bd8d782
commit 6b40b87bb4
3 changed files with 62 additions and 14 deletions

View File

@ -40,19 +40,19 @@ const columns: ColumnDef<any>[] = [
}, },
{ {
accessorKey: "name", accessorKey: "fullname",
header: "Nama", header: "Nama",
cell: ({ row }) => <span>{row.getValue("name")}</span>, cell: ({ row }) => <span>{row.getValue("fullname")}</span>,
}, },
{ {
accessorKey: "region", accessorKey: "address",
header: "Wilayah", header: "Wilayah",
cell: ({ row }) => <span>{row.getValue("region")}</span>, cell: ({ row }) => <span>{row.getValue("address")}</span>,
}, },
{ {
accessorKey: "skills", accessorKey: "role.name",
header: "Bidang Keahlian", header: "Bidang Keahlian",
cell: ({ row }) => <span>{row.getValue("skills")}</span>, cell: ({ row }) => <span>{row.original.role?.name ?? "-"}</span>,
}, },
{ {

View File

@ -53,6 +53,7 @@ import { listEnableCategory } from "@/service/content/content";
import { Checkbox } from "@/components/ui/checkbox"; import { Checkbox } from "@/components/ui/checkbox";
import { close, loading } from "@/config/swal"; import { close, loading } from "@/config/swal";
import { Link } from "@/i18n/routing"; import { Link } from "@/i18n/routing";
import { listDataExperts } from "@/service/experts/experts";
const dummyData = [ const dummyData = [
{ {
@ -93,6 +94,7 @@ const AddExpertTable = () => {
const [statusFilter, setStatusFilter] = React.useState<number[]>([]); const [statusFilter, setStatusFilter] = React.useState<number[]>([]);
const [page, setPage] = React.useState(1); const [page, setPage] = React.useState(1);
const [totalPage, setTotalPage] = React.useState(1); const [totalPage, setTotalPage] = React.useState(1);
const [limit, setLimit] = React.useState(10);
const table = useReactTable({ const table = useReactTable({
data: dataTable, data: dataTable,
columns, columns,
@ -145,19 +147,44 @@ const AddExpertTable = () => {
}); });
}, [page, showData]); }, [page, showData]);
async function fetchData() { // async function fetchData() {
try { // try {
loading(); // loading();
const contentData = dummyData; // const contentData = dummyData;
// contentData.forEach((item: any, index: number) => {
// item.no = (page - 1) * Number(showData) + index + 1;
// });
// setDataTable(contentData);
// setTotalData(contentData?.length);
// setTotalPage(1);
// close();
// } catch (error) {
// console.error("Error fetching tasks:", error);
// }
// }
async function fetchData() {
// const formattedStartDate = startDate
// ? format(new Date(startDate), "yyyy-MM-dd")
// : "";
// const formattedEndDate = endDate
// ? format(new Date(endDate), "yyyy-MM-dd")
// : "";
try {
// const isForSelf = Number(roleId) === 4;
const res = await listDataExperts(limit, page - 1);
const data = res?.data?.data;
const contentData = data?.content;
contentData.forEach((item: any, index: number) => { contentData.forEach((item: any, index: number) => {
item.no = (page - 1) * Number(showData) + index + 1; item.no = (page - 1) * limit + index + 1;
}); });
setDataTable(contentData); setDataTable(contentData);
setTotalData(contentData?.length); setTotalData(data?.totalElements);
setTotalPage(1); setTotalPage(data?.totalPages);
close();
} catch (error) { } catch (error) {
console.error("Error fetching tasks:", error); console.error("Error fetching tasks:", error);
} }

View File

@ -0,0 +1,21 @@
import {
httpDeleteInterceptor,
httpGetInterceptor,
httpPostInterceptor,
} from "../http-config/http-interceptor-service";
export async function listDataExperts(size: number, page: number) {
return await httpGetInterceptor(
`users/pagination/internal?enablePage=1&size=${size}&page=${page}&roleId=19&levelId=1`
);
}
export async function postBlog(data: any) {
const url = "blog";
return httpPostInterceptor(url, data);
}
export async function getBlog(id: any) {
const url = `blog/${id}`;
return httpGetInterceptor(url);
}