╭ changed ─────────────╮ │src/ui/Repo/Issues.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────────────────╮ │88 comments_start: usize, │ │89 // the selected comment and its immediate replies. │ │90 comment_page: ?Comment.Permalink = null, │ │91 +// whether the viewer may reply to comments │ │92 +can_reply: bool = false, │ │93 open: Window, │ │94 closed: Window, │ │95 // the conflicted issues' listing; its count also gates the conflicts tab.│ ╰──────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │210 comments_start: usize, │ │211 theirs_picks: []const u8, │ │212 view: ui.RoutablePage.IssuesView, │ │213 + viewer: ?Comment.Viewer, │ │214 ) !Self { │ │215 const empty = try emptyResult(arena.allocator(), identity, label, search, selected_id, comment_id, comments_start, theirs_picks, view);│ │216 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │326 } │ │327 │ │328 const thread_comments_start = if (empty.comment_id.len == 0) comments_start else 0; │ │326 - const open_window = try thread.loadWindow(Self, .issue, repo_opts.hash, arena, admin_moment, haxy_moment, event_id_to_issue, open_set, open_root, conflict_set, empty.selected_id, thread_comments_start, empty.search); │ │327 - const closed_window = try thread.loadWindow(Self, .issue, repo_opts.hash, arena, admin_moment, haxy_moment, event_id_to_issue, closed_set, closed_root, conflict_set, empty.selected_id, thread_comments_start, empty.search); │ │328 - const conflicts_window = try thread.loadWindow(Self, .issue, repo_opts.hash, arena, admin_moment, haxy_moment, event_id_to_issue, conflict_set, conflicts_root, conflict_set, empty.selected_id, thread_comments_start, null); │ │329 + const open_window = try thread.loadWindow(Self, .issue, repo_opts.hash, arena, admin_moment, haxy_moment, event_id_to_issue, open_set, open_root, conflict_set, empty.selected_id, thread_comments_start, empty.search, viewer); │ │330 + const closed_window = try thread.loadWindow(Self, .issue, repo_opts.hash, arena, admin_moment, haxy_moment, event_id_to_issue, closed_set, closed_root, conflict_set, empty.selected_id, thread_comments_start, empty.search, viewer);│ │331 + const conflicts_window = try thread.loadWindow(Self, .issue, repo_opts.hash, arena, admin_moment, haxy_moment, event_id_to_issue, conflict_set, conflicts_root, conflict_set, empty.selected_id, thread_comments_start, null, viewer);│ │332 if (view == .conflicts and conflicts_window.count > 0) resolved_view = .conflicts; │ │333 │ │334 const comment_page = if (empty.comment_id.len == 0) │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │335 null │ │336 else │ │334 - try Comment.init(repo_opts.hash, arena, admin_moment, haxy_moment, empty.selected_id, empty.comment_id, comments_start); │ │337 + try Comment.init(repo_opts.hash, arena, admin_moment, haxy_moment, empty.selected_id, empty.comment_id, comments_start, viewer);│ │338 │ │339 const labels = try thread.loadLabels(Self, repo_opts.hash, arena, haxy_moment); │ │340 │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────╮ │346 .comment_id = empty.comment_id, │ │347 .comments_start = comments_start,│ │348 .comment_page = comment_page, │ │349 + .can_reply = viewer != null, │ │350 .open = open_window, │ │351 .closed = closed_window, │ │352 .conflicts = conflicts_window, │ ╰──────────────────────────────────────────────╯