import { Bars2Icon, DocumentTextIcon, LinkIcon, ListBulletIcon, UserIcon, } from "@heroicons/react/24/solid"; import { Dispatch, SetStateAction, useState } from "react"; import useTagsHandler from "@/components/TagsInput/TagsHandler"; import { ColumnDef, createColumnHelper } from "@tanstack/react-table"; import { RowOpenAction } from "@/components/Table/RowOpenAction"; import Table from "@/components/Table/Table"; import TagsInput from "@/components/TagsInput/Index"; import Resource from "@/utils/models/Resource"; import { Details } from "../Drawer/Drawer"; import { Tag } from "../TagsInput/Tag"; type ResourceTableProps = { data: Resource[]; setData: Dispatch>; }; /** * Table componenet used for displaying resources * @param props.data Stateful list of resources to be displayed by the table * @param props.setData State setter for the list of resources */ export default function ResourceTable({ data, setData }: ResourceTableProps) { const columnHelper = createColumnHelper(); const [programPresets, setProgramPresets] = useState([ "domestic", "community", "economic", ]); const resourceDetails: Details[] = [ { key: "name", label: "name", inputType: "text", icon: , }, { key: "link", label: "link", inputType: "email", icon: , }, { key: "program", label: "program", inputType: "select-one", icon: , presetOptionsValues: programPresets, presetOptionsSetter: setProgramPresets, }, { key: "summary", label: "summary", inputType: "textarea", icon: , }, ]; // Define Tanstack columns const columns: ColumnDef[] = [ columnHelper.accessor("name", { header: () => ( <> Name ), cell: (info) => ( ), }), columnHelper.accessor("link", { header: () => ( <> Link ), cell: (info) => ( ), }), columnHelper.accessor("program", { header: () => ( <> Program ), cell: (info) => (
{info.getValue().length != 0 ? info.getValue() : "no program"}
), }), columnHelper.accessor("summary", { header: () => ( <> {" "} Summary ), cell: (info) => (
{info.getValue()}
), }), ]; return ( ); }