Skip to content

Commit 543f5d2

Browse files
committed
docs: add event.stop() back
1 parent fc67d94 commit 543f5d2

File tree

5 files changed

+16
-22
lines changed

5 files changed

+16
-22
lines changed

docs/content/2.get-started/1.guide/3.migration-guide.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,6 @@ open()
125125
`params` is not a good practice and hard to keep type-save in Typescript.
126126
So if you are using `params`, you have to re-written it with [useModal()](/api/composables/use-modal) composable.
127127

128-
### Removed `event.stop()` from both `@before-close` and `@before-open`
129-
130-
`event.stop()` made the source code hard to read and maintain.
131-
It's easy to have a condition before open or before close the modal. So it's not a required feature.
132-
133128
### Delete Drag & Resize
134129

135130
To keep vue-final-modal simple and easier to maintain, I decided to remove the Drag & Resize feature.

docs/content/3.api/1.components/1.vue-final-modal.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,9 +228,11 @@ When set `:preventNavigationGestures="true"`{lang=ts}, there will be two invisib
228228

229229
## Events
230230

231-
- `(e: 'beforeOpen'): void`{lang=ts}: Emits while modal is still invisible, but before transition starting.
231+
- `(e: 'beforeOpen', event: { stop: () => void }): void`{lang=ts}: Emits while modal is still invisible, but before transition starting.
232+
- `event.stop()` is use to prevent the modal from opening.
232233
- `(e: 'opened'): void`{lang=ts}: Emits after modal became visible and transition ended.
233-
- `(e: 'beforeClose'): void`{lang=ts}: Emits before modal is going to be closed.
234+
- `(e: 'beforeClose', event: { stop: () => void }): void`{lang=ts}: Emits before modal is going to be closed.
235+
- `event.stop()` is use to prevent the modal from closing.
234236
- `(e: 'closed'): void`{lang=ts}: Emits right before modal is destroyed.
235237
- `(e: 'clickOutside'): void`{lang=ts}: Emits while `.vfm` element on click.
236238

packages/vue-final-modal/src/components/CoreModal/CoreModal.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ import { internalVfmSymbol, vfmSymbol } from '~/injectionSymbols'
1717
export interface CoreModalEmits {
1818
(e: 'update:modelValue', modelValue: boolean): void
1919
20-
(e: 'beforeOpen', payload: { stop: () => void }): void
20+
(e: 'beforeOpen', event: { stop: () => void }): void
2121
(e: 'opened'): void
22-
(e: 'beforeClose', payload: { stop: () => void }): void
22+
(e: 'beforeClose', event: { stop: () => void }): void
2323
(e: 'closed'): void
2424
2525
/** onClickOutside will only be emitted when clickToClose equal to `false` */

viteplay/src/components/VueFinalModal/StopEvent.example.vue

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { ModalsContainer, VueFinalModal, useModal, useModalSlot } from 'vue-final-modal'
33
import DefaultSlot from '../DefaultSlot.vue'
44
5-
let count = 1
5+
let count = 0
66
77
const modal = useModal({
88
keepAlive: true,
@@ -11,22 +11,22 @@ const modal = useModal({
1111
background: 'interactive',
1212
contentStyle: { backgroundColor: '#fff' },
1313
onClosed() {
14-
count = 1
14+
count = 0
1515
},
1616
onOpened() {
17-
count = 1
17+
count = 0
1818
},
1919
onBeforeClose({ stop }) {
2020
count += 1
21-
if (count <= 5) {
22-
console.log('Modal close stopped')
21+
if (count < 5) {
22+
alert(`Modal close stopped ${count} / 4`)
2323
stop()
2424
}
2525
},
2626
onBeforeOpen({ stop }) {
2727
count += 1
28-
if (count <= 5) {
29-
console.log('Modal Open stopped')
28+
if (count < 5) {
29+
alert(`Modal open stopped ${count} / 4`)
3030
stop()
3131
}
3232
},
@@ -35,10 +35,7 @@ const modal = useModal({
3535
default: useModalSlot({
3636
component: DefaultSlot,
3737
attrs: {
38-
text: '123',
39-
onCreate() {
40-
// console.log('onCreated')
41-
},
38+
text: 'This is an example of a modal with a default slot',
4239
},
4340
}),
4441
},

viteplay/src/components/VueFinalModal/TestModal.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ const props = defineProps({
1818
1919
const emit = defineEmits<{
2020
(e: 'update:modelValue', modelValue: boolean): void
21-
(e: 'beforeOpen', payload: { stop: () => void }): void
21+
(e: 'beforeOpen', event: { stop: () => void }): void
2222
(e: 'opened'): void
23-
(e: 'beforeClose', payload: { stop: () => void }): void
23+
(e: 'beforeClose', event: { stop: () => void }): void
2424
(e: 'closed'): void
2525
/** onClickOutside will only be emitted when clickToClose equal to `false` */
2626
(e: 'clickOutside'): void

0 commit comments

Comments
 (0)