feature/prod-ready #1
@@ -26,6 +26,7 @@ pub struct KLauncherApp {
|
|||||||
results: Arc<Vec<SearchResult>>,
|
results: Arc<Vec<SearchResult>>,
|
||||||
selected: usize,
|
selected: usize,
|
||||||
cfg: AppearanceCfg,
|
cfg: AppearanceCfg,
|
||||||
|
error: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl KLauncherApp {
|
impl KLauncherApp {
|
||||||
@@ -41,6 +42,7 @@ impl KLauncherApp {
|
|||||||
results: Arc::new(vec![]),
|
results: Arc::new(vec![]),
|
||||||
selected: 0,
|
selected: 0,
|
||||||
cfg,
|
cfg,
|
||||||
|
error: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -55,6 +57,7 @@ pub enum Message {
|
|||||||
fn update(state: &mut KLauncherApp, message: Message) -> Task<Message> {
|
fn update(state: &mut KLauncherApp, message: Message) -> Task<Message> {
|
||||||
match message {
|
match message {
|
||||||
Message::QueryChanged(q) => {
|
Message::QueryChanged(q) => {
|
||||||
|
state.error = None;
|
||||||
state.query = q.clone();
|
state.query = q.clone();
|
||||||
state.selected = 0;
|
state.selected = 0;
|
||||||
let engine = state.engine.clone();
|
let engine = state.engine.clone();
|
||||||
@@ -186,7 +189,22 @@ fn view(state: &KLauncherApp) -> Element<'_, Message> {
|
|||||||
scrollable(column(result_rows).spacing(2).width(Length::Fill)).height(Length::Fill)
|
scrollable(column(result_rows).spacing(2).width(Length::Fill)).height(Length::Fill)
|
||||||
};
|
};
|
||||||
|
|
||||||
let content = column![search_bar, results_list]
|
let maybe_error: Option<Element<'_, Message>> = state.error.as_ref().map(|msg| {
|
||||||
|
container(
|
||||||
|
text(msg.as_str())
|
||||||
|
.size(12.0)
|
||||||
|
.color(Color::from_rgba8(255, 80, 80, 1.0)),
|
||||||
|
)
|
||||||
|
.width(Length::Fill)
|
||||||
|
.padding([4, 12])
|
||||||
|
.into()
|
||||||
|
});
|
||||||
|
|
||||||
|
let mut content_children: Vec<Element<'_, Message>> = vec![search_bar.into(), results_list.into()];
|
||||||
|
if let Some(err) = maybe_error {
|
||||||
|
content_children.push(err);
|
||||||
|
}
|
||||||
|
let content = column(content_children)
|
||||||
.spacing(8)
|
.spacing(8)
|
||||||
.padding(12)
|
.padding(12)
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
|
|||||||
Reference in New Issue
Block a user