diff --git a/packages/frontend/core/src/components/explorer/context.ts b/packages/frontend/core/src/components/explorer/context.ts index 54d1066b1..88a3b96e4 100644 --- a/packages/frontend/core/src/components/explorer/context.ts +++ b/packages/frontend/core/src/components/explorer/context.ts @@ -15,6 +15,8 @@ const DefaultDisplayPreference: ExplorerDisplayPreference = { showDocIcon: true, showDocPreview: true, quickFavorite: true, + showDragHandle: true, + showMoreOperation: true, }; export type DocExplorerContextType = { @@ -85,5 +87,11 @@ export const createDocExplorerContext = ( quickTab$: displayPreference$.selector( displayPreference => displayPreference.quickTab ), + showMoreOperation$: displayPreference$.selector( + displayPreference => displayPreference.showMoreOperation + ), + showDragHandle$: displayPreference$.selector( + displayPreference => displayPreference.showDragHandle + ), } satisfies DocExplorerContextType; }; diff --git a/packages/frontend/core/src/components/explorer/docs-view/doc-list-item.tsx b/packages/frontend/core/src/components/explorer/docs-view/doc-list-item.tsx index 624ff84df..3160b108a 100644 --- a/packages/frontend/core/src/components/explorer/docs-view/doc-list-item.tsx +++ b/packages/frontend/core/src/components/explorer/docs-view/doc-list-item.tsx @@ -8,7 +8,6 @@ import { DocsService } from '@affine/core/modules/doc'; import { DocDisplayMetaService } from '@affine/core/modules/doc-display-meta'; import { WorkbenchLink } from '@affine/core/modules/workbench'; import type { AffineDNDData } from '@affine/core/types/dnd'; -import { useI18n } from '@affine/i18n'; import { AutoTidyUpIcon, PropertyIcon, @@ -146,20 +145,45 @@ export const DocListItem = ({ ...props }: DocListItemProps) => { [contextValue, handleMultiSelect, prevCheckAnchorId, props, selectMode] ); + const { dragRef, CustomDragPreview } = useDraggable( + () => ({ + canDrag: true, + data: { + entity: { + type: 'doc', + id: props.docId as string, + }, + from: { + at: 'all-docs:list', + }, + }, + }), + [props.docId] + ); + return ( - - {view === 'list' ? ( - - ) : ( - - )} - + <> + + {view === 'list' ? ( + + ) : ( + + )} + + + + + + ); }; @@ -172,10 +196,9 @@ const RawDocIcon = memo(function RawDocIcon({ return ; }); const RawDocTitle = memo(function RawDocTitle({ id }: { id: string }) { - const i18n = useI18n(); const docDisplayMetaService = useService(DocDisplayMetaService); const title = useLiveData(docDisplayMetaService.title$(id)); - return i18n.t(title); + return title; }); const RawDocPreview = memo(function RawDocPreview({ id, @@ -188,47 +211,20 @@ const RawDocPreview = memo(function RawDocPreview({ }); const DragHandle = memo(function DragHandle({ id, - preview, ...props -}: HTMLProps & { preview?: ReactNode }) { +}: HTMLProps) { const contextValue = useContext(DocExplorerContext); const selectMode = useLiveData(contextValue.selectMode$); const showDragHandle = useLiveData(contextValue.showDragHandle$); - const { dragRef, CustomDragPreview } = useDraggable( - () => ({ - canDrag: true, - data: { - entity: { - type: 'doc', - id: id as string, - }, - from: { - at: 'all-docs:list', - }, - }, - }), - [id] - ); - if (selectMode || !id || !showDragHandle) { return null; } return ( - <> -
- -
- - {preview ?? ( - <> - - - - )} - - +
+ +
); }); const Select = memo(function Select({ @@ -248,7 +244,11 @@ const Select = memo(function Select({ } return ( -
+
{