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
No related branches found
No related tags found
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.
Finish editing this message first!
Please register or to comment