diff --git a/thaw/src/time_picker/mod.rs b/thaw/src/time_picker/mod.rs index 56e6c38..a3edd79 100644 --- a/thaw/src/time_picker/mod.rs +++ b/thaw/src/time_picker/mod.rs @@ -3,7 +3,8 @@ mod theme; pub use theme::TimePickerTheme; use crate::{ - use_theme, Button, ButtonSize, ButtonVariant, Icon, Input, InputSuffix, SignalWatch, Theme, + use_theme, Button, ButtonSize, ButtonVariant, Icon, Input, InputSuffix, Scrollbar, SignalWatch, + Theme, }; use chrono::{Local, NaiveTime, Timelike}; use leptos::*; @@ -187,96 +188,99 @@ fn Panel( >
- - {(0..24) - .map(|hour| { - let comp_ref = ComponentRef::::default(); - let on_click = move |_| { - selected_time - .update(move |time| { - *time = if let Some(time) = time { - time.with_hour(hour) - } else { - NaiveTime::from_hms_opt(hour, 0, 0) - } - }); - comp_ref.get_untracked().unwrap().scroll_into_view(); - }; - let is_selected = Memo::new(move |_| { - selected_time.get().map_or(false, |v| v.hour() == hour) - }); - view! { - - } - }) - .collect_view()} + + {(0..24) + .map(|hour| { + let comp_ref = ComponentRef::::default(); + let on_click = move |_| { + selected_time + .update(move |time| { + *time = if let Some(time) = time { + time.with_hour(hour) + } else { + NaiveTime::from_hms_opt(hour, 0, 0) + } + }); + comp_ref.get_untracked().unwrap().scroll_into_view(); + }; + let is_selected = Memo::new(move |_| { + selected_time.get().map_or(false, |v| v.hour() == hour) + }); + view! { + + } + }) + .collect_view()} +
- - {(0..60) - .map(|minute| { - let comp_ref = ComponentRef::::default(); - let on_click = move |_| { - selected_time - .update(move |time| { - *time = if let Some(time) = time { - time.with_minute(minute) - } else { - NaiveTime::from_hms_opt(now_time().hour(), minute, 0) - } - }); - comp_ref.get_untracked().unwrap().scroll_into_view(); - }; - let is_selected = Memo::new(move |_| { - selected_time.get().map_or(false, |v| v.minute() == minute) - }); - view! { - - } - }) + + {(0..60) + .map(|minute| { + let comp_ref = ComponentRef::::default(); + let on_click = move |_| { + selected_time + .update(move |time| { + *time = if let Some(time) = time { + time.with_minute(minute) + } else { + NaiveTime::from_hms_opt(now_time().hour(), minute, 0) + } + }); + comp_ref.get_untracked().unwrap().scroll_into_view(); + }; + let is_selected = Memo::new(move |_| { + selected_time.get().map_or(false, |v| v.minute() == minute) + }); + view! { + + } + }) .collect_view()} +
- - {(0..60) - .map(|second| { - let comp_ref = ComponentRef::::default(); - let on_click = move |_| { - selected_time - .update(move |time| { - *time = if let Some(time) = time { - time.with_second(second) - } else { - now_time().with_second(second) - } - }); - comp_ref.get_untracked().unwrap().scroll_into_view(); - }; - let is_selected = Memo::new(move |_| { - selected_time.get().map_or(false, |v| v.second() == second) - }); - view! { - - } - }) - .collect_view()} + + {(0..60) + .map(|second| { + let comp_ref = ComponentRef::::default(); + let on_click = move |_| { + selected_time + .update(move |time| { + *time = if let Some(time) = time { + time.with_second(second) + } else { + now_time().with_second(second) + } + }); + comp_ref.get_untracked().unwrap().scroll_into_view(); + }; + let is_selected = Memo::new(move |_| { + selected_time.get().map_or(false, |v| v.second() == second) + }); + view! { + + } + }) + .collect_view()} +
diff --git a/thaw/src/time_picker/time-picker.css b/thaw/src/time_picker/time-picker.css index 7ec9a00..696938f 100644 --- a/thaw/src/time_picker/time-picker.css +++ b/thaw/src/time_picker/time-picker.css @@ -17,7 +17,6 @@ .thaw-time-picker-panel__time-minute, .thaw-time-picker-panel__time-second { flex: 1; - overflow-y: auto; } .thaw-time-picker-panel__time-item {