Updated the dashboard page
This commit is contained in:
@@ -7,7 +7,6 @@ use crate::types::AppConfig;
|
||||
pub fn settings_page() -> Html {
|
||||
let config = use_state(|| None::<AppConfig>);
|
||||
let error = use_state(|| None::<String>);
|
||||
let message = use_state(|| None::<String>);
|
||||
|
||||
{
|
||||
let config = config.clone();
|
||||
@@ -22,53 +21,20 @@ pub fn settings_page() -> Html {
|
||||
});
|
||||
}
|
||||
|
||||
let trigger = |action: &'static str| {
|
||||
let message = message.clone();
|
||||
let error = error.clone();
|
||||
Callback::from(move |_: MouseEvent| {
|
||||
let message = message.clone();
|
||||
let error = error.clone();
|
||||
wasm_bindgen_futures::spawn_local(async move {
|
||||
let result = match action {
|
||||
"index" => api::trigger_index().await,
|
||||
"tag" => api::trigger_tag().await,
|
||||
"organize" => api::trigger_organize().await,
|
||||
_ => return,
|
||||
};
|
||||
match result {
|
||||
Ok(t) => message.set(Some(format!("{action} started (task: {})", t.task_id))),
|
||||
Err(e) => error.set(Some(e.0)),
|
||||
}
|
||||
});
|
||||
})
|
||||
};
|
||||
|
||||
html! {
|
||||
<div>
|
||||
<div class="page-header">
|
||||
<h2>{ "Settings" }</h2>
|
||||
</div>
|
||||
|
||||
if let Some(ref msg) = *message {
|
||||
<div class="card" style="border-color: var(--success);">{ msg }</div>
|
||||
}
|
||||
if let Some(ref err) = *error {
|
||||
<div class="card error">{ err }</div>
|
||||
}
|
||||
|
||||
<div class="card">
|
||||
<h3>{ "Actions" }</h3>
|
||||
<div class="actions mt-1">
|
||||
<button class="btn btn-primary" onclick={trigger("index")}>{ "Re-index Library" }</button>
|
||||
<button class="btn btn-primary" onclick={trigger("tag")}>{ "Auto-tag Tracks" }</button>
|
||||
<button class="btn btn-primary" onclick={trigger("organize")}>{ "Organize Files" }</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{ match &*config {
|
||||
None => html! { <p class="loading">{ "Loading configuration..." }</p> },
|
||||
Some(c) => html! {
|
||||
<div class="card mt-2">
|
||||
<div class="card">
|
||||
<h3>{ "Configuration" }</h3>
|
||||
<table>
|
||||
<tbody>
|
||||
|
||||
Reference in New Issue
Block a user