mirror of
https://github.com/element-plus/element-plus.git
synced 2025-01-12 10:45:10 +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
23 lines
613 B
TypeScript
23 lines
613 B
TypeScript
import { onBeforeMount } from 'vue'
|
|
import { isClient } from '@vueuse/core'
|
|
import { generateId } from '@element-plus/utils/util'
|
|
|
|
let cachedContainer: HTMLElement
|
|
|
|
export const POPPER_CONTAINER_ID = `el-popper-container-${generateId()}`
|
|
|
|
export const POPPER_CONTAINER_SELECTOR = `#${POPPER_CONTAINER_ID}`
|
|
|
|
export const usePopperContainer = () => {
|
|
onBeforeMount(() => {
|
|
if (!isClient) return
|
|
|
|
if (!cachedContainer) {
|
|
const container = document.createElement('div')
|
|
container.id = POPPER_CONTAINER_ID
|
|
document.body.appendChild(container)
|
|
cachedContainer = container
|
|
}
|
|
})
|
|
}
|