Remove pointer events on the entire UI when a dropdown menu is open (#6648)
* Remove pointer events on the entire UI when a dropdown menu is open This prevents operations to change the location of the menu such as scrolling. * Fix mistake from mergemaster
parent
4847149b6e
commit
913a38111f
@ -0,0 +1,10 @@ |
||||
export const DROPDOWN_MENU_OPEN = 'DROPDOWN_MENU_OPEN'; |
||||
export const DROPDOWN_MENU_CLOSE = 'DROPDOWN_MENU_CLOSE'; |
||||
|
||||
export function openDropdownMenu(id, placement) { |
||||
return { type: DROPDOWN_MENU_OPEN, id, placement }; |
||||
} |
||||
|
||||
export function closeDropdownMenu(id) { |
||||
return { type: DROPDOWN_MENU_CLOSE, id }; |
||||
} |
@ -0,0 +1,18 @@ |
||||
import Immutable from 'immutable'; |
||||
import { |
||||
DROPDOWN_MENU_OPEN, |
||||
DROPDOWN_MENU_CLOSE, |
||||
} from '../actions/dropdown_menu'; |
||||
|
||||
const initialState = Immutable.Map({ openId: null, placement: null }); |
||||
|
||||
export default function dropdownMenu(state = initialState, action) { |
||||
switch (action.type) { |
||||
case DROPDOWN_MENU_OPEN: |
||||
return state.merge({ openId: action.id, placement: action.placement }); |
||||
case DROPDOWN_MENU_CLOSE: |
||||
return state.get('openId') === action.id ? state.set('openId', null) : state; |
||||
default: |
||||
return state; |
||||
} |
||||
} |
Loading…
Reference in new issue