Current path: home/webdevt/www/wdp/wp-content/plugins/brizy/public/editor-client/src/customFile/
?? Go up: /home/webdevt/www/wdp/wp-content/plugins/brizy/public/editor-client/src
import { AddFileData } from "../types/File";
import { t } from "../utils/i18n";
import { handleGetAttachmentById, validateByComponent } from "./utils";
export const addFile: AddFileData = {
label: "Image",
handler(res, rej, { componentId }) {
const wp = window.wp || window.parent.wp;
if (!wp) {
rej(t("Could not find WordPress on global object (window.wp)"));
return;
}
if (!wp.media) {
rej(
t(
"Could not find WordPress media object (window.wp.media). Make sure the WordPress media script is enqueued."
)
);
return;
}
const frame = wp.media({
library: {
type: "image"
},
states: new wp.media.controller.Library({
library: wp.media.query({
type: "image, audio, video, application, text, pdf"
}),
multiple: false,
title: t("Upload file"),
filterable: "all",
priority: 20
})
});
frame.on("select", () => {
const attachment = frame.state().get("selection").first();
if (componentId) {
const url = attachment.get("url");
const filename = attachment.get("title");
const mimeType = attachment.get("mime");
fetch(url)
.then((res) => res.blob())
.then((blob) => {
const file = new File([blob], filename, { type: mimeType });
validateByComponent(file, componentId)
.then(() => handleGetAttachmentById(res, attachment))
.catch((e) => rej(e.message));
});
} else {
handleGetAttachmentById(res, attachment);
}
});
frame.on("escape", () => {
rej(t("File upload cancelled"));
});
frame.open();
}
};