feat(ui): add dedicated Paused filter
This commit is contained in:
@@ -33,6 +33,14 @@ pub fn Sidebar() -> impl IntoView {
|
|||||||
})
|
})
|
||||||
.count()
|
.count()
|
||||||
};
|
};
|
||||||
|
let paused_count = move || {
|
||||||
|
store
|
||||||
|
.torrents
|
||||||
|
.get()
|
||||||
|
.iter()
|
||||||
|
.filter(|t| t.status == shared::TorrentStatus::Paused)
|
||||||
|
.count()
|
||||||
|
};
|
||||||
let inactive_count = move || {
|
let inactive_count = move || {
|
||||||
store
|
store
|
||||||
.torrents
|
.torrents
|
||||||
@@ -107,6 +115,15 @@ pub fn Sidebar() -> impl IntoView {
|
|||||||
<span class="badge badge-sm badge-ghost ml-auto">{completed_count}</span>
|
<span class="badge badge-sm badge-ghost ml-auto">{completed_count}</span>
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<button class={move || format!("cursor-pointer {}", filter_class(crate::store::FilterStatus::Paused))} on:click=move |_| set_filter(crate::store::FilterStatus::Paused)>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-5 h-5">
|
||||||
|
<path stroke-linecap="round" stroke-linejoin="round" d="M15.75 5.25v13.5m-7.5-13.5v13.5" />
|
||||||
|
</svg>
|
||||||
|
"Paused"
|
||||||
|
<span class="badge badge-sm badge-ghost ml-auto">{paused_count}</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<button class={move || format!("cursor-pointer {}", filter_class(crate::store::FilterStatus::Inactive))} on:click=move |_| set_filter(crate::store::FilterStatus::Inactive)>
|
<button class={move || format!("cursor-pointer {}", filter_class(crate::store::FilterStatus::Inactive))} on:click=move |_| set_filter(crate::store::FilterStatus::Inactive)>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-5 h-5">
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-5 h-5">
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ pub fn TorrentTable() -> impl IntoView {
|
|||||||
|| (t.status == shared::TorrentStatus::Paused
|
|| (t.status == shared::TorrentStatus::Paused
|
||||||
&& t.percent_complete >= 100.0)
|
&& t.percent_complete >= 100.0)
|
||||||
} // Approximate
|
} // Approximate
|
||||||
|
crate::store::FilterStatus::Paused => t.status == shared::TorrentStatus::Paused,
|
||||||
crate::store::FilterStatus::Inactive => {
|
crate::store::FilterStatus::Inactive => {
|
||||||
t.status == shared::TorrentStatus::Paused
|
t.status == shared::TorrentStatus::Paused
|
||||||
|| t.status == shared::TorrentStatus::Error
|
|| t.status == shared::TorrentStatus::Error
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ pub enum FilterStatus {
|
|||||||
Downloading,
|
Downloading,
|
||||||
Seeding,
|
Seeding,
|
||||||
Completed,
|
Completed,
|
||||||
|
Paused,
|
||||||
Inactive,
|
Inactive,
|
||||||
Active,
|
Active,
|
||||||
Error,
|
Error,
|
||||||
@@ -21,6 +22,7 @@ impl FilterStatus {
|
|||||||
FilterStatus::Downloading => "Downloading",
|
FilterStatus::Downloading => "Downloading",
|
||||||
FilterStatus::Seeding => "Seeding",
|
FilterStatus::Seeding => "Seeding",
|
||||||
FilterStatus::Completed => "Completed",
|
FilterStatus::Completed => "Completed",
|
||||||
|
FilterStatus::Paused => "Paused",
|
||||||
FilterStatus::Inactive => "Inactive",
|
FilterStatus::Inactive => "Inactive",
|
||||||
FilterStatus::Active => "Active",
|
FilterStatus::Active => "Active",
|
||||||
FilterStatus::Error => "Error",
|
FilterStatus::Error => "Error",
|
||||||
|
|||||||
Reference in New Issue
Block a user