"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; status: string; description: string; pathUrl: string; }; const statusColorMap = { active: "success", paused: "danger", vacation: "warning", }; export default function MasterModuleTable() { type TableRow = (typeof masterModuleTable)[0]; const columns = [ { name: "No", uid: "no" }, { name: "Name", uid: "name" }, { name: "Description", uid: "description" }, { name: "Path URL", uid: "pathUrl" }, { name: "Status", uid: "status" }, { name: "Action", uid: "actions" }, ]; const masterModuleTable = [ { id: 1, name: "AI Journalist ", status: "active", description: "AI Journalist", pathUrl: "/admin/acts", }, { id: 2, name: "AI Journalist ", status: "active", description: "AI Journalist", pathUrl: "/admin/acts", }, { id: 3, name: "AI Journalist ", status: "active", description: "AI Journalist", pathUrl: "/admin/acts", }, { id: 4, name: "AI Journalist ", status: "active", description: "AI Journalist", pathUrl: "/admin/acts", }, { id: 5, name: "AI Journalist ", status: "active", description: "AI Journalist", pathUrl: "/admin/acts", }, ]; const renderCell = useCallback((masterModule: TableRow, columnKey: Key) => { const cellValue = masterModule[columnKey as keyof UserObject]; const statusColorMap: Record = { active: "success", cancel: "danger", pending: "warning", }; switch (columnKey) { case "no": return
{masterModule.id}
; case "name": return
{masterModule.name}
; case "description": return
{masterModule.description}
; case "status": return (
{cellValue}
); case "actions": return (
Detail Edit Delete
); default: return cellValue; } }, []); return ( <>
{(column) => ( {column.name} )} {(item) => ( {(columnKey) => ( {renderCell(item, columnKey)} )} )}
); }