mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-14 01:11:25 +08:00
dd19cae2bc
* refactor(components): popper composables - Refactor popper composables * updates * updates for tooltip * Updates for popper. TODO: fix controlled tooltip animation * Fix controlled mode popper animation issue * Add new feature for customizing tooltip theme * Fix popover and popconfirm error * - Add Collection component for wrapping a collection of component - Add FocusTrap component for trap focus for popups - Add RovingFocus component for roving focus component type - Adjust dropdown component based on these newly added components - Add popper-trigger component for placing the trigger - TODO: Finish current dropdown component, and all component's tests plus documents * Refactor popper * Complete organizing popper * Almost finish dropdown * Update popper tests * update only-child test * Finish focus trap component test * Finish tooltip content test * Finish tooltip trigger tests * Finish tooltip tests * finish tests for Collection and RovingFocusGroup * Fix test cases for timeselect & select & popover * Fix popover, popconfirm, menu bug and test cases * Fix select-v2 test error caused by updating popper * Fix date-picker test issue for updating popper * fix test cases * Fix eslint * Rebase dev & fix tests * Remove unused code
20 lines
526 B
TypeScript
20 lines
526 B
TypeScript
import { onMounted, onBeforeUnmount } from 'vue'
|
|
import { on, off } from '@element-plus/utils/dom'
|
|
import { EVENT_CODE } from '@element-plus/utils/aria'
|
|
|
|
export const useEscapeKeydown = (handler?: (e: KeyboardEvent) => void) => {
|
|
const cachedHandler = (e: Event) => {
|
|
const event = e as KeyboardEvent
|
|
if (event.key === EVENT_CODE.esc) {
|
|
handler?.(event)
|
|
}
|
|
}
|
|
onMounted(() => {
|
|
on(document, 'keydown', cachedHandler)
|
|
})
|
|
|
|
onBeforeUnmount(() => {
|
|
off(document, 'keydown', cachedHandler)
|
|
})
|
|
}
|