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

+6
View File
@@ -1,8 +1,11 @@
mod channels;
mod header;
mod members;
mod messages;
mod people;
mod pins;
mod receipt;
mod status;
mod thread;
#[cfg(all(test, feature = "test-support"))]
@@ -10,7 +13,10 @@ mod tests;
pub use channels::{ChannelItem, ChannelList, ChatRow, DirectMessageItem};
pub use header::ChannelHeader;
pub use members::{Member, MemberList};
pub use messages::{ChatMessage, UnreadDivider};
pub use people::{OnlineStatus, UserProfileCard};
pub use pins::{PinnedMessage, PinnedMessages};
pub use receipt::{Delivery, ReadReceipt};
pub use status::{ClearAfter, Status, StatusSetter};
pub use thread::{MessageThread, ThreadPanel};