mirror of
https://github.com/generativefm/generative.fm.git
synced 2026-01-09 14:48:14 -05:00
Support staging exports
This commit is contained in:
45
src/enable-exporting.js
Normal file
45
src/enable-exporting.js
Normal file
@@ -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;
|
||||
@@ -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(
|
||||
<Provider store={store}>
|
||||
|
||||
Reference in New Issue
Block a user