From e284acde02e998f37f374fb268d7c901e4ee50f7 Mon Sep 17 00:00:00 2001 From: Nick A <nicolas.a.asanov@gmail.com> Date: Tue, 22 Oct 2024 15:48:53 -0400 Subject: [PATCH] Updated imports and client facing routes --- compass/app/admin/page.tsx | 4 +- compass/app/resource/page.tsx | 6 +- compass/app/resource_test/page.tsx | 177 --------------------- compass/app/service/page.tsx | 4 +- compass/components/Table/ResourceIndex.tsx | 2 +- compass/components/Table/ServiceIndex.tsx | 2 +- compass/components/Table/UserIndex.tsx | 2 +- 7 files changed, 10 insertions(+), 187 deletions(-) delete mode 100644 compass/app/resource_test/page.tsx diff --git a/compass/app/admin/page.tsx b/compass/app/admin/page.tsx index fede31d..8097b6c 100644 --- a/compass/app/admin/page.tsx +++ b/compass/app/admin/page.tsx @@ -1,7 +1,7 @@ "use client"; import { PageLayout } from "@/components/PageLayout"; -import { Table } from "@/components/Table/Index"; +import UserTable from "@/components/Table/UserIndex"; import User from "@/utils/models/User"; import { createClient } from "@/utils/supabase/client"; @@ -38,7 +38,7 @@ export default function Page() { <div className="min-h-screen flex flex-col"> {/* icon + title */} <PageLayout title="Users" icon={<UsersIcon />}> - <Table users={users} /> + <UserTable users={users} /> </PageLayout> </div> ); diff --git a/compass/app/resource/page.tsx b/compass/app/resource/page.tsx index fc4df14..ba641dc 100644 --- a/compass/app/resource/page.tsx +++ b/compass/app/resource/page.tsx @@ -1,8 +1,8 @@ "use client"; import { PageLayout } from "@/components/PageLayout"; -import { ResourceTable } from "@/components/Table/ResourceIndex"; import Resource from "@/utils/models/Resource"; +import ResourceTable from "@/components/Table/ResourceIndex"; import { createClient } from "@/utils/supabase/client"; import { BookmarkIcon } from "@heroicons/react/24/solid"; @@ -27,7 +27,7 @@ export default function Page() { ); const resourcesAPI: Resource[] = await userListData.json(); - + setResources(resourcesAPI); } @@ -38,7 +38,7 @@ export default function Page() { <div className="min-h-screen flex flex-col"> {/* icon + title */} <PageLayout title="Resources" icon={<BookmarkIcon />}> - <ResourceTable users={resources} /> + <ResourceTable resources={resources} /> </PageLayout> </div> ); diff --git a/compass/app/resource_test/page.tsx b/compass/app/resource_test/page.tsx deleted file mode 100644 index 519391e..0000000 --- a/compass/app/resource_test/page.tsx +++ /dev/null @@ -1,177 +0,0 @@ -"use client"; - -import { PageLayout } from "@/components/PageLayout"; -import { RowOpenAction } from "@/components/Table/RowOpenAction"; -import { RowOptionMenu } from "@/components/Table/RowOptionMenu"; -import { TestTable } from "@/components/Table/TestIndex"; -import TagsInput from "@/components/TagsInput/Index"; -import Resource from "@/utils/models/Resource"; -import { createClient } from "@/utils/supabase/client"; - -import { Bars2Icon, BookmarkIcon } from "@heroicons/react/24/solid"; -import { ColumnDef, createColumnHelper } from "@tanstack/react-table"; -import { useEffect, useState } from "react"; - -export default function Page() { - const [resources, setResources] = useState<Resource[]>([]); - const columnHelper = createColumnHelper<Resource>(); - - useEffect(() => { - async function getResources() { - const supabase = createClient(); - - const { data, error } = await supabase.auth.getUser(); - - if (error) { - console.log("Accessed admin page but not logged in"); - return; - } - - const userListData = await fetch( - `${process.env.NEXT_PUBLIC_HOST}/api/resource/all?uuid=${data.user.id}` - ); - - const resourcesAPI: Resource[] = await userListData.json(); - - setResources(resourcesAPI); - } - - getResources(); - }, []); - - const [data, setData] = useState<Resource[]>([]); - - const deleteUser = (userId: number) => { - console.log(data); - setData((currentData) => - currentData.filter((user) => user.id !== userId) - ); - }; - - const hideUser = (userId: number) => { - console.log(`Toggling visibility for user with ID: ${userId}`); - setData((currentData) => { - const newData = currentData - .map((user) => { - if (user.id === userId) { - return { ...user, visible: !user.visible }; - } - return user; - }) - .sort((a, b) => - a.visible === b.visible ? 0 : a.visible ? -1 : 1 - ); - - console.log(newData); - return newData; - }); - }; - - const addUser = () => { - setData([...data]); - }; - - const [presetOptions, setPresetOptions] = useState([ - "administrator", - "volunteer", - "employee", - ]); - const [tagColors, setTagColors] = useState(new Map()); - - const getTagColor = (tag: string) => { - if (!tagColors.has(tag)) { - const colors = [ - "bg-cyan-100", - "bg-blue-100", - "bg-green-100", - "bg-yellow-100", - "bg-purple-100", - ]; - const randomColor = - colors[Math.floor(Math.random() * colors.length)]; - setTagColors(new Map(tagColors).set(tag, randomColor)); - } - return tagColors.get(tag); - }; - - const handleRowUpdate = (updatedRow: Resource) => { - const dataIndex = data.findIndex((row) => row.id === updatedRow.id); - if (dataIndex !== -1) { - const updatedData = [...data]; - updatedData[dataIndex] = updatedRow; - setData(updatedData); - } - }; - - const columns: ColumnDef<Resource, any>[] = [ - columnHelper.display({ - id: "options", - cell: (props) => ( - <RowOptionMenu - onDelete={() => {}} - onHide={() => hideUser(props.row.original.id)} - /> - ), - }), - columnHelper.accessor("name", { - header: () => ( - <> - <Bars2Icon className="inline align-top h-4" /> Name - </> - ), - cell: (info) => ( - <RowOpenAction - title={info.getValue()} - rowData={info.row.original} - onRowUpdate={handleRowUpdate} - /> - ), - }), - columnHelper.accessor("link", { - header: () => ( - <> - <Bars2Icon className="inline align-top h-4" /> Link - </> - ), - cell: (info) => ( - <a - href={info.getValue()} - target={"_blank"} - className="ml-2 text-gray-500 underline hover:text-gray-400" - > - {info.getValue()} - </a> - ), - }), - columnHelper.accessor("program", { - header: () => ( - <> - <Bars2Icon className="inline align-top h-4" /> Program - </> - ), - cell: (info) => ( - <TagsInput presetValue={info.getValue()} /> - ), - }), - - columnHelper.accessor("summary", { - header: () => ( - <> - <Bars2Icon className="inline align-top h-4" /> Summary - </> - ), - cell: (info) => ( - <span className="ml-2 text-gray-500">{info.getValue()}</span> - ), - }), - ]; - - return ( - <div className="min-h-screen flex flex-col"> - {/* icon + title */} - <PageLayout title="Resources" icon={<BookmarkIcon />}> - <TestTable initialData={resources} columns={columns}/> - </PageLayout> - </div> - ); -} diff --git a/compass/app/service/page.tsx b/compass/app/service/page.tsx index 8ebea4f..cb6fbe5 100644 --- a/compass/app/service/page.tsx +++ b/compass/app/service/page.tsx @@ -1,7 +1,7 @@ "use client"; import { PageLayout } from "@/components/PageLayout"; -import { ServiceTable } from "@/components/Table/ServiceIndex"; +import ServiceTable from "@/components/Table/ServiceIndex"; import Service from "@/utils/models/Service"; import { createClient } from "@/utils/supabase/client"; @@ -37,7 +37,7 @@ export default function Page() { <div className="min-h-screen flex flex-col"> {/* icon + title */} <PageLayout title="Services" icon={<ClipboardIcon />}> - <ServiceTable users={services} /> + <ServiceTable services={services} /> </PageLayout> </div> ); diff --git a/compass/components/Table/ResourceIndex.tsx b/compass/components/Table/ResourceIndex.tsx index a4b66e7..085a14d 100644 --- a/compass/components/Table/ResourceIndex.tsx +++ b/compass/components/Table/ResourceIndex.tsx @@ -8,7 +8,7 @@ import TagsInput from "@/components/TagsInput/Index"; import Resource from "@/utils/models/Resource"; import { DataPoint } from "@/components/Table/Table"; -export function ResourceTable({ resources }: { resources: Resource[] }) { +export default function ResourceTable({ resources }: { resources: Resource[] }) { const columnHelper = createColumnHelper<Resource>(); const [data, setData] = useState<DataPoint[]>([...resources]); diff --git a/compass/components/Table/ServiceIndex.tsx b/compass/components/Table/ServiceIndex.tsx index fb32144..ac85cae 100644 --- a/compass/components/Table/ServiceIndex.tsx +++ b/compass/components/Table/ServiceIndex.tsx @@ -8,7 +8,7 @@ import TagsInput from "@/components/TagsInput/Index"; import Service from "@/utils/models/Service"; import { DataPoint } from "@/components/Table/Table"; -export const ServiceTable = ({ services }: { services: Service[] }) => { +export default function ServiceTable({ services }: { services: Service[] }) { const columnHelper = createColumnHelper<Service>(); const [data, setData] = useState<DataPoint[]>([...services]); diff --git a/compass/components/Table/UserIndex.tsx b/compass/components/Table/UserIndex.tsx index bc93f68..5b02a4d 100644 --- a/compass/components/Table/UserIndex.tsx +++ b/compass/components/Table/UserIndex.tsx @@ -8,7 +8,7 @@ import TagsInput from "@/components/TagsInput/Index"; import User from "@/utils/models/User"; import { DataPoint } from "@/components/Table/Table"; -export function UserTable({ users }: { users: User[] }) { +export default function UserTable({ users }: { users: User[] }) { const columnHelper = createColumnHelper<User>(); const [data, setData] = useState<DataPoint[]>([...users]);