chore(ui-iced): simplify init to default state and refresh initiation
This commit is contained in:
@@ -13,7 +13,6 @@ members = [
|
|||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
iced = { version = "0.14.0" }
|
iced = { version = "0.14.0" }
|
||||||
gst = { version = "0.1.0", path = "crates/gst" }
|
gst = { version = "0.1.0", path = "crates/gst" }
|
||||||
iced_wgpu = { version = "0.14.0" }
|
|
||||||
iced-video = { version = "0.1.0", path = "crates/iced-video" }
|
iced-video = { version = "0.1.0", path = "crates/iced-video" }
|
||||||
api = { version = "0.1.0", path = "crates/api" }
|
api = { version = "0.1.0", path = "crates/api" }
|
||||||
|
|
||||||
|
|||||||
@@ -441,51 +441,7 @@ fn card(item: &Item) -> Element<'_, Message> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn init() -> (State, Task<Message>) {
|
fn init() -> (State, Task<Message>) {
|
||||||
// Create a default config for initial state
|
(State::new(), Task::done(Message::Refresh))
|
||||||
|
|
||||||
// let default_config = api::JellyfinConfig {
|
|
||||||
// server_url: "http://localhost:8096".parse().expect("Valid URL"),
|
|
||||||
// device_id: "jello-iced".to_string(),
|
|
||||||
// device_name: "Jello Iced".to_string(),
|
|
||||||
// client_name: "Jello".to_string(),
|
|
||||||
// version: "0.1.0".to_string(),
|
|
||||||
// };
|
|
||||||
// let default_client = api::JellyfinClient::new_with_config(default_config);
|
|
||||||
|
|
||||||
(
|
|
||||||
State::new(),
|
|
||||||
Task::perform(
|
|
||||||
async move {
|
|
||||||
let config_str = std::fs::read_to_string("config.toml")
|
|
||||||
.map_err(|e| api::JellyfinApiError::IoError(e))?;
|
|
||||||
let config: api::JellyfinConfig = toml::from_str(&config_str).map_err(|e| {
|
|
||||||
api::JellyfinApiError::IoError(std::io::Error::new(
|
|
||||||
std::io::ErrorKind::InvalidData,
|
|
||||||
e,
|
|
||||||
))
|
|
||||||
})?;
|
|
||||||
|
|
||||||
// Try to load cached token and authenticate
|
|
||||||
match std::fs::read_to_string(".session") {
|
|
||||||
Ok(token) => {
|
|
||||||
let client = api::JellyfinClient::pre_authenticated(token.trim(), config)?;
|
|
||||||
Ok((client, true))
|
|
||||||
}
|
|
||||||
Err(_) => {
|
|
||||||
// No cached token, create unauthenticated client
|
|
||||||
let client = api::JellyfinClient::new_with_config(config);
|
|
||||||
Ok((client, false))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|result: Result<_, api::JellyfinApiError>| match result {
|
|
||||||
// Ok((client, is_authenticated)) => Message::LoadedClient(client, is_authenticated),
|
|
||||||
Err(e) => Message::Error(format!("Initialization failed: {}", e)),
|
|
||||||
_ => Message::Error("Login Unimplemented".to_string()),
|
|
||||||
},
|
|
||||||
)
|
|
||||||
.chain(Task::done(Message::Refresh)),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ui() -> iced::Result {
|
pub fn ui() -> iced::Result {
|
||||||
|
|||||||
Reference in New Issue
Block a user