1313 <slot />
1414 </oc-bottom-drawer >
1515 <div v-else :id =" dropId" ref =" drop" class =" oc-drop shadow-md/20 rounded-sm" @click =" onClick" >
16- <oc-card v-if =" $slots.default" :body-class =" [getTailwindPaddingClass(paddingSize)]" >
16+ <oc-card v-if =" isOpen && $slots.default" :body-class =" [getTailwindPaddingClass(paddingSize)]" >
1717 <slot />
1818 </oc-card >
19- <slot v-else name =" special" />
19+ <slot v-else-if = " isOpen " name =" special" />
2020 </div >
2121</template >
2222
@@ -140,6 +140,7 @@ const emit = defineEmits<Emits>()
140140defineSlots <Slots >()
141141
142142const { isMobile } = useIsMobile ()
143+ const isOpen = ref (false )
143144
144145const useBottomDrawer = computed (() => unref (isMobile ) && ! enforceDropOnMobile )
145146const bottomDrawerRef = useTemplateRef <typeof OcBottomDrawer >(' bottomDrawerRef' )
@@ -152,13 +153,15 @@ const show = () => {
152153 unref (bottomDrawerRef ).show ()
153154 return
154155 }
156+ isOpen .value = true
155157 unref (tippyInstance )?.show ()
156158}
157159const hide = () => {
158160 if (unref (useBottomDrawer )) {
159161 unref (bottomDrawerRef ).hide ()
160162 return
161163 }
164+ isOpen .value = false
162165 unref (tippyInstance )?.hide ()
163166}
164167
@@ -182,10 +185,6 @@ const onFocusOut = (event: FocusEvent) => {
182185 }
183186}
184187
185- onBeforeUnmount (() => {
186- drop .value ?.removeEventListener (' focusout' , onFocusOut )
187- })
188-
189188const triggerMapping = computed (() => {
190189 return (
191190 {
@@ -211,6 +210,7 @@ watch(
211210)
212211
213212onBeforeUnmount (() => {
213+ unref (drop )?.removeEventListener (' focusout' , onFocusOut )
214214 destroy (unref (tippyInstance ))
215215})
216216
@@ -236,15 +236,17 @@ const initializeTippy = () => {
236236 theme: ' none' ,
237237 maxWidth: 416 ,
238238 offset ,
239- ... (! isNestedElement && {
240- onShow : (instance ) => {
241- emit (' showDrop' )
239+ onShow : (instance ) => {
240+ isOpen .value = true
241+ emit (' showDrop' )
242+ if (! isNestedElement ) {
242243 hideAll ({ exclude: instance })
243- },
244- onHide : () => {
245- emit (' hideDrop' )
246244 }
247- }),
245+ },
246+ onHide : () => {
247+ isOpen .value = false
248+ emit (' hideDrop' )
249+ },
248250 popperOptions: {
249251 ... popperOptions ,
250252 modifiers: [
0 commit comments