|
1 | | -import { defineComponent, h, onMounted, PropType, ref, RendererElement, Transition } from 'vue' |
| 1 | +import { defineComponent, h, PropType, ref, RendererElement, Transition, useId } from 'vue' |
2 | 2 | import type { Placement } from '@popperjs/core' |
3 | 3 |
|
4 | 4 | import { CConditionalTeleport } from '../conditional-teleport' |
5 | | -import { useUniqueId, usePopper } from '../../composables' |
| 5 | +import { usePopper } from '../../composables' |
6 | 6 | import type { Placements, Triggers } from '../../types' |
7 | 7 | import { executeAfterTransition } from '../../utils/transition' |
8 | 8 | import { getRTLPlacement } from '../../utils' |
@@ -117,10 +117,10 @@ const CPopover = defineComponent({ |
117 | 117 | setup(props, { attrs, slots, emit }) { |
118 | 118 | const togglerRef = ref() |
119 | 119 | const popoverRef = ref() |
120 | | - const uID = ref() |
121 | 120 | const visible = ref(props.visible) |
122 | | - const { getUID } = useUniqueId('popover') |
| 121 | + |
123 | 122 | const { initPopper, destroyPopper } = usePopper() |
| 123 | + const uniqueId = `popover-${useId()}` |
124 | 124 |
|
125 | 125 | const delay = |
126 | 126 | typeof props.delay === 'number' ? { show: props.delay, hide: props.delay } : props.delay |
@@ -149,10 +149,6 @@ const CPopover = defineComponent({ |
149 | 149 | placement: getRTLPlacement(props.placement, togglerRef.value), |
150 | 150 | } |
151 | 151 |
|
152 | | - onMounted(() => { |
153 | | - uID.value = getUID() |
154 | | - }) |
155 | | - |
156 | 152 | const handleEnter = (el: RendererElement, done: () => void) => { |
157 | 153 | emit('show') |
158 | 154 | initPopper(togglerRef.value, popoverRef.value, popperConfig) |
@@ -212,7 +208,7 @@ const CPopover = defineComponent({ |
212 | 208 | }, |
213 | 209 | attrs.class, |
214 | 210 | ], |
215 | | - id: uID.value, |
| 211 | + id: uniqueId, |
216 | 212 | ref: popoverRef, |
217 | 213 | role: 'tooltip', |
218 | 214 | }, |
@@ -241,7 +237,7 @@ const CPopover = defineComponent({ |
241 | 237 | ), |
242 | 238 | slots.toggler && |
243 | 239 | slots.toggler({ |
244 | | - id: visible.value ? uID.value : null, |
| 240 | + id: visible.value ? uniqueId : null, |
245 | 241 | on: { |
246 | 242 | click: (event: Event) => |
247 | 243 | props.trigger.includes('click') && toggleVisible(event, !visible.value), |
|
0 commit comments