123456789101112131415161718192021222324252627282930313233 |
- 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;
- }
- });
- });
|