chat panel ++ (#4044)
- Update chat panel with current channel - Open chat panel for guests - Open chat when joining a channel with guests - Some tweaks for chat panels - Don't lose focus on default panel state - Make chat prettier (to my eyes at least) - Fix multiple mentions in one message - Show a border when scrolled in chat - Fix re-docking chat panel - Move settings subscription to dock [[PR Description]] Release Notes: - Opens chat by default when joining a public channel - Improves chat panel UI
This commit is contained in:
commit
29ce109211
15 changed files with 273 additions and 254 deletions
|
@ -39,6 +39,7 @@ pub struct RichText {
|
|||
|
||||
/// Allows one to specify extra links to the rendered markdown, which can be used
|
||||
/// for e.g. mentions.
|
||||
#[derive(Debug)]
|
||||
pub struct Mention {
|
||||
pub range: Range<usize>,
|
||||
pub is_self_mention: bool,
|
||||
|
@ -113,20 +114,21 @@ pub fn render_markdown_mut(
|
|||
if let Some(language) = ¤t_language {
|
||||
render_code(text, highlights, t.as_ref(), language);
|
||||
} else {
|
||||
if let Some(mention) = mentions.first() {
|
||||
if source_range.contains_inclusive(&mention.range) {
|
||||
mentions = &mentions[1..];
|
||||
let range = (prev_len + mention.range.start - source_range.start)
|
||||
..(prev_len + mention.range.end - source_range.start);
|
||||
highlights.push((
|
||||
range.clone(),
|
||||
if mention.is_self_mention {
|
||||
Highlight::SelfMention
|
||||
} else {
|
||||
Highlight::Mention
|
||||
},
|
||||
));
|
||||
while let Some(mention) = mentions.first() {
|
||||
if !source_range.contains_inclusive(&mention.range) {
|
||||
break;
|
||||
}
|
||||
mentions = &mentions[1..];
|
||||
let range = (prev_len + mention.range.start - source_range.start)
|
||||
..(prev_len + mention.range.end - source_range.start);
|
||||
highlights.push((
|
||||
range.clone(),
|
||||
if mention.is_self_mention {
|
||||
Highlight::SelfMention
|
||||
} else {
|
||||
Highlight::Mention
|
||||
},
|
||||
));
|
||||
}
|
||||
|
||||
text.push_str(t.as_ref());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue