import { configureStore, createSlice, PayloadAction } from "@reduxjs/toolkit"; import { useDispatch, useSelector, TypedUseSelectorHook } from "react-redux"; interface AppState { isLoading: boolean; } const appSlice = createSlice({ name: "app", initialState: { isLoading: false } as AppState, reducers: { setLoading: (state, action: PayloadAction) => { state.isLoading = action.payload; }, }, }); export const { setLoading } = appSlice.actions; export const store = configureStore({ reducer: { app: appSlice.reducer } }); export type RootState = ReturnType; export type AppDispatch = typeof store.dispatch; export const useAppDispatch: () => AppDispatch = useDispatch; export const useAppSelector: TypedUseSelectorHook = useSelector;