import { IconButton } from '@affine/component'; import { PagePreview } from '@affine/core/components/page-list/page-content-preview'; import { IsFavoriteIcon } from '@affine/core/components/pure/icons'; import { CompatibleFavoriteItemsAdapter } from '@affine/core/modules/properties'; import { WorkbenchLink, type WorkbenchLinkProps, } from '@affine/core/modules/workbench'; import type { DocMeta } from '@blocksuite/store'; import { useLiveData, useService, WorkspaceService } from '@toeverything/infra'; import clsx from 'clsx'; import { forwardRef, useCallback } from 'react'; import * as styles from './styles.css'; import { DocCardTags } from './tag'; export interface DocCardProps extends Omit { meta: DocMeta; showTags?: boolean; } export const DocCard = forwardRef( function DocCard({ showTags = true, meta, className, ...attrs }, ref) { const favAdapter = useService(CompatibleFavoriteItemsAdapter); const workspace = useService(WorkspaceService).workspace; const favorited = useLiveData(favAdapter.isFavorite$(meta.id, 'doc')); const toggleFavorite = useCallback( () => favAdapter.toggle(meta.id, 'doc'), [favAdapter, meta.id] ); return (

{meta.title || Untitled}

} />
Empty} />
{showTags ? : null}
); } );