import type { EntriesPreview } from "@client/query/entries" import type { Feed } from "@client/query/feed" import { FeedIcon } from "@follow/components/ui/feed-icon/index.jsx" import { TitleMarquee } from "@follow/components/ui/marquee/index.jsx" import { cn } from "@follow/utils/utils" import dayjs from "dayjs" import type { FC } from "react" import { TeleportalTakeOff } from "../layout/main/teleportal" import { LazyImage } from "../ui/image" export const GridList: FC<{ entries: EntriesPreview feed: Feed }> = ({ entries, feed }) => { return (
{entries.map((entry) => (
))}
) } const Wrapper: FC<{ children: React.ReactNode href: string wrapperClassName?: string }> = ({ children, href, wrapperClassName }) => { return ( {children} ) } const GridItemFooter: FC<{ feed: Feed entryId: string entryPreview: EntriesPreview[number] }> = ({ feed, entryPreview }) => { return (
{entryPreview.title}
{feed.feed.title} ยท {dayjs .duration(dayjs(entryPreview.publishedAt).diff(dayjs(), "minute"), "minute") .humanize()}
) }