video playback and timeline playhead

This commit is contained in:
2026-03-05 19:18:45 -05:00
parent 20874ecff7
commit 78651ca58d
8 changed files with 227 additions and 37 deletions

View File

@@ -15,13 +15,14 @@ use crate::{
const PLAYER_CSS: Asset = asset!("/assets/styling/player.scss");
#[component]
pub fn Player() -> Element {
pub fn Player() -> Element
{
let mut selected_date = use_signal(|| {
let now = Local::now();
Some(Date::from_ordinal_date(now.year(), now.ordinal() as u16).unwrap())
});
let mut zoom = use_signal(|| 1.0 as f32);
let mut time = use_signal(|| 0 as i64);
let time = use_signal(|| 0 as i64);
let playbackResult = use_resource(use_reactive!(|(selected_date)| async move {
let mut client = get_rpc_client();
info!("Load data");
@@ -30,17 +31,22 @@ pub fn Player() -> Element {
let result = client
.get_media_playback(MediaPlaybackRequest { date: Some(from) })
.await;
if let Ok(entries) = result {
if let Ok(entries) = result
{
let res = entries.into_inner();
return Ok(res);
} else {
}
else
{
let err = result.err().unwrap();
let msg = err.message();
return Err(format!("Failed to load results: {msg}"));
}
}));
let info = match playbackResult.cloned() {
Some(value) => match value {
let info = match playbackResult.cloned()
{
Some(value) => match value
{
Ok(result) => Some(result),
Err(_) => None,
},
@@ -73,10 +79,10 @@ pub fn Player() -> Element {
selected_date.set(v);
},
DatePickerInput{}
}
},
}
Viewport { }
Timeline { playbackInfo: info, zoom, time }
Viewport { playback_info: info.clone(), time }
Timeline { playback_info: info, zoom, time }
}
}
}