fix: do not show links for the current page

pull/7550/head
Peng Xiao 2022-12-06 15:10:25 +08:00 committed by Tienson Qin
parent e74d9d3526
commit 9dff0db9ac
5 changed files with 14 additions and 4 deletions

View File

@ -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

View File

@ -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]

View File

@ -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 = ''

View File

@ -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<Shape> = 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<Shape> = 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

View File

@ -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<string>
makeAssetUrl: (relativeUrl: string) => string