XylotrechusZ
XylotrechusZ Shell
: /home/mjbynoyq/wazirandsons.pk/wp-content/plugins/brizy/public/editor-client/src/media/ [ drwxr-xr-x ]
import { getImageUid } from "../api";
import { AddMediaData } from "../types/Media";
import { getExtension } from "../utils/getExtension";
import { t } from "../utils/i18n";
import { isValidExtension } from "../utils/isValidExtension";
import { internalAcceptedExtensions } from "./utils";
export const addMedia: AddMediaData = {
label: "Image",
handler(res, rej, { acceptedExtensions }) {
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 iframe = parent.document.querySelector("#brz-ed-iframe");
const html = document.querySelector("html");
const wpMediaFrame = wp.media({
library: {
type: "image"
},
states: new wp.media.controller.Library({
library: wp.media.query({ type: "image" }),
multiple: false,
title: "Upload media",
filterable: "uploaded",
priority: 20
})
});
wpMediaFrame.on("select", () => {
const attachment = wpMediaFrame.state().get("selection").first();
const { url } = attachment.toJSON();
const extension = getExtension(url);
const allExtensions = [
...acceptedExtensions,
...internalAcceptedExtensions
];
if (!extension || !isValidExtension(extension, allExtensions)) {
rej(
`Failed to upload file. Please upload a valid ${acceptedExtensions.join()}.`
);
return;
}
getImageUid(attachment.get("id"))
.then((r) => {
res({ uid: r.uid, fileName: "" });
})
.catch((r: unknown) => {
rej(t("failed to get attachment uid"));
console.error(r);
});
});
wpMediaFrame.on("close", () => {
iframe?.classList.remove("media-modal-open");
html?.classList.remove("brz-ow-hidden");
});
wpMediaFrame.on("escape", () => {
rej(t("File upload cancelled"));
});
iframe?.classList.add("media-modal-open");
// block html scroll
html?.classList.add("brz-ow-hidden");
wpMediaFrame.open();
}
};