2022-03-02 00:14:01 +00:00
|
|
|
import { browser } from "$app/env";
|
2022-03-04 21:31:05 +00:00
|
|
|
import { readable, get, derived } from "svelte/store";
|
2022-03-02 00:14:01 +00:00
|
|
|
import { compose, applyMiddleware } from "redux";
|
|
|
|
|
|
|
|
import shipDux from "../shipDux/index.js";
|
|
|
|
|
|
|
|
let composeEnhancers = compose;
|
|
|
|
|
|
|
|
if (browser) {
|
|
|
|
composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;
|
|
|
|
}
|
|
|
|
|
|
|
|
export default () => {
|
|
|
|
const duxStore = shipDux.createStore(undefined, (mw) =>
|
|
|
|
composeEnhancers(applyMiddleware(mw))
|
|
|
|
);
|
|
|
|
|
|
|
|
let previous;
|
|
|
|
const state = readable(duxStore.getState(), (set) => {
|
|
|
|
duxStore.subscribe(() => {
|
|
|
|
if (previous === duxStore.getState()) return;
|
|
|
|
previous = duxStore.getState();
|
|
|
|
set(previous);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
return {
|
|
|
|
dispatch: duxStore.dispatch,
|
|
|
|
state,
|
2022-03-04 21:31:05 +00:00
|
|
|
shipMass: derived( state, state => state.reqs.mass )
|
2022-03-02 00:14:01 +00:00
|
|
|
};
|
|
|
|
};
|