mirror of
https://github.com/damus-io/notedeck.git
synced 2024-09-16 20:03:28 +00:00
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:
parent
9a9342ad35
commit
db49cf3c4b
@ -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;
|
||||
|
@ -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
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 args;
|
||||
mod colors;
|
||||
mod column;
|
||||
mod draft;
|
||||
mod filter;
|
||||
mod fonts;
|
||||
|
@ -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 },
|
||||
|
Loading…
Reference in New Issue
Block a user