╭ changed ──────────────────╮ │src/ui/Repo/Discussions.zig│ ╰───────────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────╮ │48 comment_id: []const u8, │ │49 comments_start: usize, │ │50 comment_page: ?Comment.Permalink = null, │ │51 +// whether the viewer may reply to comments│ │52 +can_reply: bool = false, │ │53 recent: Window, │ │54 view: ui.RoutablePage.DiscussionsView, │ │55 description_page: bool = false, │ ╰───────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │118 comment_id: []const u8, │ │119 comments_start: usize, │ │120 view: ui.RoutablePage.DiscussionsView, │ │121 + viewer: ?Comment.Viewer, │ │122 ) !Self { │ │123 const empty = try emptyResult(arena.allocator(), identity, label, search, selected_id, comment_id, comments_start, view);│ │124 const aa = arena.allocator(); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │171 } │ │172 │ │173 const discussion_comments_start = if (empty.comment_id.len == 0) comments_start else 0; │ │171 - const loaded_window = try thread.loadWindow(Self, .discuss, repo_opts.hash, arena, admin_moment, haxy_moment, records, set_maybe, root_key, null, empty.selected_id, discussion_comments_start, empty.search); │ │174 + const loaded_window = try thread.loadWindow(Self, .discuss, repo_opts.hash, arena, admin_moment, haxy_moment, records, set_maybe, root_key, null, empty.selected_id, discussion_comments_start, empty.search, viewer);│ │175 const comment_page = if (empty.comment_id.len == 0) │ │176 null │ │177 else │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │175 - try Comment.init(repo_opts.hash, arena, admin_moment, haxy_moment, empty.selected_id, empty.comment_id, comments_start); │ │178 + try Comment.init(repo_opts.hash, arena, admin_moment, haxy_moment, empty.selected_id, empty.comment_id, comments_start, viewer);│ │179 │ │180 var label_names: std.ArrayList([]const u8) = .empty; │ │181 if (try haxy_moment.getCursor(hash.hashInt(repo_opts.hash, evt.Discussion.label_to_id_set_key))) |labels_cursor| { │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────╮ │197 .comment_id = empty.comment_id, │ │198 .comments_start = comments_start, │ │199 .comment_page = comment_page, │ │200 + .can_reply = viewer != null, │ │201 .recent = loaded_window, │ │202 .view = empty.view, │ │203 .description_page = empty.description_page,│ ╰────────────────────────────────────────────────────────╯