mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-14 20:19:34 +01:00
feat: expose open state to slots
This commit is contained in:
@@ -43,7 +43,7 @@ export interface DropdownMenuEmits extends DropdownMenuRootEmits {}
|
||||
type SlotProps<T> = (props: { item: T, active?: boolean, index: number }) => any
|
||||
|
||||
export type DropdownMenuSlots<T extends { slot?: string }> = {
|
||||
'default'(): any
|
||||
'default'(props: { open: boolean }): any
|
||||
'item': SlotProps<T>
|
||||
'item-leading': SlotProps<T>
|
||||
'item-label': SlotProps<T>
|
||||
@@ -75,9 +75,9 @@ const ui = computed(() => tv({ extend: dropdownMenu, slots: props.ui })())
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<DropdownMenuRoot v-bind="rootProps">
|
||||
<DropdownMenuRoot v-slot="{ open }" v-bind="rootProps">
|
||||
<DropdownMenuTrigger v-if="!!slots.default" as-child :disabled="disabled">
|
||||
<slot />
|
||||
<slot :open="open" />
|
||||
</DropdownMenuTrigger>
|
||||
|
||||
<UDropdownMenuContent :class="ui.content({ class: props.class })" :ui="ui" v-bind="contentProps" :items="items" :portal="portal">
|
||||
|
||||
Reference in New Issue
Block a user