"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; title: string; status: string; description: string; avatar: string; }; const statusColorMap = { active: "success", paused: "danger", vacation: "warning", }; export default function MagazineTable() { type TableRow = (typeof magazineTable)[0]; const columns = [ { name: "Title", uid: "title" }, { name: "Description", uid: "description" }, { name: "Action", uid: "actions" }, ]; const magazineTable = [ { id: 1, title: "Proses pembuatan website humas ", status: "active", description: "Pembuatan website Humas adalah sebuah proses yang strategis untuk membangun identitas digital sebuah organisasi atau entitas, yang bertujuan untuk menyebarkan informasi kepada publik, memperkuat citra merek, serta menjaga keterbukaan dan transparansi. Proses ini melibatkan beberapa tahapan yang terstruktur dan terkoordinasi dengan baik", avatar: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSa8Luglga9J2R3Bxt_PsWZISUHQWODD6_ZTAJ5mIQgxYCAE-YbkY81faTqp-hSA_jVPTs&usqp=CAU", }, { id: 2, title: "Proses pembuatan website humas ", status: "active", description: "Pembuatan website Humas adalah sebuah proses yang strategis untuk membangun identitas digital sebuah organisasi atau entitas, yang bertujuan untuk menyebarkan informasi kepada publik, memperkuat citra merek, serta menjaga keterbukaan dan transparansi. Proses ini melibatkan beberapa tahapan yang terstruktur dan terkoordinasi dengan baik", avatar: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSa8Luglga9J2R3Bxt_PsWZISUHQWODD6_ZTAJ5mIQgxYCAE-YbkY81faTqp-hSA_jVPTs&usqp=CAU", }, { id: 3, title: "Proses pembuatan website humas ", status: "active", description: "Pembuatan website Humas adalah sebuah proses yang strategis untuk membangun identitas digital sebuah organisasi atau entitas, yang bertujuan untuk menyebarkan informasi kepada publik, memperkuat citra merek, serta menjaga keterbukaan dan transparansi. Proses ini melibatkan beberapa tahapan yang terstruktur dan terkoordinasi dengan baik", avatar: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSa8Luglga9J2R3Bxt_PsWZISUHQWODD6_ZTAJ5mIQgxYCAE-YbkY81faTqp-hSA_jVPTs&usqp=CAU", }, { id: 4, title: "Proses pembuatan website humas ", status: "active", description: "Pembuatan website Humas adalah sebuah proses yang strategis untuk membangun identitas digital sebuah organisasi atau entitas, yang bertujuan untuk menyebarkan informasi kepada publik, memperkuat citra merek, serta menjaga keterbukaan dan transparansi. Proses ini melibatkan beberapa tahapan yang terstruktur dan terkoordinasi dengan baik", avatar: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSa8Luglga9J2R3Bxt_PsWZISUHQWODD6_ZTAJ5mIQgxYCAE-YbkY81faTqp-hSA_jVPTs&usqp=CAU", }, { id: 5, title: "Proses pembuatan website humas ", status: "active", description: "Pembuatan website Humas adalah sebuah proses yang strategis untuk membangun identitas digital sebuah organisasi atau entitas, yang bertujuan untuk menyebarkan informasi kepada publik, memperkuat citra merek, serta menjaga keterbukaan dan transparansi. Proses ini melibatkan beberapa tahapan yang terstruktur dan terkoordinasi dengan baik", avatar: "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSa8Luglga9J2R3Bxt_PsWZISUHQWODD6_ZTAJ5mIQgxYCAE-YbkY81faTqp-hSA_jVPTs&usqp=CAU", }, ]; const renderCell = useCallback((magazine: TableRow, columnKey: Key) => { const cellValue = magazine[columnKey as keyof UserObject]; const statusColorMap: Record = { active: "primary", cancel: "danger", pending: "success", }; switch (columnKey) { case "no": return (
{magazine.id}
) case "title": return (
{magazine.title}
) case "description": return (
{magazine.description}
) case "status": return (
{cellValue}
); case "actions": return (
Detail Edit Delete
); default: return cellValue; } }, []); return ( <>
{(column) => ( {column.name} )} {(item) => ( {(columnKey) => ( {renderCell(item, columnKey)} )} )}
); }