]> BookStack Code Mirror - bookstack/blobdiff - resources/js/wysiwyg/utils/images.ts
Tests: Updated comment test to account for new editor usage
[bookstack] / resources / js / wysiwyg / utils / images.ts
index a83d554186eec470bfba886886de9e1a81977c27..85bae18e5e568599e3780e75e0773207d431bf6e 100644 (file)
@@ -1,5 +1,5 @@
 import {ImageManager} from "../../components";
-import {$createImageNode} from "../nodes/image";
+import {$createImageNode} from "@lexical/rich-text/LexicalImageNode";
 import {$createLinkNode, LinkNode} from "@lexical/link";
 
 export type EditorImageData = {
@@ -24,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