import { createSlice, type PayloadAction } from '@reduxjs/toolkit'; import { type Game, type Locale, type ShowCoordinates } from '@scrabble-solver/types'; import type { AutoGroupTiles, InputMode, RemoveCellFilters } from '@/types'; import { settingsInitialState } from './initialState'; export const settingsSlice = createSlice({ initialState: settingsInitialState, name: 'settings', reducers: { changeAutoGroupTiles: (state, action: PayloadAction) => { const autoGroupTiles = action.payload; return { ...state, autoGroupTiles }; }, changeGame: (state, action: PayloadAction) => { const game = action.payload; return { ...state, game }; }, changeInputMode: (state, action: PayloadAction) => { const inputMode = action.payload; return { ...state, inputMode }; }, changeLocale: (state, action: PayloadAction) => { const locale = action.payload; return { ...state, locale }; }, changeShowCoordinates: (state, action: PayloadAction) => { const showCoordinates = action.payload; return { ...state, showCoordinates }; }, changeRemoveCellFilters: (state, action: PayloadAction) => { const removeCellFilters = action.payload; return { ...state, removeCellFilters }; }, init: (state, action: PayloadAction>>) => { return { ...state, ...action.payload }; }, }, });