diff --git a/src/enable-exporting.js b/src/enable-exporting.js new file mode 100644 index 0000000..2fe6a32 --- /dev/null +++ b/src/enable-exporting.js @@ -0,0 +1,45 @@ +import setImported from './store/actions/creators/set-imported.creator'; +import STATE_STORAGE_KEY from './store/middleware/local-storage.middleware/key'; +import store from './store'; + +const enableExporting = () => { + let openerOrigin; + switch (location.origin) { + case 'https://generative.fm': { + openerOrigin = 'https://play.generative.fm'; + break; + } + case 'https://staging.generative.fm': { + openerOrigin = 'https://staging.play.generative.fm'; + break; + } + case 'http://localhost:9999': { + openerOrigin = 'http://localhost:8080'; + break; + } + default: { + // do nothing + } + } + + if (!openerOrigin) { + return; + } + window.addEventListener('message', event => { + const { data, source, origin } = event; + if (origin !== openerOrigin) { + return; + } + if (data.type === 'export-request') { + const state = window.localStorage.getItem(STATE_STORAGE_KEY); + source.postMessage({ type: 'export', state }, origin); + return; + } + if (data.type === 'set-import-request') { + store.dispatch(setImported()); + source.postMessage({ type: 'import-set' }, origin); + } + }); +}; + +export default enableExporting; diff --git a/src/index.jsx b/src/index.jsx index e146628..9098e63 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -9,8 +9,7 @@ import store from './store'; import indicateUpdateAvailable from './store/actions/creators/indicate-update-available.creator'; import isProduction from './config/is-production'; import App from './containers/app.container'; -import setImported from './store/actions/creators/set-imported.creator'; -import STATE_STORAGE_KEY from './store/middleware/local-storage.middleware/key'; +import enableExporting from './enable-exporting'; import './styles/base-styles.scss'; if (isProduction) { @@ -33,30 +32,9 @@ if (isProduction) { } }); } - - //eslint-disable-next-line no-console - console.log('https://github.com/generative-music/generative.fm'); } -const openerOrigin = isProduction - ? 'https://play.generative.fm' - : 'http://localhost:8080'; - -window.addEventListener('message', event => { - const { data, source, origin } = event; - if (origin !== openerOrigin) { - return; - } - if (data.type === 'export-request') { - const state = window.localStorage.getItem(STATE_STORAGE_KEY); - source.postMessage({ type: 'export', state }, origin); - return; - } - if (data.type === 'set-import-request') { - store.dispatch(setImported()); - source.postMessage({ type: 'import-set' }, origin); - } -}); +enableExporting(); render(