From bdf9939aa2112a327ad7226b7b7f20f08d799d25 Mon Sep 17 00:00:00 2001 From: HF Date: Tue, 16 Aug 2022 14:40:06 +0200 Subject: [PATCH] configure store for popups --- src/store/configureStore.js | 4 +- src/store/configureWinStore.js | 64 +++++++++++++++++++++++ src/store/middleware/placePixelControl.js | 38 -------------- src/win.js | 7 ++- webpack.config.client.js | 2 +- webpack.config.server.js | 9 +++- 6 files changed, 79 insertions(+), 45 deletions(-) create mode 100644 src/store/configureWinStore.js delete mode 100644 src/store/middleware/placePixelControl.js diff --git a/src/store/configureStore.js b/src/store/configureStore.js index e82599e8..9e1c7af9 100644 --- a/src/store/configureStore.js +++ b/src/store/configureStore.js @@ -32,12 +32,10 @@ import fetching from './reducers/fetching'; import audiom from './middleware/audio'; import socketClientHook from './middleware/socketClientHook'; import rendererHook from './middleware/rendererHook'; -// import ads from './ads'; import array from './middleware/array'; import promise from './middleware/promise'; import notifications from './middleware/notifications'; import title from './middleware/title'; -// import placePixelControl from './middleware/placePixelControl'; import extensions from './middleware/extensions'; const CURRENT_VERSION = 3; @@ -47,6 +45,7 @@ const reducers = persistReducer({ storage, version: CURRENT_VERSION, migrate: (state, version) => { + console.log(state); if (version !== CURRENT_VERSION) { console.log('Newer version run, resetting store.'); return Promise.resolve({}); @@ -89,7 +88,6 @@ const store = createStore( title, socketClientHook, rendererHook, - // placePixelControl, extensions, ), ), diff --git a/src/store/configureWinStore.js b/src/store/configureWinStore.js new file mode 100644 index 00000000..682fc8ed --- /dev/null +++ b/src/store/configureWinStore.js @@ -0,0 +1,64 @@ +/* + * redux store for windows / popups + */ + +/* eslint-disable no-console */ + +import { + applyMiddleware, createStore, compose, combineReducers, +} from 'redux'; +import thunk from 'redux-thunk'; +import { persistStore, persistReducer } from 'redux-persist'; +import storage from 'redux-persist/lib/storage'; + +/* + * reducers + */ +import audio from './reducers/audio'; +import canvas from './reducers/canvas'; +import gui from './reducers/gui'; + +/* + * middleware + */ +import promise from './middleware/promise'; + +const CURRENT_VERSION = 3; + +const reducers = persistReducer({ + key: 'primary', + storage, + version: CURRENT_VERSION, + migrate: (state, version) => { + console.log(state); + if (version !== CURRENT_VERSION) { + console.log('Newer version run, resetting store.'); + return Promise.resolve({}); + } + console.log(`Store version: ${version}`); + return Promise.resolve(state); + }, + blacklist: [ + 'canvas', + ], +}, combineReducers({ + audio, + canvas, + gui, +})); + +const store = createStore( + reducers, + undefined, + compose( + applyMiddleware( + thunk, + promise, + ), + ), +); + + +persistStore(store); + +export default store; diff --git a/src/store/middleware/placePixelControl.js b/src/store/middleware/placePixelControl.js deleted file mode 100644 index 4e59d852..00000000 --- a/src/store/middleware/placePixelControl.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Hooks for placePixel - * - */ - -import { getRenderer } from '../../ui/renderer'; -import { receivePixelReturn } from '../../ui/placePixel'; - -export default (store) => (next) => (action) => { - const ret = next(action); - - switch (action.type) { - case 'REC_PXL_RETURN': { - const renderer = getRenderer(); - const { - retCode, - wait, - coolDownSeconds, - pxlCnt, - rankedPxlCnt, - } = action; - receivePixelReturn( - store, - renderer, - retCode, - wait, - coolDownSeconds, - pxlCnt, - rankedPxlCnt, - ); - break; - } - default: - // nothing - } - - return ret; -}; diff --git a/src/win.js b/src/win.js index b515e101..21c268f1 100644 --- a/src/win.js +++ b/src/win.js @@ -2,4 +2,9 @@ * Main Script for windows (pop-ups and stuff) */ -console.log('hello'); +import store from './store/configureWinStore'; + +document.addEventListener('DOMContentLoaded', () => { + // eslint-disable-next-line no-console + console.log('hello'); +}); diff --git a/webpack.config.client.js b/webpack.config.client.js index 0015ab1d..f274940b 100644 --- a/webpack.config.client.js +++ b/webpack.config.client.js @@ -128,7 +128,7 @@ function buildWebpackClientConfig( include: [ path.resolve('src'), ...['image-q'].map((moduleName) => ( - path.resolve('node_modules', moduleName) + path.resolve('node_modules', moduleName), )) ], options: { diff --git a/webpack.config.server.js b/webpack.config.server.js index fd135f4d..e60a5757 100644 --- a/webpack.config.server.js +++ b/webpack.config.server.js @@ -87,7 +87,12 @@ module.exports = ({ { test: /\.(js|jsx)$/, loader: 'babel-loader', - include: [ path.resolve('src') ], + include: [ + path.resolve('src'), + ...['passport-reddit'].map((moduleName) => ( + path.resolve('node_modules', moduleName), + )) + ], options: { cacheDirectory: false, plugins: babelPlugins, @@ -123,7 +128,7 @@ module.exports = ({ nodeExternals({ // passport-reddit is an ESM module // bundle it, then we don't have to import it - allowlist: [ /^passport-/ ], + allowlist: [ 'passport-reddit' ], }), ],