Skip to content

Commit 0ba4b78

Browse files
SonTT19johnleider
andauthored
fix(VTimePicker): properly apply disabled props (#19964)
Co-authored-by: John Leider <john@vuetifyjs.com>
1 parent 9e1cfbd commit 0ba4b78

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

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

+5-1
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ export const VTimePickerClock = genericComponent()({
102102
}
103103

104104
function wheel (e: WheelEvent) {
105+
if (!props.scrollable || props.disabled) return
106+
105107
e.preventDefault()
106108

107109
const delta = Math.sign(-e.deltaY || 1)
@@ -196,6 +198,8 @@ export const VTimePickerClock = genericComponent()({
196198
}
197199

198200
function onMouseDown (e: MouseEvent | TouchEvent) {
201+
if (props.disabled) return
202+
199203
e.preventDefault()
200204

201205
window.addEventListener('mousemove', onDragMove)
@@ -233,7 +237,7 @@ export const VTimePickerClock = genericComponent()({
233237
]}
234238
onMousedown={ onMouseDown }
235239
onTouchstart={ onMouseDown }
236-
onWheel={ (e: WheelEvent) => (props.scrollable && wheel(e)) }
240+
onWheel={ wheel }
237241
ref={ clockRef }
238242
>
239243
<div class="v-time-picker-clock__inner" ref={ innerClockRef }>

packages/vuetify/src/labs/VTimePicker/VTimePickerControls.tsx

+7-2
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export const VTimePickerControls = genericComponent()({
5959
<VBtn
6060
active={ props.selecting === 1 }
6161
color={ props.selecting === 1 ? props.color : undefined }
62+
disabled={ props.disabled }
6263
variant="tonal"
6364
class={{
6465
'v-time-picker-controls__time__btn': true,
@@ -85,6 +86,7 @@ export const VTimePickerControls = genericComponent()({
8586
'v-time-picker-controls__time--with-ampm__btn': props.ampm,
8687
'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,
8788
}}
89+
disabled={ props.disabled }
8890
variant="tonal"
8991
text={ props.minute == null ? '--' : pad(props.minute) }
9092
onClick={ () => emit('update:selecting', SelectingTimes.Minute) }
@@ -113,6 +115,7 @@ export const VTimePickerControls = genericComponent()({
113115
'v-time-picker-controls__time__btn__active': props.selecting === 3,
114116
'v-time-picker-controls__time--with-seconds__btn': props.useSeconds,
115117
}}
118+
disabled={ props.disabled }
116119
text={ props.second == null ? '--' : pad(props.second) }
117120
/>
118121
)
@@ -133,8 +136,9 @@ export const VTimePickerControls = genericComponent()({
133136
'v-time-picker-controls__ampm__btn': true,
134137
'v-time-picker-controls__ampm__btn__active': props.period === 'am',
135138
}}
139+
disabled={ props.disabled }
136140
text={ t('$vuetify.timePicker.am') }
137-
variant="tonal"
141+
variant={ props.disabled && props.period === 'am' ? 'elevated' : 'tonal' }
138142
onClick={ () => props.period !== 'am' ? emit('update:period', 'am') : null }
139143
/>
140144

@@ -146,8 +150,9 @@ export const VTimePickerControls = genericComponent()({
146150
'v-time-picker-controls__ampm__btn': true,
147151
'v-time-picker-controls__ampm__btn__active': props.period === 'pm',
148152
}}
153+
disabled={ props.disabled }
149154
text={ t('$vuetify.timePicker.pm') }
150-
variant="tonal"
155+
variant={ props.disabled && props.period === 'pm' ? 'elevated' : 'tonal' }
151156
onClick={ () => props.period !== 'pm' ? emit('update:period', 'pm') : null }
152157
/>
153158
</div>

0 commit comments

Comments
 (0)