UNPKG

uploadcare-widget-tab-effects

Version:

Effects Tab for Uploadcare Widget. Edit images in desktop and mobile browsers.

81 lines (63 loc) 2.38 kB
import {customExtends, configureTranslations, getGlobalSettingsByKey, autoCrop} from 'tools' import configureSettings from './configure-settings' import configureStore from './configure-store' import {Tab} from 'components' function createPreviewTabEffects(PreviewTab, uc) { customExtends(PreviewTabEffects, PreviewTab) function PreviewTabEffects(container, button, dialogApi, settings, name) { PreviewTabEffects.__super__.constructor.call(this, container, button, dialogApi, settings, name) } PreviewTabEffects.prototype.__setState = function(state, data) { if (state === 'image') { if (data.info) { const globalEffects = getGlobalSettingsByKey('effects') // Trying to get effects settings from global if widget doesn't have them if (typeof this.settings.effects === 'undefined' && globalEffects) { this.settings.effects = globalEffects } const settings = configureSettings(this.settings) const store = configureStore(data.info, settings) const onDone = () => { const newFile = this.file.then((info) => { const {cdnUrl, cdnUrlModifiers, crop} = store.getState().image return { ...info, ...{ cdnUrl, cdnUrlModifiers, crop, }, } }) this.dialogApi.fileColl.replace(this.file, newFile) } const onFail = () => { this.file = null this.__setState('error', {error: 'loadImage'}) } autoCrop(store, settings, uc) const currentLocale = settings.locale uc.locale.translations = configureTranslations(uc.locale.translations, currentLocale) uc.locale.rebuild() const tab = new Tab({ uc, store, settings, onDone, onFail, }) const container = this.container[0] container.innerHTML = '' Array.prototype.slice.call((tab.getElement()).children) .forEach(child => container.appendChild(child)) store.setImageLoad('start') } } else { PreviewTabEffects.__super__.__setState.call(this, state, data) } } PreviewTabEffects.prototype.initImage = function() {} return PreviewTabEffects } export default createPreviewTabEffects