]> BookStack Code Mirror - bookstack/blobdiff - resources/js/wysiwyg/utils/images.ts
ExportFormatter: Add book description and check for empty book and chapter descriptio...
[bookstack] / resources / js / wysiwyg / utils / images.ts
index 89a4a60f091abca5440c74863da746ab07102d4b..2c13427d967f00c612876f9d61f4b0d069908131 100644 (file)
@@ -2,7 +2,8 @@ import {ImageManager} from "../../components";
 import {$createImageNode} from "../nodes/image";
 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