Skip to content

Commit d60d2a5

Browse files
Add Vue emit types (#712)
* Add Vue emit types * ensure value is a boolean Even though we only use `false` for now * add Vue emit types for Tabs component * update changelog Co-authored-by: henribru <[email protected]>
1 parent c111784 commit d60d2a5

File tree

7 files changed

+20
-7
lines changed

7 files changed

+20
-7
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1616
### Fixes
1717

1818
- Only add `type=button` to real buttons ([#709](https://github.com/tailwindlabs/headlessui/pull/709))
19+
- Add Vue emit types ([#679](https://github.com/tailwindlabs/headlessui/pull/679), [#712](https://github.com/tailwindlabs/headlessui/pull/712))
1920

2021
## [@headlessui/react@v1.4.0] - 2021-07-29
2122

packages/@headlessui-vue/src/components/dialog/dialog.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export let Dialog = defineComponent({
7474
open: { type: [Boolean, String], default: Missing },
7575
initialFocus: { type: Object as PropType<HTMLElement | null>, default: null },
7676
},
77-
emits: ['close'],
77+
emits: { close: (_close: boolean) => true },
7878
render() {
7979
let propsWeControl = {
8080
// Manually passthrough the attributes, because Vue can't automatically pass

packages/@headlessui-vue/src/components/listbox/listbox.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ function useListboxContext(component: string) {
7979

8080
export let Listbox = defineComponent({
8181
name: 'Listbox',
82-
emits: ['update:modelValue'],
82+
emits: { 'update:modelValue': (_value: any) => true },
8383
props: {
8484
as: { type: [Object, String], default: 'template' },
8585
disabled: { type: [Boolean], default: false },

packages/@headlessui-vue/src/components/radio-group/radio-group.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ function useRadioGroupContext(component: string) {
6060

6161
export let RadioGroup = defineComponent({
6262
name: 'RadioGroup',
63-
emits: ['update:modelValue'],
63+
emits: { 'update:modelValue': (_value: any) => true },
6464
props: {
6565
as: { type: [Object, String], default: 'div' },
6666
disabled: { type: [Boolean], default: false },

packages/@headlessui-vue/src/components/switch/switch.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export let SwitchGroup = defineComponent({
5959

6060
export let Switch = defineComponent({
6161
name: 'Switch',
62-
emits: ['update:modelValue'],
62+
emits: { 'update:modelValue': (_value: boolean) => true },
6363
props: {
6464
as: { type: [Object, String], default: 'button' },
6565
modelValue: { type: Boolean, default: false },

packages/@headlessui-vue/src/components/tabs/tabs.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ function useTabsContext(component: string) {
5252

5353
export let TabGroup = defineComponent({
5454
name: 'TabGroup',
55-
emits: ['change'],
55+
emits: {
56+
change: (_index: number) => true,
57+
},
5658
props: {
5759
as: { type: [Object, String], default: 'template' },
5860
defaultIndex: { type: [Number], default: 0 },

packages/@headlessui-vue/src/components/transitions/transition.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,12 @@ export let TransitionChild = defineComponent({
145145
leaveFrom: { type: [String], default: '' },
146146
leaveTo: { type: [String], default: '' },
147147
},
148-
emits: ['beforeEnter', 'afterEnter', 'beforeLeave', 'afterLeave'],
148+
emits: {
149+
beforeEnter: () => true,
150+
afterEnter: () => true,
151+
beforeLeave: () => true,
152+
afterLeave: () => true,
153+
},
149154
render() {
150155
if (this.renderAsRoot) {
151156
return h(
@@ -357,7 +362,12 @@ export let TransitionRoot = defineComponent({
357362
leaveFrom: { type: [String], default: '' },
358363
leaveTo: { type: [String], default: '' },
359364
},
360-
emits: ['beforeEnter', 'afterEnter', 'beforeLeave', 'afterLeave'],
365+
emits: {
366+
beforeEnter: () => true,
367+
afterEnter: () => true,
368+
beforeLeave: () => true,
369+
afterLeave: () => true,
370+
},
361371
render() {
362372
let { show, appear, unmount, ...passThroughProps } = this.$props
363373
let sharedProps = { unmount }

0 commit comments

Comments
 (0)