╭ changed ─────────────╮ │src/ui/Repo/Issues.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭──────────────────────────────────────────────╮ │372 return .{ │ │373 .identity = empty.identity, │ │374 .label = empty.label, │ │375 + .assignee = empty.assignee, │ │376 + .assignee_found = assignee_found,│ │377 .search = empty.search, │ │378 .selected_id = empty.selected_id,│ │379 .comment_id = empty.comment_id, │ ╰──────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │409 │ │410 // tabs switching between the issues page's views │ │411 pub fn initHeader(allocator: std.mem.Allocator, session: *ui.Session, data: *const Self) !Header { │ │382 - var header = try Header.init(allocator, session, data.search); │ │412 + var header = try Header.init(allocator, session, data.search, .{ │ │413 + .label = if (data.assignee_found) " assignee " else " assignee (not found) ", │ │414 + .text = std.Uri.percentDecodeInPlace(try session.page_arena.allocator().dupe(u8, data.assignee)),│ │415 + }); │ │416 errdefer header.deinit(allocator); │ │417 const selected_index = View.viewIndex(data.view); │ │418 const page_selected = std.meta.activeTag(session.data.current_page) == .repo_issues; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │420 // a list tab per status, labeled with its listing's issue count │ │421 const status_labels = [_][]const u8{ open_tab_label, closed_tab_label }; │ │422 for ([_]evt.Issue.Status{ .open, .closed }, status_labels, 0..) |status, status_label, index| { │ │390 - const route = try thread.searchRoute(ui.RoutablePage.repoIssuesRoute(data.identity, status, data.label, ""), data.search); │ │423 + const route = try thread.searchRoute(ui.RoutablePage.withEncodedAssignee(ui.RoutablePage.repoIssuesRoute(data.identity, status, data.label, ""), data.assignee), data.search);│ │424 const link = try ui.inPageTabLink(session, route, page_selected and selected_index == index); │ │425 var label_buf: [64]u8 = undefined; │ │426 const label = try thread.countLabel(&label_buf, status_label, data.window(status).*); │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │429 │ │430 // labels tab │ │431 { │ │399 - const labels_route = try thread.searchRoute(ui.RoutablePage.repoThreadLabelsRoute(.issue, data.identity, data.label), data.search); │ │432 + const labels_route = try thread.searchRoute(ui.RoutablePage.withEncodedAssignee(ui.RoutablePage.repoThreadLabelsRoute(.issue, data.identity, data.label), data.assignee), data.search);│ │433 const labels_link = try ui.inPageTabLink(session, labels_route, page_selected and selected_index == View.viewIndex(.labels)); │ │434 try header.addTab(allocator, labels_tab_label, labels_link, View.viewIndex(.labels)); │ │435 } │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯