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 (
+
+
+
+
+
+
+ );
+}
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 {