UNPKG

@brizy/cloud-media-upload

Version:
93 lines (92 loc) 3.48 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MediaUpload = void 0; const media_gallery_1 = __importDefault(require("@brizy/media-gallery")); require("@brizy/media-gallery/dist/index.css"); const ModalController_1 = require("./ModalController"); const api_client_1 = require("./api-client"); const constants_1 = require("./constants"); const utils_1 = require("./utils"); class MediaUpload { constructor({ node, clientId, isDev }) { this.handleClose = () => { this.modalController.update({ isOpen: false }); }; this.addMediaHandler = async (res, rej, extra) => { try { const config = await this.getConfig({ res, rej, extra }); this.handleOpen(config); } catch (err) { this.log(err); const error = err instanceof Error ? err : new Error(`${err}`); rej(error); } }; this.clientId = clientId; this.isDev = isDev ?? false; this.modalController = new ModalController_1.ModalController(node); } async getConfig(addMediaHandlerArgs) { const { res, rej, extra } = addMediaHandlerArgs; const credentials = await (0, api_client_1.fetchCredentials)(this.credentialEndpoint, this.clientId); const api = new api_client_1.ApiClient(credentials); return { development: this.isDev, origin: "*", insertFilesType: "single", acceptableTypes: (0, utils_1.getAcceptableTypes)(extra.acceptedExtensions), mediaLibrary: { getItems: api.getItems, removeItems: api.removeItems, updateItem: api.updateItem, uploadItem: api.uploadItem, }, //#region TODO: Remove when https://github.com/bagrinsergiu/blox-editor/issues/28977 will be done stockPhotos: { getItems: () => Promise.resolve(undefined), downloadItem: () => Promise.resolve({ url: "test" }), }, //#endregion onClose: () => { rej(new Error("File upload was cancelled")); this.handleClose(); }, onInsertFiles: (0, utils_1.onInsertFiles)(res, rej, this.handleClose), }; } handleOpen(config) { this.modalController.update({ isOpen: true, mediaUploadInstance: new media_gallery_1.default(config), }); } log(msg) { if (this.isDev) { console.log("[MediaUpload]: ", msg); } } get credentialEndpoint() { return this.isDev ? constants_1.DEV_GET_USER_CONFIG_ENDPOINT_URL : constants_1.GET_USER_CONFIG_ENDPOINT_URL; } get resizeUrl() { return this.isDev ? constants_1.DEV_RESIZE_URL : constants_1.RESIZE_URL; } get resizePatterns() { return this.isDev ? constants_1.DEV_RESIZE_PATTERNS : constants_1.RESIZE_PATTERNS; } get addMedia() { return { handler: this.addMediaHandler }; } get mediaConfig() { return { addMedia: this.addMedia, mediaResizeUrl: this.resizeUrl, imagePatterns: this.resizePatterns, }; } } exports.MediaUpload = MediaUpload;