configure store for popups

This commit is contained in:
HF 2022-08-16 14:40:06 +02:00
parent 54e482a8d7
commit bdf9939aa2
6 changed files with 79 additions and 45 deletions

View File

@ -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,
),
),

View File

@ -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;

View File

@ -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;
};

View File

@ -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');
});

View File

@ -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: {

View File

@ -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' ],
}),
],