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]);