"use client"; import { TableCell, TableRow, Table, TableHeader, TableColumn, TableBody, Pagination, Dropdown, DropdownTrigger, DropdownMenu, DropdownItem, Input, User, Card, Divider, Chip, ChipProps, } from "@nextui-org/react"; import { Button } from "@nextui-org/button"; import React, { Key, useCallback, useMemo, useState } from "react"; import { AddIcon, CreateIconIon, DeleteIcon, DotsYIcon, EyeFilledIcon, EyeIconMdi, } from "@/components/icons"; import Link from "next/link"; type UserObject = { id: number; name: string; levelNumber: string; aliasName: string; parentLevelId: string; provinceId: string; }; const statusColorMap = { active: "success", paused: "danger", vacation: "warning", }; export default function MasterUserLevelTable() { type TableRow = (typeof masterUserLevelTable)[0]; const columns = [ { name: "No", uid: "no" }, { name: "Name", uid: "name" }, { name: "User Name", uid: "aliasName" }, { name: "Level Number", uid: "levelNumber" }, { name: "Parent Level", uid: "parentLevelId" }, { name: "Province", uid: "provinceId" }, { name: "Action", uid: "actions" }, ]; const masterUserLevelTable = [ { id: 1, name: "AI Journalist ", aliasName: "Journalist", levelNumber: "admin", parentLevelId: "admin", provinceId: "Sumatra Barat", }, { id: 2, name: "AI Journalist ", aliasName: "Journalist", levelNumber: "admin", parentLevelId: "admin", provinceId: "Sumatra Barat", }, { id: 3, name: "AI Journalist ", aliasName: "Journalist", levelNumber: "admin", parentLevelId: "admin", provinceId: "Sumatra Barat", }, { id: 4, name: "AI Journalist ", aliasName: "Journalist", levelNumber: "admin", parentLevelId: "admin", provinceId: "Sumatra Barat", }, { id: 5, name: "AI Journalist ", aliasName: "Journalist", levelNumber: "admin", parentLevelId: "admin", provinceId: "Sumatra Barat", }, ]; const renderCell = useCallback((masterUserLevel: TableRow, columnKey: Key) => { const cellValue = masterUserLevel[columnKey as keyof UserObject]; const statusColorMap: Record = { active: "success", cancel: "danger", pending: "warning", }; switch (columnKey) { case "no": return (
{masterUserLevel.id}
) case "name": return (
{masterUserLevel.name}
) case "aliasName": return (
{masterUserLevel.aliasName}
) case "actions": return (
Detail Edit Delete
); default: return cellValue; } }, []); return ( <>
{(column) => ( {column.name} )} {(item) => ( {(columnKey) => ( {renderCell(item, columnKey)} )} )}
); }