Messaging · People: members, a profile card, online status and a status setter

MemberList sets members online and offline by name, each group a list
under its count. A press or an arrow chooses one; Enter or a double
press acts on them; offline members go quiet. UserProfileCard shows a
person's picture with presence, name and standing, title, status, the
time in their zone, and Message and Call, each only with a handler.
OnlineStatus draws a presence's dot and word; Presence now names itself
and gives its color, in data_display, its one home.

StatusSetter holds a draft seeded from the owner's status: an emoji
from a picker field, words in its own text field, and when they clear.
Suggestions fill all three; Save hands the status over and Clear status
removes it. The emoji field reuses the date pickers' field, whose
trigger ignores the Enter release after a pick.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-26 22:08:25 -04:00
1 parent 99b8a6081b
commit dd5e36cd94
14 files changed
+1308 -7

No files matched your search

+10 -1
View File
@@ -18,7 +18,7 @@ pub enum Presence {
}
impl Presence {
fn color(self, colors: &Palette) -> Hsla {
pub fn color(self, colors: &Palette) -> Hsla {
match self {
Self::Online => colors.success,
Self::Away => colors.warning,
@@ -26,6 +26,15 @@ impl Presence {
Self::Offline => colors.fg_subtle,
}
}
pub fn label(self) -> &'static str {
match self {
Self::Online => "Online",
Self::Away => "Away",
Self::Busy => "Busy",
Self::Offline => "Offline",
}
}
}
/// Up to two capitals from a name's first and last words.