summaryrefslogtreecommitdiff
path: root/web/source/settings/redux
diff options
context:
space:
mode:
Diffstat (limited to 'web/source/settings/redux')
-rw-r--r--web/source/settings/redux/index.js46
-rw-r--r--web/source/settings/redux/reducers/admin.js43
2 files changed, 33 insertions, 56 deletions
diff --git a/web/source/settings/redux/index.js b/web/source/settings/redux/index.js
index f18b8e452..43f5c007d 100644
--- a/web/source/settings/redux/index.js
+++ b/web/source/settings/redux/index.js
@@ -18,18 +18,20 @@
"use strict";
-const { createStore, combineReducers, applyMiddleware } = require("redux");
-const { persistStore, persistReducer } = require("redux-persist");
-const thunk = require("redux-thunk").default;
-const { composeWithDevTools } = require("redux-devtools-extension");
+const { combineReducers } = require("redux");
+const { configureStore } = require("@reduxjs/toolkit");
+const {
+ persistStore,
+ persistReducer,
+ FLUSH,
+ REHYDRATE,
+ PAUSE,
+ PERSIST,
+ PURGE,
+ REGISTER,
+} = require("redux-persist");
-const persistConfig = {
- key: "gotosocial-settings",
- storage: require("redux-persist/lib/storage").default,
- stateReconciler: require("redux-persist/lib/stateReconciler/autoMergeLevel2").default,
- whitelist: ["oauth"],
- blacklist: ["temporary"]
-};
+const query = require("../lib/query/base");
const combinedReducers = combineReducers({
oauth: require("./reducers/oauth").reducer,
@@ -37,13 +39,27 @@ const combinedReducers = combineReducers({
temporary: require("./reducers/temporary").reducer,
user: require("./reducers/user").reducer,
admin: require("./reducers/admin").reducer,
+ [query.reducerPath]: query.reducer
});
-const persistedReducer = persistReducer(persistConfig, combinedReducers);
-const composedEnhancer = composeWithDevTools(applyMiddleware(thunk));
+const persistedReducer = persistReducer({
+ key: "gotosocial-settings",
+ storage: require("redux-persist/lib/storage").default,
+ stateReconciler: require("redux-persist/lib/stateReconciler/autoMergeLevel2").default,
+ whitelist: ["oauth"],
+}, combinedReducers);
+
+const store = configureStore({
+ reducer: persistedReducer,
+ middleware: (getDefaultMiddleware) => {
+ return getDefaultMiddleware({
+ serializableCheck: {
+ ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER, "temporary/setScrollElement"]
+ }
+ }).concat(query.middleware);
+ }
+});
-// TODO: change to configureStore
-const store = createStore(persistedReducer, composedEnhancer);
const persistor = persistStore(store);
module.exports = { store, persistor }; \ No newline at end of file
diff --git a/web/source/settings/redux/reducers/admin.js b/web/source/settings/redux/reducers/admin.js
index 666286178..57ca83d7e 100644
--- a/web/source/settings/redux/reducers/admin.js
+++ b/web/source/settings/redux/reducers/admin.js
@@ -19,7 +19,6 @@
"use strict";
const { createSlice } = require("@reduxjs/toolkit");
-const defaultValue = require("default-value");
function sortBlocks(blocks) {
return blocks.sort((a, b) => { // alphabetical sort
@@ -35,13 +34,6 @@ function emptyBlock() {
};
}
-function emptyEmojiForm() {
- return {
- id: Date.now(),
- shortcode: ""
- };
-}
-
module.exports = createSlice({
name: "admin",
initialState: {
@@ -52,10 +44,7 @@ module.exports = createSlice({
exportType: "plain",
...emptyBlock()
},
- newInstanceBlocks: {},
- emoji: {},
- emojiById: {},
- newEmoji: emptyEmojiForm()
+ newInstanceBlocks: {}
},
reducers: {
setBlockedInstances: (state, { payload }) => {
@@ -105,34 +94,6 @@ module.exports = createSlice({
state.bulkBlock.list = Object.values(state.blockedInstances).map((entry) => {
return entry.domain;
}).join("\n");
- },
-
- setEmoji: (state, {payload}) => {
- state.emoji = {};
- payload.forEach((emoji) => {
- if (emoji.category == undefined) {
- emoji.category = "Unsorted";
- }
- state.emoji[emoji.category] = defaultValue(state.emoji[emoji.category], []);
- state.emoji[emoji.category].push(emoji);
- state.emojiById[emoji.id] = emoji;
- });
- },
-
- updateNewEmojiVal: (state, { payload: [key, val] }) => {
- state.newEmoji[key] = val;
- },
-
- addEmoji: (state, {payload: emoji}) => {
- if (emoji.category == undefined) {
- emoji.category = "Unsorted";
- }
- if (emoji.id == undefined) {
- emoji.id = Date.now();
- }
- state.emoji[emoji.category] = defaultValue(state.emoji[emoji.category], []);
- state.emoji[emoji.category].push(emoji);
- state.emojiById[emoji.id] = emoji;
- },
+ }
}
}); \ No newline at end of file