"use client"; import LinkCard from "./LinkCard"; 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 { useMemo } from "react"; function getBreakpointConfig() { const fullConfig = resolveConfig(tailwindConfig) const breakpointColumnsObj: {[key: number]: number, default: number} = { default: 3, }; breakpointColumnsObj[parseInt(fullConfig.theme.screens.lg)] = 2; breakpointColumnsObj[parseInt(fullConfig.theme.screens.md)] = 1; breakpointColumnsObj[parseInt(fullConfig.theme.screens.sm)] = 1; return breakpointColumnsObj; } function renderBookmark(bookmark: ZBookmark) { let comp; switch (bookmark.content.type) { case "link": comp = ; break; case "text": comp = ; break; } return ( {comp} ); } export default function BookmarksGrid({ query, bookmarks: initialBookmarks, }: { query: ZGetBookmarksRequest; bookmarks: ZBookmark[]; }) { const { data } = api.bookmarks.getBookmarks.useQuery(query, { initialData: { bookmarks: initialBookmarks }, }); const breakpointConfig = useMemo(() => getBreakpointConfig(), []); if (data.bookmarks.length == 0) { return

No bookmarks

; } return ( {data.bookmarks.map((b) => renderBookmark(b))} ); }