tidy: move ColumnKind to its own file

timeline file is starting to get messy

Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
William Casarin 2024-08-31 08:08:17 -07:00
parent 9a9342ad35
commit db49cf3c4b
5 changed files with 52 additions and 47 deletions

View File

@ -3,6 +3,7 @@ use crate::actionbar::BarResult;
use crate::app_creation::setup_cc;
use crate::app_style::user_requested_visuals_change;
use crate::args::Args;
use crate::column::ColumnKind;
use crate::draft::Drafts;
use crate::frame_history::FrameHistory;
use crate::imgcache::ImageCache;
@ -12,11 +13,11 @@ use crate::notecache::{CachedNote, NoteCache};
use crate::relay_pool_manager::RelayPoolManager;
use crate::route::Route;
use crate::thread::{DecrementResult, Threads};
use crate::timeline::{ColumnKind, Timeline, TimelineSource, ViewFilter};
use crate::timeline::{Timeline, TimelineSource, ViewFilter};
use crate::ui::note::PostAction;
use crate::ui::{self, AccountSelectionWidget, DesktopGlobalPopup};
use crate::ui::{DesktopSidePanel, RelayView, View};
use crate::{Result, filter};
use crate::{filter, Result};
use egui_nav::{Nav, NavAction};
use enostr::{ClientMessage, RelayEvent, RelayMessage, RelayPool};
use std::cell::RefCell;

View File

@ -1,4 +1,5 @@
use crate::timeline::{ColumnKind, ListKind, PubkeySource, Timeline};
use crate::column::{ColumnKind, ListKind, PubkeySource};
use crate::timeline::Timeline;
use crate::Error;
use enostr::{Filter, Keypair, Pubkey, SecretKey};
use nostrdb::{Ndb, Transaction};

45
src/column.rs Normal file
View File

@ -0,0 +1,45 @@
use enostr::Pubkey;
use std::fmt::Display;
#[derive(Clone, Debug)]
pub enum PubkeySource {
Explicit(Pubkey),
DeckAuthor,
}
#[derive(Debug)]
pub enum ListKind {
Contact(PubkeySource),
}
///
/// What kind of column is it?
/// - Follow List
/// - Notifications
/// - DM
/// - filter
/// - ... etc
#[derive(Debug)]
pub enum ColumnKind {
List(ListKind),
Universe,
/// Generic filter
Generic,
}
impl Display for ColumnKind {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ColumnKind::List(ListKind::Contact(_src)) => f.write_str("Contacts"),
ColumnKind::Generic => f.write_str("Timeline"),
ColumnKind::Universe => f.write_str("Universe"),
}
}
}
impl ColumnKind {
pub fn contact_list(pk: PubkeySource) -> Self {
ColumnKind::List(ListKind::Contact(pk))
}
}

View File

@ -10,6 +10,7 @@ pub mod app_creation;
mod app_style;
mod args;
mod colors;
mod column;
mod draft;
mod filter;
mod fonts;

View File

@ -1,4 +1,5 @@
use crate::app::{get_unknown_note_ids, UnknownId};
use crate::column::{ColumnKind, PubkeySource};
use crate::error::Error;
use crate::filter;
use crate::note::NoteRef;
@ -12,54 +13,10 @@ use enostr::Pubkey;
use nostrdb::{Filter, Note, Subscription, Transaction};
use std::cell::RefCell;
use std::collections::HashSet;
use std::fmt::Display;
use std::rc::Rc;
use tracing::{debug, error};
#[derive(Clone, Debug)]
pub enum PubkeySource {
Explicit(Pubkey),
DeckAuthor,
}
#[derive(Debug)]
pub enum ListKind {
Contact(PubkeySource),
}
///
/// What kind of column is it?
/// - Follow List
/// - Notifications
/// - DM
/// - filter
/// - ... etc
#[derive(Debug)]
pub enum ColumnKind {
List(ListKind),
Universe,
/// Generic filter
Generic,
}
impl Display for ColumnKind {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
ColumnKind::List(ListKind::Contact(_src)) => f.write_str("Contacts"),
ColumnKind::Generic => f.write_str("Timeline"),
ColumnKind::Universe => f.write_str("Universe"),
}
}
}
impl ColumnKind {
pub fn contact_list(pk: PubkeySource) -> Self {
ColumnKind::List(ListKind::Contact(pk))
}
}
#[derive(Debug, Copy, Clone)]
pub enum TimelineSource<'a> {
Column { ind: usize },