diff --git a/apps/client/src/components/common/recent-changes.tsx b/apps/client/src/components/common/recent-changes.tsx
new file mode 100644
index 00000000..c7da7f46
--- /dev/null
+++ b/apps/client/src/components/common/recent-changes.tsx
@@ -0,0 +1,78 @@
+import {
+ Text,
+ Group,
+ Stack,
+ UnstyledButton,
+ Divider,
+ Badge,
+} from "@mantine/core";
+import classes from "../../features/home/components/home.module.css";
+import { Link } from "react-router-dom";
+import PageListSkeleton from "@/components/ui/page-list-skeleton.tsx";
+import { buildPageUrl } from "@/features/page/page.utils.ts";
+import { formattedDate } from "@/lib/time.ts";
+import { useRecentChangesQuery } from "@/features/page/queries/page-query.ts";
+import { IconFileDescription } from "@tabler/icons-react";
+import { getSpaceUrl } from "@/lib/config.ts";
+
+interface Props {
+ spaceId?: string;
+}
+export default function RecentChanges({ spaceId }: Props) {
+ const { data: pages, isLoading, isError } = useRecentChangesQuery(spaceId);
+
+ if (isLoading) {
+ return ;
+ }
+
+ if (isError) {
+ return Failed to fetch recent pages;
+ }
+
+ return pages && pages.items.length > 0 ? (
+
+ {pages.items.map((page) => (
+
+
+
+
+
+ {page.icon || }
+
+
+ {page.title || "Untitled"}
+
+
+
+
+ {!spaceId && (
+
+ {page.space.name}
+
+ )}
+
+
+ {formattedDate(page.updatedAt)}
+
+
+
+
+
+ ))}
+
+ ) : (
+
+ No records to show
+
+ );
+}
diff --git a/apps/client/src/features/home/components/home-tabs.tsx b/apps/client/src/features/home/components/home-tabs.tsx
index a10bec31..2351d5ed 100644
--- a/apps/client/src/features/home/components/home-tabs.tsx
+++ b/apps/client/src/features/home/components/home-tabs.tsx
@@ -1,6 +1,6 @@
import { Text, Tabs, Space } from "@mantine/core";
import { IconClockHour3 } from "@tabler/icons-react";
-import RecentChanges from "@/features/home/components/recent-changes";
+import RecentChanges from "@/components/common/recent-changes.tsx";
export default function HomeTabs() {
return (
@@ -8,7 +8,7 @@ export default function HomeTabs() {
}>
- Recent changes
+ Recently updated
diff --git a/apps/client/src/features/home/components/recent-changes.tsx b/apps/client/src/features/home/components/recent-changes.tsx
deleted file mode 100644
index 9a92e56f..00000000
--- a/apps/client/src/features/home/components/recent-changes.tsx
+++ /dev/null
@@ -1,73 +0,0 @@
-import {
- Text,
- Group,
- Stack,
- UnstyledButton,
- Divider,
- Badge,
-} from "@mantine/core";
-import classes from "./home.module.css";
-import { Link } from "react-router-dom";
-import PageListSkeleton from "@/components/ui/page-list-skeleton.tsx";
-import { buildPageUrl } from "@/features/page/page.utils.ts";
-import { formattedDate } from "@/lib/time.ts";
-import { useRecentChangesQuery } from "@/features/page/queries/page-query.ts";
-import { IconFileDescription } from "@tabler/icons-react";
-import { getSpaceUrl } from "@/lib/config.ts";
-
-function RecentChanges() {
- const { data, isLoading, isError } = useRecentChangesQuery();
-
- if (isLoading) {
- return ;
- }
-
- if (isError) {
- return Failed to fetch recent pages;
- }
-
- return (
- data && (
-
- {data.items.map((page) => (
-
-
-
-
-
- {page.icon || }
-
-
- {page.title || "Untitled"}
-
-
-
-
-
- {page.space.name}
-
-
-
- {formattedDate(page.updatedAt)}
-
-
-
-
-
- ))}
-
- )
- );
-}
-
-export default RecentChanges;
diff --git a/apps/client/src/features/space/components/space-home-tabs.tsx b/apps/client/src/features/space/components/space-home-tabs.tsx
index 63880e39..3d9fd5b0 100644
--- a/apps/client/src/features/space/components/space-home-tabs.tsx
+++ b/apps/client/src/features/space/components/space-home-tabs.tsx
@@ -1,14 +1,19 @@
import { Text, Tabs, Space } from "@mantine/core";
import { IconClockHour3 } from "@tabler/icons-react";
-import SpaceRecentChanges from "@/features/space/components/space-recent-changes.tsx";
+import RecentChanges from "@/components/common/recent-changes.tsx";
+import { useParams } from "react-router-dom";
+import { useGetSpaceBySlugQuery } from "@/features/space/queries/space-query.ts";
export default function SpaceHomeTabs() {
+ const { spaceSlug } = useParams();
+ const { data: space } = useGetSpaceBySlugQuery(spaceSlug);
+
return (
}>
- Recent changes
+ Recently updated
@@ -16,7 +21,7 @@ export default function SpaceHomeTabs() {
-
+
);
diff --git a/apps/client/src/features/space/components/space-recent-changes.tsx b/apps/client/src/features/space/components/space-recent-changes.tsx
deleted file mode 100644
index 7ae7a349..00000000
--- a/apps/client/src/features/space/components/space-recent-changes.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-import { Text, Group, Stack, UnstyledButton, Divider } from "@mantine/core";
-import classes from "./space-home.module.css";
-import { Link, useParams } from "react-router-dom";
-import { buildPageUrl } from "@/features/page/page.utils.ts";
-import { formattedDate } from "@/lib/time.ts";
-import { useRecentChangesQuery } from "@/features/page/queries/page-query.ts";
-import { useGetSpaceBySlugQuery } from "@/features/space/queries/space-query.ts";
-
-function SpaceRecentChanges() {
- const { spaceSlug } = useParams();
- const { data: space } = useGetSpaceBySlugQuery(spaceSlug);
- const { data, isLoading, isError } = useRecentChangesQuery(space?.id);
-
- if (isLoading) {
- return <>>;
- }
-
- if (isError) {
- return Failed to fetch recent pages;
- }
-
- return (
- data && (
-
- {data.items.map((page) => (
-
-
-
-
-
- {page.title || "Untitled"}
-
-
-
-
- {formattedDate(page.updatedAt)}
-
-
-
-
-
- ))}
-
- )
- );
-}
-
-export default SpaceRecentChanges;