basic add column impl

Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
kernelkind
2024-09-25 21:32:08 -04:00
parent a17b2dcb17
commit 731f206424
6 changed files with 79 additions and 13 deletions

43
src/ui/add_column.rs Normal file
View File

@@ -0,0 +1,43 @@
use egui::{RichText, Ui};
use nostrdb::FilterBuilder;
use crate::{app_style::NotedeckTextStyle, timeline::Timeline, user_account::UserAccount};
pub enum AddColumnResponse {
Timeline(Timeline),
}
pub struct AddColumnView<'a> {
cur_account: Option<&'a UserAccount>,
}
impl<'a> AddColumnView<'a> {
pub fn new(cur_account: Option<&'a UserAccount>) -> Self {
Self { cur_account }
}
pub fn ui(&mut self, ui: &mut Ui) -> Option<AddColumnResponse> {
ui.label(RichText::new("Add column").text_style(NotedeckTextStyle::Heading.text_style()));
if ui.button("create global timeline").clicked() {
Some(AddColumnResponse::Timeline(create_global_timeline()))
} else {
None
}
}
}
fn create_global_timeline() -> Timeline {
let filter = FilterBuilder::new().kinds([1]).build();
Timeline::new(
crate::timeline::TimelineKind::Generic,
crate::filter::FilterState::Ready(vec![filter]),
)
}
// struct ColumnOption {
// title: &'static str,
// description: &'static str,
// icon: Box::<dyn Widget>,
// route: Route,
// }

View File

@@ -1,5 +1,6 @@
pub mod account_login_view;
pub mod account_management;
pub mod add_column;
pub mod anim;
pub mod mention;
pub mod note;

View File

@@ -186,8 +186,11 @@ impl<'a> DesktopSidePanel<'a> {
}
}
SidePanelAction::Columns => {
// TODO
info!("Clicked columns button");
if router.routes().iter().any(|&r| r == Route::AddColumn) {
router.go_back();
} else {
router.route_to(Route::AddColumn);
}
}
SidePanelAction::ComposeNote => {
if router.routes().iter().any(|&r| r == Route::ComposeNote) {