diff --git a/app/explore/[slug]/layout.tsx b/app/explore/[slug]/layout.tsx new file mode 100644 index 0000000..3359a8c --- /dev/null +++ b/app/explore/[slug]/layout.tsx @@ -0,0 +1,23 @@ +import React from "react"; +import Toolbar from "@/components/filters/toolbar"; +import { container } from "@/components/primitives"; +import { FiltersProvider } from "@/contexts/filters"; +import { decodingSlug } from "@/utils/url"; + +export default function ExploreLayout({ + children, + params, +}: { + children: React.ReactNode; + params: { slug: string }; +}) { + const filters = decodingSlug(params.slug); + return ( + +
+ +
{children}
+
+
+ ); +} diff --git a/app/explore/[slug]/loading.tsx b/app/explore/[slug]/loading.tsx new file mode 100644 index 0000000..005f972 --- /dev/null +++ b/app/explore/[slug]/loading.tsx @@ -0,0 +1,5 @@ +import TableSkeleton from "@/components/table/skeleton"; + +export default function ExploreLoading() { + return ; +} diff --git a/app/explore/[slug]/page.tsx b/app/explore/[slug]/page.tsx index 9bd2f9f..5e6c148 100644 --- a/app/explore/[slug]/page.tsx +++ b/app/explore/[slug]/page.tsx @@ -1,3 +1,6 @@ +import ContributionsTable from "@/components/table/table"; +import { DEFAULT_PAGE_SIZE } from "@/data/fetch"; +import { queryDatabase } from "@/lib/notion"; import { PaginatedCustomDataResponse } from "@/types"; import { Contribution } from "@/types/contribution"; import { @@ -5,9 +8,6 @@ import { transformNotionDataToContributions, } from "@/utils/notion"; import { decodingSlug } from "@/utils/url"; -import { queryDatabase } from "@/lib/notion"; -import ControlledTable from "@/components/controlled-table"; -import { DEFAULT_PAGE_SIZE } from "@/data/fetch"; export default async function ExplorePage({ params, @@ -27,10 +27,12 @@ export default async function ExplorePage({ nextCursor: data.next_cursor ?? undefined, }; return ( - ); } diff --git a/components/table/skeleton.tsx b/components/table/skeleton.tsx new file mode 100644 index 0000000..3cfc867 --- /dev/null +++ b/components/table/skeleton.tsx @@ -0,0 +1,53 @@ +"use client"; +import React from "react"; +import { Skeleton } from "@nextui-org/skeleton"; +import { + Table as NuiTable, + TableHeader, + TableBody, + TableColumn, + TableRow, + TableCell, +} from "@nextui-org/table"; + +export const TableSkeleton = () => { + const placeholderItems = Array.from({ length: 25 }, (_, index) => ({ + id: index + 1, + })); + + return ( + <> + + + Skeleton + + + {(item) => ( + + + +
+
+
+
+ )} +
+
+ + ); +}; + +export default TableSkeleton; diff --git a/components/table/table.tsx b/components/table/table.tsx index 325d31d..c995bf5 100644 --- a/components/table/table.tsx +++ b/components/table/table.tsx @@ -35,6 +35,7 @@ export const Table = ({ items, queries = {} }: ITableProps) => { { name: "CONTENT", uid: "content" }, { name: "LABELS", uid: "labels" }, { name: "DATE", uid: "date" }, + { name: "ACTIONS", uid: "actions" }, ]); const {