From 9dff0db9ac05f232c6f73d4d76908d22bb8de71e Mon Sep 17 00:00:00 2001 From: Peng Xiao Date: Tue, 6 Dec 2022 15:10:25 +0800 Subject: [PATCH] fix: do not show links for the current page --- src/main/frontend/extensions/tldraw.cljs | 1 + src/main/frontend/handler/whiteboard.cljs | 2 +- .../src/components/BlockLink/BlockLink.tsx | 2 +- .../src/components/QuickLinks/QuickLinks.tsx | 12 ++++++++++-- tldraw/apps/tldraw-logseq/src/lib/logseq-context.ts | 1 + 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/frontend/extensions/tldraw.cljs b/src/main/frontend/extensions/tldraw.cljs index 8516bc945..0d67187bd 100644 --- a/src/main/frontend/extensions/tldraw.cljs +++ b/src/main/frontend/extensions/tldraw.cljs @@ -78,6 +78,7 @@ (defn get-tldraw-handlers [current-whiteboard-name] {:search search-handler :queryBlockByUUID #(clj->js (model/query-block-by-uuid (parse-uuid %))) + :getBlockPageName #(:block/name (model/get-block-page (state/get-current-repo) (parse-uuid %))) :isWhiteboardPage model/whiteboard-page? :saveAsset save-asset-handler :makeAssetUrl editor-handler/make-asset-url diff --git a/src/main/frontend/handler/whiteboard.cljs b/src/main/frontend/handler/whiteboard.cljs index e147711d5..8db258141 100644 --- a/src/main/frontend/handler/whiteboard.cljs +++ b/src/main/frontend/handler/whiteboard.cljs @@ -96,7 +96,7 @@ :selectedIds #js[] :pages [(merge tldr-page {:id id - :name "page" + :name (:block/name page-block) :shapes shapes})]}))) (defn transact-tldr! [page-name tldr] diff --git a/tldraw/apps/tldraw-logseq/src/components/BlockLink/BlockLink.tsx b/tldraw/apps/tldraw-logseq/src/components/BlockLink/BlockLink.tsx index 1e5701a86..33bf0cced 100644 --- a/tldraw/apps/tldraw-logseq/src/components/BlockLink/BlockLink.tsx +++ b/tldraw/apps/tldraw-logseq/src/components/BlockLink/BlockLink.tsx @@ -12,7 +12,7 @@ export const BlockLink = ({ }) => { const { handlers: { isWhiteboardPage, redirectToPage, sidebarAddBlock, queryBlockByUUID }, - renderers: { Breadcrumb, PageName, BlockReference }, + renderers: { Breadcrumb, PageName }, } = React.useContext(LogseqContext) let iconName = '' diff --git a/tldraw/apps/tldraw-logseq/src/components/QuickLinks/QuickLinks.tsx b/tldraw/apps/tldraw-logseq/src/components/QuickLinks/QuickLinks.tsx index 84d842613..87deb9718 100644 --- a/tldraw/apps/tldraw-logseq/src/components/QuickLinks/QuickLinks.tsx +++ b/tldraw/apps/tldraw-logseq/src/components/QuickLinks/QuickLinks.tsx @@ -1,10 +1,13 @@ -import type { TLQuickLinksComponent } from '@tldraw/react' +import { TLQuickLinksComponent, useApp } from '@tldraw/react' import { observer } from 'mobx-react-lite' import React from 'react' import type { Shape } from '../../lib' +import { LogseqContext } from '../../lib/logseq-context' import { BlockLink } from '../BlockLink' export const QuickLinks: TLQuickLinksComponent = observer(({ shape }) => { + const app = useApp() + const { handlers } = React.useContext(LogseqContext) const links = React.useMemo(() => { const links = [...(shape.props.refs ?? [])].map<[ref: string, showReferenceContent: boolean]>( // user added links should show the referenced block content @@ -16,7 +19,12 @@ export const QuickLinks: TLQuickLinksComponent = observer(({ shape }) => links.unshift([shape.props.pageId, false]) } - return links + // do not show links for the current page + return links.filter( + link => + link[0].toLowerCase() !== app.currentPage.name && + handlers.getBlockPageName(link[0]) !== app.currentPage.name + ) }, [shape.props.type, shape.props.parentId, shape.props.refs]) if (links.length === 0) return null diff --git a/tldraw/apps/tldraw-logseq/src/lib/logseq-context.ts b/tldraw/apps/tldraw-logseq/src/lib/logseq-context.ts index 0abfdcb08..fcd47ec7c 100644 --- a/tldraw/apps/tldraw-logseq/src/lib/logseq-context.ts +++ b/tldraw/apps/tldraw-logseq/src/lib/logseq-context.ts @@ -43,6 +43,7 @@ export interface LogseqContextValue { addNewWhiteboard: (pageName: string) => void addNewBlock: (content: string) => string // returns the new block uuid queryBlockByUUID: (uuid: string) => any + getBlockPageName: (uuid: string) => string isWhiteboardPage: (pageName: string) => boolean saveAsset: (file: File) => Promise makeAssetUrl: (relativeUrl: string) => string