Add images to your editor and upload them to your backend
The ImagesExtension
allows you to add images to your editor through either copy/paste or through drag and drop.
By default, images will be saved as base64 strings in the editor's JSON content. You can customize this to upload images to your backend instead.
Pass an upload
function to the ImagesExtension
that will send the base64 string to your backend and return the URL of the uploaded image.
async function uploadImage(base64: string) {
const response = await $fetch('/api/upload', {
method: 'POST',
body: JSON.stringify({ base64 }),
})
return response.url
}
const editor = useEditor({
extensions: [
...EditorExtensions({
images: { uploadFn: uploadImage },
}),
],
})
While an image is uploading, you can add an imageLoadingClass
to add visual feedback.
const editor = useEditor({
extensions: [
...EditorExtensions({
images: {
uploadFn: uploadImage,
imageLoadingClass: 'opacity-30 animate-pulse'
}
}),
],
})