Files
notedeck/crates/notedeck_columns/src/view_state.rs
kernelkind bdcd31cda0 add onboarding related state to app
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-08-17 15:07:19 -04:00

39 lines
1.2 KiB
Rust

use std::collections::HashMap;
use enostr::Pubkey;
use notedeck_ui::nip51_set::Nip51SetUiCache;
use crate::deck_state::DeckState;
use crate::login_manager::AcquireKeyState;
use crate::ui::search::SearchQueryState;
use enostr::ProfileState;
use notedeck_ui::media::MediaViewerState;
/// Various state for views
///
/// TODO(jb55): we likely want to encapsulate these better,
/// or at least document where they are used
#[derive(Default)]
pub struct ViewState {
pub login: AcquireKeyState,
pub id_to_deck_state: HashMap<egui::Id, DeckState>,
pub id_state_map: HashMap<egui::Id, AcquireKeyState>,
pub id_string_map: HashMap<egui::Id, String>,
pub searches: HashMap<egui::Id, SearchQueryState>,
pub pubkey_to_profile_state: HashMap<Pubkey, ProfileState>,
/// Keeps track of what urls we are actively viewing in the
/// fullscreen media viewier, as well as any other state we want to
/// keep track of
pub media_viewer: MediaViewerState,
/// Keep track of checkbox state of follow pack onboarding
pub follow_packs: Nip51SetUiCache,
}
impl ViewState {
pub fn login_mut(&mut self) -> &mut AcquireKeyState {
&mut self.login
}
}