feat: Intra-line double link interaction

This commit is contained in:
xiaodong zuo
2022-08-19 10:27:26 +08:00
parent f0f60654e8
commit 1820135f3a
2 changed files with 32 additions and 24 deletions
+23 -24
View File
@@ -1,5 +1,6 @@
import { BaseEditor } from 'slate';
import { ReactEditor } from 'slate-react';
import { DoubleLinkElement } from './text/plugins/DoubleLink';
import { LinkElement } from './text/plugins/link';
import { RefLinkElement } from './text/plugins/reflink';
@@ -8,7 +9,8 @@ export type CustomElement =
| { type: string; children: CustomElement[] }
| CustomText
| LinkElement
| RefLinkElement;
| RefLinkElement
| DoubleLinkElement;
declare module 'slate' {
interface CustomTypes {
Editor: BaseEditor & ReactEditor;
@@ -19,35 +21,32 @@ declare module 'slate' {
export { BlockPreview, StyledBlockPreview } from './block-preview';
export { default as Button } from './button';
export type { CommonListItem } from './list';
export { CommonList, BackLink, commonListContainer } from './list';
export * from './Logo';
export { default as Toolbar } from './toolbar';
export { CollapsibleTitle } from './collapsible-title';
export * from './text';
export * from './comming-soon/CommingSoon';
export {
NewpageIcon,
AddIcon,
ClockIcon,
ViewSidebarIcon,
CloseIcon,
CodeBlockInlineIcon,
DocumentIcon,
FilterIcon,
FullScreenIcon,
HighlighterDuotoneIcon,
KanbanIcon,
ListIcon,
SpaceIcon,
NewpageIcon,
PagesIcon,
PencilDotDuotoneIcon,
PencilDuotoneIcon,
HighlighterDuotoneIcon,
CodeBlockInlineIcon,
PagesIcon,
CloseIcon,
DocumentIcon,
TodoListIcon,
KanbanIcon,
TableIcon,
AddIcon,
FilterIcon,
SorterIcon,
FullScreenIcon,
SpaceIcon,
TableIcon,
TodoListIcon,
UnGroupIcon,
ViewSidebarIcon,
} from './icon';
export * from './comming-soon/CommingSoon';
export { BackLink, CommonList, commonListContainer } from './list';
export type { CommonListItem } from './list';
export * from './Logo';
export * from './text';
export { default as Toolbar } from './toolbar';
@@ -1,6 +1,15 @@
import { PagesIcon } from '@toeverything/components/icons';
import React, { useCallback } from 'react';
import { useNavigate } from 'react-router-dom';
import { Descendant } from 'slate';
export type DoubleLinkElement = {
type: 'link';
workspaceId: string;
blockId: string;
children: Descendant[];
id: string;
};
export const DoubleLinkComponent = ({ attributes, children, element }: any) => {
const navigate = useNavigate();