import * as Redux from "https://unpkg.com/redux@4.0.5?module"; const initialState = { foo: "asdf", packages: [], currentPackage: "", symbols: [], }; function reducer(state = initialState, { type, payload }) { if (type === "UPDATE_PACKAGES") { return { ...state, packages: payload }; } else if (type === "UPDATE_SYMBOLS") { return { ...state, symbols: payload.symbols, currentPackage: payload.currentPackage, }; } return state; } export const store = Redux.createStore( reducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__() ); export const dispatchers = { updateFoo(payload) { console.log("foo"); store.dispatch({ type: "UPDATE_FOO", payload }); }, updatePackages(payload) { store.dispatch({ type: "UPDATE_PACKAGES", payload }); }, updateSymbols(_, { package: currentPackage, symbols }) { store.dispatch({ type: "UPDATE_SYMBOLS", payload: { currentPackage, symbols }, }); }, };