Skip to main content
Glama

Karakeep MCP server

by karakeep-app
BookmarksGridSkeleton.tsx2.6 kB
// TODO: Refactor the bookmark layout grid to be generic and allow to pass the bookmark component generically. // This removes the need for handling the layout in this component. import { useMemo } from "react"; import { Skeleton } from "@/components/ui/skeleton"; import { bookmarkLayoutSwitch, useBookmarkLayout, useGridColumns, } from "@/lib/userLocalSettings/bookmarksLayout"; import tailwindConfig from "@/tailwind.config"; import Masonry from "react-masonry-css"; import resolveConfig from "tailwindcss/resolveConfig"; function getBreakpointConfig(userColumns: number) { const fullConfig = resolveConfig(tailwindConfig); const breakpointColumnsObj: { [key: number]: number; default: number } = { default: userColumns, }; const lgColumns = Math.max(1, Math.min(userColumns, userColumns - 1)); const mdColumns = Math.max(1, Math.min(userColumns, 2)); const smColumns = 1; breakpointColumnsObj[parseInt(fullConfig.theme.screens.lg)] = lgColumns; breakpointColumnsObj[parseInt(fullConfig.theme.screens.md)] = mdColumns; breakpointColumnsObj[parseInt(fullConfig.theme.screens.sm)] = smColumns; return breakpointColumnsObj; } function BookmarkCardSkeleton({ height }: { height: string }) { return ( <div className="mb-4 border border-border bg-card p-4"> <div className="space-y-3"> <Skeleton className={`w-full ${height}`} /> <div className="flex items-center space-x-2"> <Skeleton className="h-4 w-4 rounded-full" /> <Skeleton className="h-3 w-24" /> </div> <Skeleton className="h-4 w-3/4" /> </div> </div> ); } export default function BookmarksGridSkeleton({ count = 12, }: { count?: number; }) { const layout = useBookmarkLayout(); const gridColumns = useGridColumns(); const breakpointConfig = useMemo( () => getBreakpointConfig(gridColumns), [gridColumns], ); const children = Array.from({ length: count }, (_, i) => ( <BookmarkCardSkeleton key={i} height={bookmarkLayoutSwitch(layout, { masonry: "h-48", grid: "h-48", list: "h-32", compact: "h-4", })} /> )); return bookmarkLayoutSwitch(layout, { masonry: ( <Masonry className="flex gap-4" breakpointCols={breakpointConfig}> {children} </Masonry> ), grid: ( <Masonry className="flex gap-4" breakpointCols={breakpointConfig}> {children} </Masonry> ), list: <div className="grid grid-cols-1">{children}</div>, compact: <div className="grid grid-cols-1">{children}</div>, }); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/karakeep-app/karakeep'

If you have feedback or need assistance with the MCP directory API, please join our Discord server