]> BookStack Code Mirror - bookstack/blob - resources/js/wysiwyg/utils/images.ts
89a4a60f091abca5440c74863da746ab07102d4b
[bookstack] / resources / js / wysiwyg / utils / images.ts
1 import {ImageManager} from "../../components";
2 import {$createImageNode} from "../nodes/image";
3 import {$createLinkNode, LinkNode} from "@lexical/link";
4
5 type EditorImageData = {
6     url: string;
7     thumbs?: {display: string};
8     name: string;
9 };
10
11 export function showImageManager(callback: (image: EditorImageData) => any) {
12     const imageManager: ImageManager = window.$components.first('image-manager') as ImageManager;
13     imageManager.show((image: EditorImageData) => {
14         callback(image);
15     }, 'gallery');
16 }
17
18 export function $createLinkedImageNodeFromImageData(image: EditorImageData): LinkNode {
19     const url = image.thumbs?.display || image.url;
20     const linkNode = $createLinkNode(url, {target: '_blank'});
21     const imageNode = $createImageNode(url, {
22         alt: image.name
23     });
24     linkNode.append(imageNode);
25     return linkNode;
26 }