mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-25 06:18:45 +08:00
feat(core): impl doc display meta extension (#9165)
Closes: [BS-2111](https://linear.app/affine-design/issue/BS-2111/定义和实现-docdisplaymetaextension) Upstreams: https://github.com/toeverything/blocksuite/pull/8953 https://github.com/user-attachments/assets/008d7433-efef-47c4-8189-9bc288e61199
This commit is contained in:
@@ -8,7 +8,6 @@ import {
|
||||
WorkbenchLink,
|
||||
type WorkbenchLinkProps,
|
||||
} from '@affine/core/modules/workbench';
|
||||
import { useI18n } from '@affine/i18n';
|
||||
import type { DocMeta } from '@blocksuite/affine/store';
|
||||
import { useLiveData, useService } from '@toeverything/infra';
|
||||
import clsx from 'clsx';
|
||||
@@ -48,13 +47,9 @@ export const DocCard = forwardRef<HTMLAnchorElement, DocCardProps>(
|
||||
outerRef
|
||||
) {
|
||||
const containerRef = useRef<HTMLAnchorElement | null>(null);
|
||||
const t = useI18n();
|
||||
const favAdapter = useService(CompatibleFavoriteItemsAdapter);
|
||||
const docDisplayService = useService(DocDisplayMetaService);
|
||||
const titleInfo = useLiveData(docDisplayService.title$(meta.id));
|
||||
const title =
|
||||
typeof titleInfo === 'string' ? titleInfo : t[titleInfo.i18nKey]();
|
||||
|
||||
const title = useLiveData(docDisplayService.title$(meta.id));
|
||||
const favorited = useLiveData(favAdapter.isFavorite$(meta.id, 'doc'));
|
||||
|
||||
const toggleFavorite = useCatchEventCallback(
|
||||
|
||||
@@ -19,11 +19,9 @@ const DocIcon = ({ docId }: { docId: string }) => {
|
||||
};
|
||||
|
||||
const DocLabel = ({ docId }: { docId: string }) => {
|
||||
const t = useI18n();
|
||||
const docDisplayMetaService = useService(DocDisplayMetaService);
|
||||
const label = useLiveData(docDisplayMetaService.title$(docId));
|
||||
|
||||
return typeof label === 'string' ? label : t[label.i18nKey]();
|
||||
return label;
|
||||
};
|
||||
|
||||
export const DocSelectorDialog = ({
|
||||
|
||||
@@ -15,7 +15,7 @@ import { EditorService } from '@affine/core/modules/editor';
|
||||
import { JournalService } from '@affine/core/modules/journal';
|
||||
import { WorkbenchService } from '@affine/core/modules/workbench';
|
||||
import { ViewService } from '@affine/core/modules/workbench/services/view';
|
||||
import { i18nTime, useI18n } from '@affine/i18n';
|
||||
import { i18nTime } from '@affine/i18n';
|
||||
import {
|
||||
BookmarkBlockService,
|
||||
customImageProxyMiddleware,
|
||||
@@ -240,14 +240,11 @@ const MobileDetailPage = ({
|
||||
pageId: string;
|
||||
date?: string;
|
||||
}) => {
|
||||
const t = useI18n();
|
||||
const docDisplayMetaService = useService(DocDisplayMetaService);
|
||||
const journalService = useService(JournalService);
|
||||
const workbench = useService(WorkbenchService).workbench;
|
||||
const [showTitle, setShowTitle] = useState(checkShowTitle);
|
||||
const titleInfo = useLiveData(docDisplayMetaService.title$(pageId));
|
||||
const title =
|
||||
typeof titleInfo === 'string' ? titleInfo : t[titleInfo.i18nKey]();
|
||||
const title = useLiveData(docDisplayMetaService.title$(pageId));
|
||||
|
||||
const allJournalDates = useLiveData(journalService.allJournalDates$);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user