Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 175b5ab

Browse files
fix: #424
1 parent 8381e14 commit 175b5ab

File tree

3 files changed

+44
-2
lines changed

3 files changed

+44
-2
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<script setup lang="ts">
2+
import { VueFinalModal } from '~/index'
3+
</script>
4+
5+
<template>
6+
<VueFinalModal v-slot="{ close }">
7+
<button @click="() => close()">
8+
Close
9+
</button>
10+
</VueFinalModal>
11+
</template>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import App from './App.vue'
2+
import ModalCloseByScopedSlot from './ModalCloseByScopedSlot.vue'
3+
import { createVfm, useModal } from '~/index'
4+
5+
describe('Test scopedSlot', () => {
6+
it('close() scoped slot ', () => {
7+
const vfm = createVfm()
8+
const modalName = 'modal-close-by-scoped-slot'
9+
useModal({
10+
defaultModelValue: true,
11+
component: ModalCloseByScopedSlot,
12+
attrs: { class: modalName },
13+
})
14+
15+
cy.mount(App, {
16+
global: {
17+
plugins: [vfm],
18+
stubs: { transition: false },
19+
},
20+
}).as('app')
21+
22+
cy.get(`.${modalName}`).should('exist')
23+
cy.get(`.${modalName}`).find('button').click()
24+
cy.get(`.${modalName}`).should('not.exist')
25+
})
26+
})

‎packages/vue-final-modal/src/components/VueFinalModal/VueFinalModal.vue

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ defineOptions({ inheritAttrs: false })
3535
const instance = getCurrentInstance()
3636
3737
defineSlots<{
38-
'default'?(props: { close: () => boolean }): void
38+
'default'?(props: { close: () => void }): void
3939
'swipe-banner'?(): void
4040
}>()
4141
@@ -135,6 +135,11 @@ function close(): boolean {
135135
return true
136136
}
137137
138+
/** Close function for scoped slot */
139+
function _close() {
140+
modelValueLocal.value = false
141+
}
142+
138143
onBeforeUnmount(() => {
139144
enableBodyScroll()
140145
arrayRemoveItem(modals, instance)
@@ -223,7 +228,7 @@ defineExpose({
223228
v-bind="bindSwipe"
224229
@mousedown="() => onMousedown()"
225230
>
226-
<slot v-bind="{ close }" />
231+
<slot v-bind="{ close: _close }" />
227232

228233
<div
229234
v-if="showSwipeBanner"

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /