File tree Expand file tree Collapse file tree 3 files changed +23
-4
lines changed Expand file tree Collapse file tree 3 files changed +23
-4
lines changed Original file line number Diff line number Diff line change @@ -2,11 +2,12 @@ import 'bootstrap/dist/css/bootstrap.min.css';
2
2
import 'bootstrap-icons/font/bootstrap-icons.css' ;
3
3
import '../styles/globals.css'
4
4
import Script from "next/script" ;
5
- import { storeWrapper } from "../store/store" ;
6
5
import { Provider } from "react-redux" ;
6
+ import { saveToLocalStorage , storeWrapper } from "../store/store" ;
7
7
8
8
function MithrilExplorer ( { Component, ...rest } ) {
9
9
const { store, pageProps} = storeWrapper . useWrappedStore ( rest ) ;
10
+ store . subscribe ( ( ) => saveToLocalStorage ( store . getState ( ) ) ) ;
10
11
11
12
return (
12
13
< >
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ export const settingsSlice = createSlice({
5
5
name : 'settings' ,
6
6
initialState : {
7
7
aggregator : available_aggregators [ 0 ] ,
8
+ availableAggregators : available_aggregators ,
8
9
updateInterval : 10000 ,
9
10
autoUpdate : true ,
10
11
} ,
Original file line number Diff line number Diff line change @@ -2,10 +2,27 @@ import { configureStore } from "@reduxjs/toolkit";
2
2
import { createWrapper } from "next-redux-wrapper" ;
3
3
import { settingsSlice } from "./settingsSlice" ;
4
4
5
- const makeStore = ( ) => configureStore ( {
5
+ const SAVED_STATE_KEY = "Explorer_State" ;
6
+
7
+ export function saveToLocalStorage ( state ) {
8
+ if ( typeof window !== 'undefined' && localStorage ) {
9
+ localStorage . setItem ( SAVED_STATE_KEY , JSON . stringify ( state ) ) ;
10
+ }
11
+ }
12
+
13
+ function loadFromLocalStorage ( ) {
14
+ if ( typeof window !== 'undefined' && localStorage ) {
15
+ const serialisedState = localStorage . getItem ( SAVED_STATE_KEY ) ;
16
+ return serialisedState ? JSON . parse ( serialisedState ) : undefined ;
17
+ }
18
+ return undefined ;
19
+ }
20
+
21
+ const storeBuilder = ( ) => configureStore ( {
6
22
reducer : {
7
23
settings : settingsSlice . reducer ,
8
24
} ,
9
- } )
25
+ preloadedState : loadFromLocalStorage ( ) ,
26
+ } ) ;
10
27
11
- export const storeWrapper = createWrapper ( makeStore ) ;
28
+ export const storeWrapper = createWrapper ( storeBuilder ) ;
You can’t perform that action at this time.
0 commit comments