@@ -12,6 +12,7 @@ import {
|
|||||||
import { toURLSearchParams } from '@affine/core/modules/navigation';
|
import { toURLSearchParams } from '@affine/core/modules/navigation';
|
||||||
import { WorkbenchLink } from '@affine/core/modules/workbench';
|
import { WorkbenchLink } from '@affine/core/modules/workbench';
|
||||||
import { useI18n } from '@affine/i18n';
|
import { useI18n } from '@affine/i18n';
|
||||||
|
import track from '@affine/track';
|
||||||
import type { JobMiddleware } from '@blocksuite/affine/store';
|
import type { JobMiddleware } from '@blocksuite/affine/store';
|
||||||
import { ToggleExpandIcon } from '@blocksuite/icons/rc';
|
import { ToggleExpandIcon } from '@blocksuite/icons/rc';
|
||||||
import * as Collapsible from '@radix-ui/react-collapsible';
|
import * as Collapsible from '@radix-ui/react-collapsible';
|
||||||
@@ -93,8 +94,16 @@ const CollapsibleSection = ({
|
|||||||
docId,
|
docId,
|
||||||
linkDocId
|
linkDocId
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const handleToggle = useCallback(() => {
|
||||||
|
setOpen(!open);
|
||||||
|
track.doc.biDirectionalLinksPanel.$.toggle({
|
||||||
|
type: open ? 'collapse' : 'expand',
|
||||||
|
});
|
||||||
|
}, [open, setOpen]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Collapsible.Root open={open} onOpenChange={setOpen}>
|
<Collapsible.Root open={open} onOpenChange={handleToggle}>
|
||||||
<Collapsible.Trigger className={styles.link}>
|
<Collapsible.Trigger className={styles.link}>
|
||||||
{title}
|
{title}
|
||||||
{length ? (
|
{length ? (
|
||||||
@@ -197,6 +206,9 @@ export const BiDirectionalLinkPanel = () => {
|
|||||||
|
|
||||||
const handleClickShow = useCallback(() => {
|
const handleClickShow = useCallback(() => {
|
||||||
setShow(!show);
|
setShow(!show);
|
||||||
|
track.doc.biDirectionalLinksPanel.$.toggle({
|
||||||
|
type: show ? 'collapse' : 'expand',
|
||||||
|
});
|
||||||
}, [show, setShow]);
|
}, [show, setShow]);
|
||||||
|
|
||||||
const textRendererOptions = useMemo(() => {
|
const textRendererOptions = useMemo(() => {
|
||||||
@@ -243,7 +255,14 @@ export const BiDirectionalLinkPanel = () => {
|
|||||||
{backlinkGroups.map(linkGroup => (
|
{backlinkGroups.map(linkGroup => (
|
||||||
<CollapsibleSection
|
<CollapsibleSection
|
||||||
key={linkGroup.docId}
|
key={linkGroup.docId}
|
||||||
title={<AffinePageReference pageId={linkGroup.docId} />}
|
title={
|
||||||
|
<AffinePageReference
|
||||||
|
pageId={linkGroup.docId}
|
||||||
|
onClick={() => {
|
||||||
|
track.doc.biDirectionalLinksPanel.backlinkTitle.navigate();
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
}
|
||||||
length={linkGroup.links.length}
|
length={linkGroup.links.length}
|
||||||
docId={docService.doc.id}
|
docId={docService.doc.id}
|
||||||
linkDocId={linkGroup.docId}
|
linkDocId={linkGroup.docId}
|
||||||
@@ -289,6 +308,9 @@ export const BiDirectionalLinkPanel = () => {
|
|||||||
to={to}
|
to={to}
|
||||||
key={link.blockId}
|
key={link.blockId}
|
||||||
className={styles.linkPreview}
|
className={styles.linkPreview}
|
||||||
|
onClick={() => {
|
||||||
|
track.doc.biDirectionalLinksPanel.backlinkPreview.navigate();
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
{edgelessLink ? (
|
{edgelessLink ? (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@@ -322,6 +322,11 @@ const PageEvents = {
|
|||||||
sidepanel: {
|
sidepanel: {
|
||||||
property: ['addProperty'],
|
property: ['addProperty'],
|
||||||
},
|
},
|
||||||
|
biDirectionalLinksPanel: {
|
||||||
|
$: ['toggle'],
|
||||||
|
backlinkTitle: ['toggle', 'navigate'],
|
||||||
|
backlinkPreview: ['navigate'],
|
||||||
|
},
|
||||||
},
|
},
|
||||||
edgeless: {},
|
edgeless: {},
|
||||||
workspace: {
|
workspace: {
|
||||||
|
|||||||
Reference in New Issue
Block a user