import { createReducer } from "@reduxjs/toolkit"; import { closeDropdownMenu, openDropdownMenu } from "../actions/dropdown_menu"; interface DropdownMenuState { openId: string | null, keyboard: boolean, scrollKey: string | null, } const initialState: DropdownMenuState = { openId: null, keyboard: false, scrollKey: null, }; export const dropdownMenuReducer = createReducer(initialState, (builder) => { builder .addCase( openDropdownMenu, (state, { payload: { id, keyboard, scrollKey } }) => { state.openId = id; state.keyboard = keyboard; state.scrollKey = scrollKey; }, ) .addCase(closeDropdownMenu, (state, { payload: { id } }) => { if (state.openId === id) { state.openId = null; state.scrollKey = null; } }); });