this repo has no description
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

ui: print sender when on first message

+32 -7
+32 -7
src/App.zig
··· 1642 1642 const message = channel.messages.items[i]; 1643 1643 // syntax: <target> <message> 1644 1644 1645 + const sender: []const u8 = blk: { 1646 + const src = message.source orelse break :blk ""; 1647 + const l = std.mem.indexOfScalar(u8, src, '!') orelse 1648 + std.mem.indexOfScalar(u8, src, '@') orelse 1649 + src.len; 1650 + break :blk src[0..l]; 1651 + }; 1645 1652 { 1646 1653 // If this sender is not the same as the previous printed 1647 1654 // message, then we'll print the previous sender and keep 1648 1655 // going 1649 - const sender: []const u8 = blk: { 1650 - const src = message.source orelse break :blk ""; 1651 - const l = std.mem.indexOfScalar(u8, src, '!') orelse 1652 - std.mem.indexOfScalar(u8, src, '@') orelse 1653 - src.len; 1654 - break :blk src[0..l]; 1655 - }; 1656 1656 defer prev_sender = sender; 1657 1657 if (prev_sender != null and 1658 1658 !mem.eql(u8, sender, prev_sender.?) and ··· 1754 1754 } 1755 1755 1756 1756 y_off -|= content_height; 1757 + 1758 + // If we are on the first message, print the sender 1759 + if (i == 0) { 1760 + y_off -= 1; 1761 + const user = try client.getOrCreateUser(sender); 1762 + const sender_win = message_list_win.child(.{ 1763 + .x_off = 6, 1764 + .y_off = y_off, 1765 + .height = .{ .limit = 1 }, 1766 + }); 1767 + const sender_result = try sender_win.print( 1768 + &.{.{ 1769 + .text = sender, 1770 + .style = .{ 1771 + .fg = user.color, 1772 + .bold = true, 1773 + }, 1774 + }}, 1775 + .{ .wrap = .word }, 1776 + ); 1777 + const result_win = sender_win.child(.{ .width = .{ .limit = sender_result.col } }); 1778 + if (result_win.hasMouse(self.state.mouse)) |_| { 1779 + self.vx.setMouseShape(.pointer); 1780 + } 1781 + } 1757 1782 1758 1783 // if we are on the oldest message, request more history 1759 1784 if (i == 0 and !channel.at_oldest) {