Show a border when scrolled in chat
This commit is contained in:
parent
c810af40d3
commit
818cbb2415
2 changed files with 24 additions and 15 deletions
|
@ -112,7 +112,7 @@ impl ChatPanel {
|
|||
if event.visible_range.start < MESSAGE_LOADING_THRESHOLD {
|
||||
this.load_more_messages(cx);
|
||||
}
|
||||
this.is_scrolled_to_bottom = event.visible_range.end == event.count;
|
||||
this.is_scrolled_to_bottom = !event.is_scrolled;
|
||||
}));
|
||||
|
||||
let mut this = Self {
|
||||
|
@ -567,7 +567,7 @@ impl Render for ChatPanel {
|
|||
),
|
||||
),
|
||||
)
|
||||
.child(div().flex_grow().px_2().py_1().map(|this| {
|
||||
.child(div().flex_grow().px_2().pt_1().map(|this| {
|
||||
if self.active_chat.is_some() {
|
||||
this.child(list(self.message_list.clone()).full())
|
||||
} else {
|
||||
|
@ -597,7 +597,13 @@ impl Render for ChatPanel {
|
|||
)
|
||||
}
|
||||
}))
|
||||
.child(h_stack().p_2().map(|el| {
|
||||
.child(
|
||||
h_stack()
|
||||
.when(!self.is_scrolled_to_bottom, |el| {
|
||||
el.border_t_1().border_color(cx.theme().colors().border)
|
||||
})
|
||||
.p_2()
|
||||
.map(|el| {
|
||||
if self.active_chat.is_some() {
|
||||
el.child(self.message_editor.clone())
|
||||
} else {
|
||||
|
@ -609,7 +615,8 @@ impl Render for ChatPanel {
|
|||
.bg(cx.theme().colors().editor_background),
|
||||
)
|
||||
}
|
||||
}))
|
||||
}),
|
||||
)
|
||||
.into_any()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ pub enum ListAlignment {
|
|||
pub struct ListScrollEvent {
|
||||
pub visible_range: Range<usize>,
|
||||
pub count: usize,
|
||||
pub is_scrolled: bool,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
|
@ -253,6 +254,7 @@ impl StateInner {
|
|||
&ListScrollEvent {
|
||||
visible_range,
|
||||
count: self.items.summary().count,
|
||||
is_scrolled: self.logical_scroll_top.is_some(),
|
||||
},
|
||||
cx,
|
||||
);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue