╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ Discussions.zig ──────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │http│ ssh │ │ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
247 // labels tab 248 { 249 const labels_route = try thread.searchRoute(ui.RoutablePage.repoThreadLabelsRoute(.discuss, data.identity), data.search); 250 const labels_link = try ui.inPageTabLink(session, labels_route, page_selected and selected_index == View.viewIndex(.labels)); 251 try header.addTab(allocator, labels_tab_label, labels_link, View.viewIndex(.labels)); 252 } 253 254 // new-discussion tab; an edit or comment url shows its tab in this place 255 { 256 const route = switch (data.view) { 257 .edit => ui.RoutablePage.repoThreadEditRoute(.discuss, data.identity, data.selected_id) orelse return error.RouteTooLong, 258 .new_comment => ui.RoutablePage.repoThreadCommentNewRoute(.discuss, data.identity, data.selected_id, data.comment_id) orelse return error.RouteTooLong, 259 .edit_comment => ui.RoutablePage.repoThreadCommentEditRoute(.discuss, data.identity, data.selected_id, data.comment_id) orelse return error.RouteTooLong, 260 .remove => ui.RoutablePage.repoThreadRemoveRoute(.discuss, data.identity, data.selected_id, data.comment_id) orelse return error.RouteTooLong, 261 else => ui.RoutablePage.repoThreadNewRoute(.discuss, data.identity) orelse return error.RouteTooLong, 262 }; 263 const link = try ui.inPageTabLink(session, route, page_selected and selected_index == View.viewIndex(.new)); 264 const label: []const u8 = switch (data.view) { 265 .edit => edit_tab_label, 266 .new_comment => reply_tab_label, 267 .edit_comment => edit_tab_label, 268 .remove => remove_tab_label, 269 else => new_tab_label, 270 }; 271 try header.addTab(allocator, label, link, View.viewIndex(.new)); 272 } 273 274 header.select(View.viewIndex(data.view)); 275 return header; 276 } 277