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:
@@ -3,6 +3,7 @@ use crate::actionbar::BarResult;
|
|||||||
use crate::app_creation::setup_cc;
|
use crate::app_creation::setup_cc;
|
||||||
use crate::app_style::user_requested_visuals_change;
|
use crate::app_style::user_requested_visuals_change;
|
||||||
use crate::args::Args;
|
use crate::args::Args;
|
||||||
|
use crate::column::ColumnKind;
|
||||||
use crate::draft::Drafts;
|
use crate::draft::Drafts;
|
||||||
use crate::frame_history::FrameHistory;
|
use crate::frame_history::FrameHistory;
|
||||||
use crate::imgcache::ImageCache;
|
use crate::imgcache::ImageCache;
|
||||||
@@ -12,11 +13,11 @@ use crate::notecache::{CachedNote, NoteCache};
|
|||||||
use crate::relay_pool_manager::RelayPoolManager;
|
use crate::relay_pool_manager::RelayPoolManager;
|
||||||
use crate::route::Route;
|
use crate::route::Route;
|
||||||
use crate::thread::{DecrementResult, Threads};
|
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::note::PostAction;
|
||||||
use crate::ui::{self, AccountSelectionWidget, DesktopGlobalPopup};
|
use crate::ui::{self, AccountSelectionWidget, DesktopGlobalPopup};
|
||||||
use crate::ui::{DesktopSidePanel, RelayView, View};
|
use crate::ui::{DesktopSidePanel, RelayView, View};
|
||||||
use crate::{Result, filter};
|
use crate::{filter, Result};
|
||||||
use egui_nav::{Nav, NavAction};
|
use egui_nav::{Nav, NavAction};
|
||||||
use enostr::{ClientMessage, RelayEvent, RelayMessage, RelayPool};
|
use enostr::{ClientMessage, RelayEvent, RelayMessage, RelayPool};
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|||||||
@@ -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 crate::Error;
|
||||||
use enostr::{Filter, Keypair, Pubkey, SecretKey};
|
use enostr::{Filter, Keypair, Pubkey, SecretKey};
|
||||||
use nostrdb::{Ndb, Transaction};
|
use nostrdb::{Ndb, Transaction};
|
||||||
|
|||||||
45
src/column.rs
Normal file
45
src/column.rs
Normal 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))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@ pub mod app_creation;
|
|||||||
mod app_style;
|
mod app_style;
|
||||||
mod args;
|
mod args;
|
||||||
mod colors;
|
mod colors;
|
||||||
|
mod column;
|
||||||
mod draft;
|
mod draft;
|
||||||
mod filter;
|
mod filter;
|
||||||
mod fonts;
|
mod fonts;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
use crate::app::{get_unknown_note_ids, UnknownId};
|
use crate::app::{get_unknown_note_ids, UnknownId};
|
||||||
|
use crate::column::{ColumnKind, PubkeySource};
|
||||||
use crate::error::Error;
|
use crate::error::Error;
|
||||||
use crate::filter;
|
use crate::filter;
|
||||||
use crate::note::NoteRef;
|
use crate::note::NoteRef;
|
||||||
@@ -12,54 +13,10 @@ use enostr::Pubkey;
|
|||||||
use nostrdb::{Filter, Note, Subscription, Transaction};
|
use nostrdb::{Filter, Note, Subscription, Transaction};
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::fmt::Display;
|
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
use tracing::{debug, error};
|
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)]
|
#[derive(Debug, Copy, Clone)]
|
||||||
pub enum TimelineSource<'a> {
|
pub enum TimelineSource<'a> {
|
||||||
Column { ind: usize },
|
Column { ind: usize },
|
||||||
|
|||||||
Reference in New Issue
Block a user