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