Skip to content

Commit ecbe030

Browse files
authored
fix(SSR): avoid errors when rendering with latest Vue (#22764)
fixes #22762
1 parent 386521f commit ecbe030

5 files changed

Lines changed: 10 additions & 2 deletions

File tree

packages/vuetify/src/components/VNumberInput/hold.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Utilities
22
import { onScopeDispose } from 'vue'
3+
import { IN_BROWSER } from '@/util'
34

45
const HOLD_REPEAT = 50
56
const HOLD_DELAY = 500
@@ -21,6 +22,7 @@ export function useHold ({ toggleUpDown }: { toggleUpDown: (increment: boolean)
2122
}
2223

2324
function holdStop () {
25+
if (!IN_BROWSER) return
2426
window.clearTimeout(timeout)
2527
window.clearInterval(interval)
2628
window.removeEventListener('pointerup', holdStop)

packages/vuetify/src/components/VSlider/slider.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { makeRoundedProps } from '@/composables/rounded'
77

88
// Utilities
99
import { computed, nextTick, onScopeDispose, provide, ref, shallowRef, toRef } from 'vue'
10-
import { clamp, createRange, getDecimals, propsFactory } from '@/util'
10+
import { clamp, createRange, getDecimals, IN_BROWSER, propsFactory } from '@/util'
1111

1212
// Types
1313
import type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'
@@ -316,6 +316,7 @@ export const useSlider = ({
316316
}
317317

318318
onScopeDispose(() => {
319+
if (!IN_BROWSER) return
319320
window.removeEventListener('touchmove', onMouseMove)
320321
window.removeEventListener('mousemove', onMouseMove)
321322
window.removeEventListener('mouseup', onSliderMouseUp)

packages/vuetify/src/components/VTimePicker/VTimePickerClock.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { useBackgroundColor, useTextColor } from '@/composables/color'
66

77
// Utilities
88
import { computed, onScopeDispose, ref, watch } from 'vue'
9-
import { debounce, genericComponent, propsFactory, useRender } from '@/util'
9+
import { debounce, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'
1010

1111
// Types
1212
import type { PropType } from 'vue'
@@ -225,6 +225,7 @@ export const VTimePickerClock = genericComponent()({
225225
}
226226

227227
function removeListeners () {
228+
if (!IN_BROWSER) return
228229
window.removeEventListener('mousemove', onDragMove)
229230
window.removeEventListener('touchmove', onDragMove)
230231
window.removeEventListener('mouseup', onMouseUp)

packages/vuetify/src/components/VVirtualScroll/VVirtualScroll.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import {
1717
genericComponent,
1818
getCurrentInstance,
1919
getScrollParent,
20+
IN_BROWSER,
2021
propsFactory,
2122
useRender,
2223
} from '@/util'
@@ -77,6 +78,8 @@ export const VVirtualScroll = genericComponent<new <T, Renderless extends boolea
7778
function handleListeners (add = false) {
7879
const method = add ? 'addEventListener' : 'removeEventListener'
7980

81+
if (!IN_BROWSER) return
82+
8083
if (containerRef.value === document.documentElement) {
8184
document[method]('scroll', handleScroll, { passive: true })
8285
document[method]('scrollend', handleScrollend)

packages/vuetify/src/composables/focusTrap.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ export function useFocusTrap (
190190

191191
onScopeDispose(() => {
192192
registry.delete(trapId)
193+
if (!IN_BROWSER) return
193194
clearTimeout(focusTrapSuppressionTimeout)
194195
document.removeEventListener('pointerdown', onPointerdown)
195196
document.removeEventListener('focusin', captureOnFocus)

0 commit comments

Comments
 (0)