use seed::{prelude::*, *}; use crate::{ graphql::show_thread_query::*, state::{Context, Model, Msg}, view::{self, reading_progress, view_header, view_search_results}, }; pub(super) fn view(model: &Model) -> Node { let show_icon_text = false; // Do two queries, one without `unread` so it loads fast, then a second with unread. let content = match &model.context { Context::None => div![h1!["Loading"]], Context::ThreadResult { thread: ShowThreadQueryThread::EmailThread(thread), open_messages, } => view::thread(thread, open_messages, show_icon_text, &model.content_el), Context::ThreadResult { thread: ShowThreadQueryThread::NewsPost(post), .. } => view::news_post(post, show_icon_text, &model.content_el), Context::SearchResult { query, results, count, pager, selected_threads, } => view_search_results( &query, results.as_slice(), *count, pager, selected_threads, show_icon_text, ), }; div![ C!["NOTPORTED", "main-content"], div![ reading_progress(model.read_completion_ratio), view_header(&model.query, &model.refreshing_state), content, view_header(&model.query, &model.refreshing_state), view::tags(model), view::versions(&model.versions) ] ] }