]> BookStack Code Mirror - bookstack/blobdiff - resources/js/wysiwyg/utils/images.ts
Perms: Fixed some issues made when adding transactions
[bookstack] / resources / js / wysiwyg / utils / images.ts
index 89a4a60f091abca5440c74863da746ab07102d4b..85bae18e5e568599e3780e75e0773207d431bf6e 100644 (file)
@@ -1,8 +1,9 @@
 import {ImageManager} from "../../components";
-import {$createImageNode} from "../nodes/image";
+import {$createImageNode} from "@lexical/rich-text/LexicalImageNode";
 import {$createLinkNode, LinkNode} from "@lexical/link";
 
-type EditorImageData = {
+export type EditorImageData = {
+    id: string;
     url: string;
     thumbs?: {display: string};
     name: string;
@@ -23,4 +24,21 @@ export function $createLinkedImageNodeFromImageData(image: EditorImageData): Lin
     });
     linkNode.append(imageNode);
     return linkNode;
+}
+
+/**
+ * Upload an image file to the server
+ */
+export async function uploadImageFile(file: File, pageId: string): Promise<EditorImageData> {
+    if (file === null || file.type.indexOf('image') !== 0) {
+        throw new Error('Not an image file');
+    }
+
+    const remoteFilename = file.name || `image-${Date.now()}.png`;
+    const formData = new FormData();
+    formData.append('file', file, remoteFilename);
+    formData.append('uploaded_to', pageId);
+
+    const resp = await window.$http.post('/images/gallery', formData);
+    return resp.data as EditorImageData;
 }
\ No newline at end of file