Skip to content

Commit bf56e15

Browse files
authored
fix(useOverlay): use original props when not provided to open (#4269)
1 parent 09151df commit bf56e15

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/runtime/composables/useOverlay.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ interface ManagedOverlayOptionsPrivate<T extends Component> {
1717
id: symbol
1818
isMounted: boolean
1919
isOpen: boolean
20+
originalProps?: ComponentProps<T>
2021
resolvePromise?: (value: any) => void
2122
}
2223
export type Overlay = OverlayOptions<Component> & ManagedOverlayOptionsPrivate<Component>
@@ -26,7 +27,6 @@ type OverlayInstance<T extends Component> = Omit<ManagedOverlayOptionsPrivate<T>
2627
open: (props?: ComponentProps<T>) => OpenedOverlay<T>
2728
close: (value?: any) => void
2829
patch: (props: Partial<ComponentProps<T>>) => void
29-
3030
}
3131

3232
type OpenedOverlay<T extends Component> = Omit<OverlayInstance<T>, 'open' | 'close' | 'patch' | 'modelValue' | 'resolvePromise'> & {
@@ -37,15 +37,16 @@ function _useOverlay() {
3737
const overlays = shallowReactive<Overlay[]>([])
3838

3939
const create = <T extends Component>(component: T, _options?: OverlayOptions<ComponentProps<T>>): OverlayInstance<T> => {
40-
const { props: props, defaultOpen, destroyOnClose } = _options || {}
40+
const { props, defaultOpen, destroyOnClose } = _options || {}
4141

4242
const options = reactive<Overlay>({
4343
id: Symbol(import.meta.dev ? 'useOverlay' : ''),
4444
isOpen: !!defaultOpen,
4545
component: markRaw(component!),
4646
isMounted: !!defaultOpen,
4747
destroyOnClose: !!destroyOnClose,
48-
props: props || {}
48+
originalProps: props || {},
49+
props: {}
4950
})
5051

5152
overlays.push(options)
@@ -64,6 +65,8 @@ function _useOverlay() {
6465
// If props are provided, update the overlay's props
6566
if (props) {
6667
patch(overlay.id, props)
68+
} else {
69+
patch(overlay.id, overlay.originalProps)
6770
}
6871

6972
overlay.isOpen = true

0 commit comments

Comments
 (0)