import {createSlice} from "@reduxjs/toolkit"; import {HYDRATE} from "next-redux-wrapper"; import {AppState} from "./store"; export interface SearchState { results: object[]; } // Initial state const initialState: SearchState = { results: [], }; // Actual Slice // @ts-ignore export const searchSlice = createSlice({ name: "search", initialState, reducers: { // Action to set the authentication status setSearchState(state, action) { // @ts-ignore state.results = action.payload; }, // Special reducer for hydrating the state. Special case for next-redux-wrapper extraReducers: { // @ts-ignore [HYDRATE]: (state, action) => { return { ...state, // @ts-ignore ...action.payload.search, }; }, }, }, }); export const {setSearchState} = searchSlice.actions; export const selectSearchState = (state: AppState) => state.search; export default searchSlice.reducer;