diff options
| author | MohamedBassem <me@mbassem.com> | 2024-03-02 20:45:11 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-03-02 22:14:46 +0000 |
| commit | 29b7c5c8d10d5315fea27fc25f1f153c6c12dfbf (patch) | |
| tree | 9c4680a1020f723cbd1000d30a74c487293ccc63 /packages/web/app/dashboard | |
| parent | 012cef2829c7b65d487f44f14f9b296be73cfcfd (diff) | |
| download | karakeep-29b7c5c8d10d5315fea27fc25f1f153c6c12dfbf.tar.zst | |
fix: Fix hydration in list view caused by the spinner
Diffstat (limited to 'packages/web/app/dashboard')
3 files changed, 17 insertions, 16 deletions
diff --git a/packages/web/app/dashboard/bookmarks/components/BookmarksGrid.tsx b/packages/web/app/dashboard/bookmarks/components/BookmarksGrid.tsx index 293b7765..554d20a0 100644 --- a/packages/web/app/dashboard/bookmarks/components/BookmarksGrid.tsx +++ b/packages/web/app/dashboard/bookmarks/components/BookmarksGrid.tsx @@ -5,15 +5,15 @@ import { ZBookmark, ZGetBookmarksRequest } from "@/lib/types/api/bookmarks"; import { api } from "@/lib/trpc"; import TextCard from "./TextCard"; import { Slot } from "@radix-ui/react-slot"; -import Masonry from 'react-masonry-css'; -import resolveConfig from 'tailwindcss/resolveConfig' -import tailwindConfig from '@/tailwind.config' +import Masonry from "react-masonry-css"; +import resolveConfig from "tailwindcss/resolveConfig"; +import tailwindConfig from "@/tailwind.config"; import { useMemo } from "react"; function getBreakpointConfig() { - const fullConfig = resolveConfig(tailwindConfig) + const fullConfig = resolveConfig(tailwindConfig); - const breakpointColumnsObj: {[key: number]: number, default: number} = { + const breakpointColumnsObj: { [key: number]: number; default: number } = { default: 3, }; breakpointColumnsObj[parseInt(fullConfig.theme.screens.lg)] = 2; @@ -22,7 +22,6 @@ function getBreakpointConfig() { return breakpointColumnsObj; } - function renderBookmark(bookmark: ZBookmark) { let comp; switch (bookmark.content.type) { @@ -58,7 +57,7 @@ export default function BookmarksGrid({ return <p>No bookmarks</p>; } return ( - <Masonry className="flex gap-4" breakpointCols={breakpointConfig} > + <Masonry className="flex gap-4" breakpointCols={breakpointConfig}> {data.bookmarks.map((b) => renderBookmark(b))} </Masonry> ); diff --git a/packages/web/app/dashboard/components/AllLists.tsx b/packages/web/app/dashboard/components/AllLists.tsx index c8b55d73..8903c82a 100644 --- a/packages/web/app/dashboard/components/AllLists.tsx +++ b/packages/web/app/dashboard/components/AllLists.tsx @@ -2,17 +2,21 @@ import { api } from "@/lib/trpc"; import SidebarItem from "./SidebarItem"; -import LoadingSpinner from "@/components/ui/spinner"; import NewListModal, { useNewListModal } from "./NewListModal"; import { Plus } from "lucide-react"; import Link from "next/link"; import { ZBookmarkList } from "@/lib/types/api/lists"; -export default function AllLists({initialData}: {initialData: {lists: ZBookmarkList[]}}) { - const { data: lists } = api.lists.list.useQuery(undefined, { +export default function AllLists({ + initialData, +}: { + initialData: { lists: ZBookmarkList[] }; +}) { + let { data: lists } = api.lists.list.useQuery(undefined, { initialData, }); - + // TODO: This seems to be a bug in react query + lists ||= initialData; const { setOpen } = useNewListModal(); return ( diff --git a/packages/web/app/dashboard/lists/components/AllListsView.tsx b/packages/web/app/dashboard/lists/components/AllListsView.tsx index 155cdbcf..d81f5fca 100644 --- a/packages/web/app/dashboard/lists/components/AllListsView.tsx +++ b/packages/web/app/dashboard/lists/components/AllListsView.tsx @@ -1,7 +1,6 @@ "use client"; import { Button } from "@/components/ui/button"; -import LoadingSpinner from "@/components/ui/spinner"; import { api } from "@/lib/trpc"; import { ZBookmarkList } from "@/lib/types/api/lists"; import { keepPreviousData } from "@tanstack/react-query"; @@ -35,14 +34,13 @@ export default function AllListsView({ initialData: ZBookmarkList[]; }) { const { setOpen: setIsNewListModalOpen } = useNewListModal(); - const { data: lists } = api.lists.list.useQuery(undefined, { + let { data: lists } = api.lists.list.useQuery(undefined, { initialData: { lists: initialData }, placeholderData: keepPreviousData, }); - if (!lists) { - return <LoadingSpinner />; - } + // TODO: This seems to be a bug in react query + lists ||= { lists: initialData }; return ( <div className="flex flex-col flex-wrap gap-2 md:flex-row"> |
