import { createSlice, type PayloadAction } from '@reduxjs/toolkit'; import { type Board } from '@scrabble-solver/types'; import { solveInitialState } from './initialState'; interface SolveParameters { board: Board; characters: string[]; } export const solveSlice = createSlice({ initialState: solveInitialState, name: 'solve', reducers: { reset: () => solveInitialState, submit: (state) => { const error = solveInitialState.error; return { ...state, error, isLoading: true }; }, submitFailure: (state, action: PayloadAction) => { const error = action.payload; return { ...state, error, isLoading: false }; }, submitSuccess: (state, action: PayloadAction) => { const error = solveInitialState.error; const lastSolvedParameters = action.payload; return { ...state, error, isLoading: false, lastSolvedParameters }; }, }, });