commit
b258ed9115
@ -0,0 +1,27 @@
|
||||
/**
|
||||
* This slice is intended for the user configurable settings for the client such as appearance, autoplaying of links etc.
|
||||
* Anything setting under the cog wheel tab.
|
||||
*/
|
||||
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
|
||||
|
||||
export interface UserConfigState {
|
||||
audioAutoplay: boolean;
|
||||
}
|
||||
|
||||
export const initialUserConfigState = {
|
||||
audioAutoplay: false,
|
||||
};
|
||||
|
||||
const userConfigSlice = createSlice({
|
||||
name: 'userConfig',
|
||||
initialState: initialUserConfigState,
|
||||
reducers: {
|
||||
toggleAudioAutoplay: state => {
|
||||
state.audioAutoplay = !state.audioAutoplay;
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
const { actions, reducer } = userConfigSlice;
|
||||
export const { toggleAudioAutoplay } = actions;
|
||||
export const userConfigReducer = reducer;
|
@ -0,0 +1,10 @@
|
||||
import { StateType } from '../reducer';
|
||||
import { UserConfigState } from '../ducks/userConfig';
|
||||
import { createSelector } from 'reselect';
|
||||
|
||||
export const getUserConfig = (state: StateType): UserConfigState => state.userConfig;
|
||||
|
||||
export const getAudioAutoplay = createSelector(
|
||||
getUserConfig,
|
||||
(state: UserConfigState): boolean => state.audioAutoplay
|
||||
);
|
Loading…
Reference in New Issue