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",
cell: ({ row }) => <span>{row.getValue("name")}</span>,
cell: ({ row }) => <span>{row.getValue("fullname")}</span>,
},
{
accessorKey: "region",
accessorKey: "address",
header: "Wilayah",
cell: ({ row }) => <span>{row.getValue("region")}</span>,
cell: ({ row }) => <span>{row.getValue("address")}</span>,
},
{
accessorKey: "skills",
accessorKey: "role.name",
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 { close, loading } from "@/config/swal";
import { Link } from "@/i18n/routing";
import { listDataExperts } from "@/service/experts/experts";
const dummyData = [
{
@ -93,6 +94,7 @@ const AddExpertTable = () => {
const [statusFilter, setStatusFilter] = React.useState<number[]>([]);
const [page, setPage] = React.useState(1);
const [totalPage, setTotalPage] = React.useState(1);
const [limit, setLimit] = React.useState(10);
const table = useReactTable({
data: dataTable,
columns,
@ -145,19 +147,44 @@ const AddExpertTable = () => {
});
}, [page, showData]);
async function fetchData() {
try {
loading();
// async function fetchData() {
// try {
// 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) => {
item.no = (page - 1) * Number(showData) + index + 1;
item.no = (page - 1) * limit + index + 1;
});
setDataTable(contentData);
setTotalData(contentData?.length);
setTotalPage(1);
close();
setTotalData(data?.totalElements);
setTotalPage(data?.totalPages);
} catch (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);
}