mirror of
https://github.com/aljazceru/notedeck.git
synced 2025-12-24 03:24:21 +01:00
use unseen notification indicator
Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
@@ -10,7 +10,9 @@ use notedeck::{
|
|||||||
WalletType,
|
WalletType,
|
||||||
};
|
};
|
||||||
use notedeck_columns::{
|
use notedeck_columns::{
|
||||||
column::SelectionResult, timeline::kind::ListKind, timeline::TimelineKind, Damus,
|
column::SelectionResult,
|
||||||
|
timeline::{kind::ListKind, TimelineKind},
|
||||||
|
Damus,
|
||||||
};
|
};
|
||||||
use notedeck_dave::{Dave, DaveAvatar};
|
use notedeck_dave::{Dave, DaveAvatar};
|
||||||
use notedeck_notebook::Notebook;
|
use notedeck_notebook::Notebook;
|
||||||
@@ -343,7 +345,12 @@ impl Chrome {
|
|||||||
});
|
});
|
||||||
|
|
||||||
strip.cell(|ui| {
|
strip.cell(|ui| {
|
||||||
if let Some(action) = self.toolbar(ui) {
|
let pk = ctx.accounts.get_selected_account().key.pubkey;
|
||||||
|
|
||||||
|
let unseen_notification =
|
||||||
|
unseen_notification(self.get_columns_app(), ctx.ndb, pk);
|
||||||
|
|
||||||
|
if let Some(action) = self.toolbar(ui, unseen_notification) {
|
||||||
got_action = Some(ChromePanelAction::Toolbar(action))
|
got_action = Some(ChromePanelAction::Toolbar(action))
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -352,7 +359,7 @@ impl Chrome {
|
|||||||
got_action
|
got_action
|
||||||
}
|
}
|
||||||
|
|
||||||
fn toolbar(&mut self, ui: &mut egui::Ui) -> Option<ToolbarAction> {
|
fn toolbar(&mut self, ui: &mut egui::Ui, unseen_notification: bool) -> Option<ToolbarAction> {
|
||||||
use egui_tabs::{TabColor, Tabs};
|
use egui_tabs::{TabColor, Tabs};
|
||||||
|
|
||||||
let rect = ui.available_rect_before_wrap();
|
let rect = ui.available_rect_before_wrap();
|
||||||
@@ -396,7 +403,9 @@ impl Chrome {
|
|||||||
action = Some(ToolbarAction::Dave);
|
action = Some(ToolbarAction::Dave);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if index == 2 && notifications_button(ui, btn_size).clicked() {
|
} else if index == 2
|
||||||
|
&& notifications_button(ui, btn_size, unseen_notification).clicked()
|
||||||
|
{
|
||||||
action = Some(ToolbarAction::Notifications);
|
action = Some(ToolbarAction::Notifications);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -562,6 +571,7 @@ fn expanding_button(
|
|||||||
light_img: egui::Image,
|
light_img: egui::Image,
|
||||||
dark_img: egui::Image,
|
dark_img: egui::Image,
|
||||||
ui: &mut egui::Ui,
|
ui: &mut egui::Ui,
|
||||||
|
unseen_indicator: bool,
|
||||||
) -> egui::Response {
|
) -> egui::Response {
|
||||||
let max_size = ICON_WIDTH * ICON_EXPANSION_MULTIPLE; // max size of the widget
|
let max_size = ICON_WIDTH * ICON_EXPANSION_MULTIPLE; // max size of the widget
|
||||||
let img = if ui.visuals().dark_mode {
|
let img = if ui.visuals().dark_mode {
|
||||||
@@ -573,12 +583,15 @@ fn expanding_button(
|
|||||||
let helper = AnimationHelper::new(ui, name, egui::vec2(max_size, max_size));
|
let helper = AnimationHelper::new(ui, name, egui::vec2(max_size, max_size));
|
||||||
|
|
||||||
let cur_img_size = helper.scale_1d_pos(img_size);
|
let cur_img_size = helper.scale_1d_pos(img_size);
|
||||||
img.paint_at(
|
|
||||||
ui,
|
let paint_rect = helper
|
||||||
helper
|
.get_animation_rect()
|
||||||
.get_animation_rect()
|
.shrink((max_size - cur_img_size) / 2.0);
|
||||||
.shrink((max_size - cur_img_size) / 2.0),
|
img.paint_at(ui, paint_rect);
|
||||||
);
|
|
||||||
|
if unseen_indicator {
|
||||||
|
paint_unseen_indicator(ui, paint_rect, helper.scale_1d_pos(3.0));
|
||||||
|
}
|
||||||
|
|
||||||
helper.take_animation_response()
|
helper.take_animation_response()
|
||||||
}
|
}
|
||||||
@@ -605,6 +618,7 @@ fn support_button(ui: &mut egui::Ui) -> egui::Response {
|
|||||||
app_images::help_light_image(),
|
app_images::help_light_image(),
|
||||||
app_images::help_dark_image(),
|
app_images::help_dark_image(),
|
||||||
ui,
|
ui,
|
||||||
|
false,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -615,16 +629,18 @@ fn settings_button(ui: &mut egui::Ui) -> egui::Response {
|
|||||||
app_images::settings_light_image(),
|
app_images::settings_light_image(),
|
||||||
app_images::settings_dark_image(),
|
app_images::settings_dark_image(),
|
||||||
ui,
|
ui,
|
||||||
|
false,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn notifications_button(ui: &mut egui::Ui, size: f32) -> egui::Response {
|
fn notifications_button(ui: &mut egui::Ui, size: f32, unseen_indicator: bool) -> egui::Response {
|
||||||
expanding_button(
|
expanding_button(
|
||||||
"notifications-button",
|
"notifications-button",
|
||||||
size,
|
size,
|
||||||
app_images::notifications_light_image(),
|
app_images::notifications_light_image(),
|
||||||
app_images::notifications_dark_image(),
|
app_images::notifications_dark_image(),
|
||||||
ui,
|
ui,
|
||||||
|
unseen_indicator,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -635,6 +651,7 @@ fn home_button(ui: &mut egui::Ui, size: f32) -> egui::Response {
|
|||||||
app_images::home_light_image(),
|
app_images::home_light_image(),
|
||||||
app_images::home_dark_image(),
|
app_images::home_dark_image(),
|
||||||
ui,
|
ui,
|
||||||
|
false,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -645,6 +662,7 @@ fn columns_button(ui: &mut egui::Ui) -> egui::Response {
|
|||||||
app_images::columns_image(),
|
app_images::columns_image(),
|
||||||
app_images::columns_image(),
|
app_images::columns_image(),
|
||||||
ui,
|
ui,
|
||||||
|
false,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -655,6 +673,7 @@ fn accounts_button(ui: &mut egui::Ui) -> egui::Response {
|
|||||||
app_images::accounts_image().tint(ui.visuals().text_color()),
|
app_images::accounts_image().tint(ui.visuals().text_color()),
|
||||||
app_images::accounts_image(),
|
app_images::accounts_image(),
|
||||||
ui,
|
ui,
|
||||||
|
false,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -665,6 +684,7 @@ fn notebook_button(ui: &mut egui::Ui) -> egui::Response {
|
|||||||
app_images::algo_image(),
|
app_images::algo_image(),
|
||||||
app_images::algo_image(),
|
app_images::algo_image(),
|
||||||
ui,
|
ui,
|
||||||
|
false,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -545,6 +545,8 @@ fn render_nav_body(
|
|||||||
scroll_to_top,
|
scroll_to_top,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
app.timeline_cache.set_fresh(kind);
|
||||||
|
|
||||||
// always clear the scroll_to_top request
|
// always clear the scroll_to_top request
|
||||||
if scroll_to_top {
|
if scroll_to_top {
|
||||||
app.options.remove(AppOptions::ScrollToTop);
|
app.options.remove(AppOptions::ScrollToTop);
|
||||||
|
|||||||
Reference in New Issue
Block a user