Skip to content
Snippets Groups Projects
Commit d7d1ad9e authored by Ray Schamp's avatar Ray Schamp
Browse files

Move VM into a reducer

Otherwise it's very annoying to get access to the storage engine to load asset data.
parent a73efe86
Branches
Tags
No related merge requests found
......@@ -3,8 +3,6 @@ const PropTypes = require('prop-types');
const React = require('react');
const VM = require('scratch-vm');
const Storage = require('./storage');
const {connect} = require('react-redux');
const targets = require('../reducers/targets');
......@@ -92,13 +90,12 @@ const vmListenerHOC = function (WrappedComponent) {
onTargetsUpdate: PropTypes.func,
vm: PropTypes.instanceOf(VM).isRequired
};
const defaultVM = new VM('vm-listener-hoc');
defaultVM.attachStorage(new Storage());
VMListener.defaultProps = {
attachKeyboardEvents: true,
vm: defaultVM
attachKeyboardEvents: true
};
const mapStateToProps = () => ({});
const mapStateToProps = state => ({
vm: state.vm
});
const mapDispatchToProps = dispatch => ({
onTargetsUpdate: data => {
dispatch(targets.updateEditingTarget(data.editingTarget));
......
......@@ -2,6 +2,7 @@ const {combineReducers} = require('redux');
module.exports = combineReducers({
modals: require('./modals'),
monitors: require('./monitors'),
targets: require('./targets'),
monitors: require('./monitors')
vm: require('./vm')
});
const VM = require('scratch-vm');
const Storage = require('../lib/storage');
const SET_VM = 'scratch-gui/vm/SET_VM';
const defaultVM = new VM();
defaultVM.attachStorage(new Storage());
const initialState = defaultVM;
const reducer = function (state, action) {
if (typeof state === 'undefined') state = initialState;
switch (action.type) {
case SET_VM:
return action.vm;
default:
return state;
}
};
reducer.setVM = function (vm) {
return {
type: SET_VM,
vm: vm
};
};
module.exports = reducer;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment