Skip to content

Commit a4b69ae

Browse files
committed
fix(VFab, VFooter): avoid error when changing app prop
1 parent daeb1a7 commit a4b69ae

File tree

2 files changed

+17
-33
lines changed

2 files changed

+17
-33
lines changed

packages/vuetify/src/components/VFab/VFab.tsx

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'
99
import { makeLocationProps } from '@/composables/location'
1010
import { useProxiedModel } from '@/composables/proxiedModel'
1111
import { useResizeObserver } from '@/composables/resizeObserver'
12-
import { useToggleScope } from '@/composables/toggleScope'
1312
import { makeTransitionProps, MaybeTransition } from '@/composables/transition'
1413

1514
// Utilities
@@ -49,7 +48,6 @@ export const VFab = genericComponent()({
4948
setup (props, { slots }) {
5049
const model = useProxiedModel(props, 'modelValue')
5150
const height = shallowRef(56)
52-
const layoutItemStyles = ref()
5351

5452
const { resizeRef } = useResizeObserver(entries => {
5553
if (!entries.length) return
@@ -70,20 +68,14 @@ export const VFab = genericComponent()({
7068
return props.location?.split(' ')[1] ?? 'end'
7169
})
7270

73-
useToggleScope(() => props.app, () => {
74-
const layout = useLayoutItem({
75-
id: props.name,
76-
order: computed(() => parseInt(props.order, 10)),
77-
position,
78-
layoutSize: computed(() => props.layout ? height.value + 24 : 0),
79-
elementSize: computed(() => height.value + 24),
80-
active: computed(() => props.app && model.value),
81-
absolute: toRef(() => props.absolute),
82-
})
83-
84-
watchEffect(() => {
85-
layoutItemStyles.value = layout.layoutItemStyles.value
86-
})
71+
const { layoutItemStyles } = useLayoutItem({
72+
id: props.name,
73+
order: computed(() => parseInt(props.order, 10)),
74+
position,
75+
layoutSize: computed(() => props.layout ? height.value + 24 : 0),
76+
elementSize: computed(() => height.value + 24),
77+
active: computed(() => props.app && model.value),
78+
absolute: toRef(() => props.absolute),
8779
})
8880

8981
const vFabRef = ref()
@@ -108,7 +100,7 @@ export const VFab = genericComponent()({
108100
]}
109101
style={[
110102
props.app
111-
? { ...layoutItemStyles.value }
103+
? layoutItemStyles.value
112104
: {
113105
height: props.absolute
114106
? '100%'

packages/vuetify/src/components/VFooter/VFooter.tsx

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import { useResizeObserver } from '@/composables/resizeObserver'
1111
import { makeRoundedProps, useRounded } from '@/composables/rounded'
1212
import { makeTagProps } from '@/composables/tag'
1313
import { makeThemeProps, provideTheme } from '@/composables/theme'
14-
import { useToggleScope } from '@/composables/toggleScope'
1514

1615
// Utilities
1716
import { computed, ref, shallowRef, toRef, watchEffect } from 'vue'
@@ -40,7 +39,6 @@ export const VFooter = genericComponent()({
4039
props: makeVFooterProps(),
4140

4241
setup (props, { slots }) {
43-
const layoutItemStyles = ref()
4442

4543
const { themeClasses } = provideTheme(props)
4644
const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)
@@ -55,20 +53,14 @@ export const VFooter = genericComponent()({
5553
})
5654
const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10))
5755

58-
useToggleScope(() => props.app, () => {
59-
const layout = useLayoutItem({
60-
id: props.name,
61-
order: computed(() => parseInt(props.order, 10)),
62-
position: toRef(() => 'bottom'),
63-
layoutSize: height,
64-
elementSize: computed(() => props.height === 'auto' ? undefined : height.value),
65-
active: toRef(() => props.app),
66-
absolute: toRef(() => props.absolute),
67-
})
68-
69-
watchEffect(() => {
70-
layoutItemStyles.value = layout.layoutItemStyles.value
71-
})
56+
const { layoutItemStyles } = useLayoutItem({
57+
id: props.name,
58+
order: computed(() => parseInt(props.order, 10)),
59+
position: toRef(() => 'bottom'),
60+
layoutSize: height,
61+
elementSize: computed(() => props.height === 'auto' ? undefined : height.value),
62+
active: toRef(() => props.app),
63+
absolute: toRef(() => props.absolute),
7264
})
7365

7466
useRender(() => (

0 commit comments

Comments
 (0)