video playback and timeline playhead
This commit is contained in:
@@ -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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user