Update seconds when tracking

This commit is contained in:
Mikko Ahlroth 2023-10-21 23:25:30 +03:00
parent 00278d81a1
commit 89f30e0225

View file

@ -49,6 +49,7 @@ pub type Msg {
StartUserSkip
EndUserSkip
PositionSelected(Int)
PositionChanged(Int)
}
pub fn init(
@ -110,10 +111,13 @@ pub fn update(model: Model, msg) {
)
StartUserSkip -> #(Model(..model, user_is_skipping: True), effect.none())
EndUserSkip -> #(Model(..model, user_is_skipping: False), effect.none())
PositionSelected(time) -> {
skip_to_time(time)
PositionSelected(pos) -> {
skip_to_time(pos)
#(Model(..model, position: time), effect.none())
#(Model(..model, position: pos), effect.none())
}
PositionChanged(pos) -> {
#(Model(..model, position: pos), effect.none())
}
}
}
@ -184,9 +188,10 @@ pub fn view(model: Model) {
attribute.min("0"),
attribute.max(int.to_string(model.track.length)),
attribute.attribute("aria-label", "Track position"),
event.on("change", event_slider_change),
event.on("change", event_track_change),
event.on_mouse_down(StartUserSkip),
event.on_mouse_up(EndUserSkip),
event.on_input(event_track_input),
]),
p(
[attribute.id("player-times")],
@ -234,10 +239,14 @@ fn event_timeupdate(_: a) {
Ok(UpdateTime(current_time()))
}
fn event_slider_change(_: a) {
fn event_track_change(_: a) {
Ok(PositionSelected(current_track_position()))
}
fn event_track_input(_: a) {
PositionChanged(current_track_position())
}
@external(javascript, "../../../player_ffi.mjs", "play")
fn play() -> Nil