2023-03-03 23:02:52 +00:00
|
|
|
import { browser, dev } from "$app/environment";
|
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";
|
|
|
|
|
2023-03-20 15:59:50 +00:00
|
|
|
import { createStore, actions } from "../shipDux/index";
|
2022-04-07 00:53:39 +00:00
|
|
|
import { initial } from "lodash";
|
2022-03-02 00:14:01 +00:00
|
|
|
|
|
|
|
let composeEnhancers = compose;
|
|
|
|
|
2022-04-06 23:41:57 +00:00
|
|
|
if (dev && browser && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) {
|
2023-03-20 15:59:50 +00:00
|
|
|
composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;
|
2022-03-02 00:14:01 +00:00
|
|
|
}
|
|
|
|
|
2022-04-10 21:41:50 +00:00
|
|
|
export default (initialState = undefined) => {
|
2023-03-20 15:59:50 +00:00
|
|
|
if (browser) {
|
|
|
|
const i = localStorage.getItem("ship");
|
|
|
|
|
|
|
|
if (i) initialState = JSON.parse(localStorage.getItem("ship"));
|
|
|
|
}
|
2022-03-02 00:14:01 +00:00
|
|
|
|
2023-03-20 15:59:50 +00:00
|
|
|
const duxStore = createStore();
|
|
|
|
|
|
|
|
let previous;
|
|
|
|
const state = readable(duxStore.getState(), (set) => {
|
|
|
|
duxStore.subscribe(() => {
|
|
|
|
if (previous === duxStore.getState()) return;
|
|
|
|
previous = duxStore.getState();
|
|
|
|
set(previous);
|
|
|
|
if (browser) localStorage.setItem("ship", JSON.stringify(previous));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
return {
|
|
|
|
dispatch: duxStore.dispatch,
|
|
|
|
state,
|
|
|
|
actions,
|
|
|
|
shipMass: derived(state, (state) => state.reqs.mass),
|
|
|
|
};
|
2022-03-02 00:14:01 +00:00
|
|
|
};
|