35 lines
829 B
Rust
35 lines
829 B
Rust
|
use super::db;
|
||
|
use super::ui;
|
||
|
use ui::Message;
|
||
|
use iced::{
|
||
|
widget::{button, column, container, text},
|
||
|
Element,
|
||
|
Length::Fill,
|
||
|
};
|
||
|
|
||
|
pub fn list_feeds() -> iced::widget::Column<'static, Message> {
|
||
|
let feeds = db::get_feeds();
|
||
|
column(
|
||
|
feeds
|
||
|
.iter()
|
||
|
.map(|f| {
|
||
|
button(text(f.title.clone())).on_press(Message::LoadFeed(f.feed_id))
|
||
|
})
|
||
|
.map(Element::from),
|
||
|
)
|
||
|
.align_x(iced::Alignment::Start)
|
||
|
.spacing(5)
|
||
|
}
|
||
|
|
||
|
pub fn list_items(feed_id: usize) -> iced::widget::Column<'static,Message> {
|
||
|
let items: Vec<db::FeedItem> = db::get_feed_items(feed_id);
|
||
|
column(
|
||
|
items.iter()
|
||
|
.map(|i| {
|
||
|
text(i.title.clone())
|
||
|
})
|
||
|
.map(Element::from),
|
||
|
)
|
||
|
.align_x(iced::Alignment::Start)
|
||
|
.spacing(5)
|
||
|
}
|