deck actions

Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
kernelkind
2024-12-05 20:01:27 -05:00
parent 845a983592
commit 56a8ba30f3
10 changed files with 230 additions and 54 deletions

View File

@@ -205,6 +205,8 @@ impl<'a> NavTitle<'a> {
Route::AddColumn(_add_col_route) => {}
Route::Support => {}
Route::Relays => {}
Route::NewDeck => {}
Route::EditDeck(_) => {}
}
}

View File

@@ -8,8 +8,10 @@ use crate::{
app::get_active_columns_mut,
app_style, colors,
column::Column,
decks::DecksAction,
decks::DecksCache,
imgcache::ImageCache,
nav::SwitchingAction,
route::Route,
support::Support,
user_account::UserAccount,
@@ -48,6 +50,9 @@ pub enum SidePanelAction {
Search,
ExpandSidePanel,
Support,
NewDeck,
SwitchDeck(usize),
EditDeck(usize),
}
pub struct SidePanelResponse {
@@ -210,8 +215,9 @@ impl<'a> DesktopSidePanel<'a> {
accounts: &Accounts,
support: &mut Support,
action: SidePanelAction,
) {
) -> Option<SwitchingAction> {
let router = get_active_columns_mut(accounts, decks_cache).get_first_router();
let mut switching_response = None;
match action {
SidePanelAction::Panel => {} // TODO
SidePanelAction::Account => {
@@ -268,7 +274,27 @@ impl<'a> DesktopSidePanel<'a> {
router.route_to(Route::Support);
}
}
SidePanelAction::NewDeck => {
if router.routes().iter().any(|&r| r == Route::NewDeck) {
router.go_back();
} else {
router.route_to(Route::NewDeck);
}
}
SidePanelAction::SwitchDeck(index) => {
switching_response = Some(crate::nav::SwitchingAction::Decks(DecksAction::Switch(
index,
)))
}
SidePanelAction::EditDeck(index) => {
if router.routes().iter().any(|&r| r == Route::EditDeck(index)) {
router.go_back();
} else {
router.route_to(Route::EditDeck(index));
}
}
}
switching_response
}
}