You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
606 B
JavaScript
27 lines
606 B
JavaScript
import { DropdownActionTypes } from './useDropdown.types';
|
|
export function dropdownReducer(state, action) {
|
|
switch (action.type) {
|
|
case DropdownActionTypes.blur:
|
|
return {
|
|
open: false
|
|
};
|
|
case DropdownActionTypes.escapeKeyDown:
|
|
return {
|
|
open: false
|
|
};
|
|
case DropdownActionTypes.toggle:
|
|
return {
|
|
open: !state.open
|
|
};
|
|
case DropdownActionTypes.open:
|
|
return {
|
|
open: true
|
|
};
|
|
case DropdownActionTypes.close:
|
|
return {
|
|
open: false
|
|
};
|
|
default:
|
|
throw new Error(`Unhandled action`);
|
|
}
|
|
} |