╭ changed ─────────────╮ │src/ui/Repo/Header.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │107 const commits_route = ui.RoutablePage.repoCommitsRoute(identity, data.ref_or_oid, data.ref_or_oid_value, 0) orelse return error.RouteTooLong;│ │108 const commits_link = try std.fmt.allocPrint(aa, "ai:{s}", .{try commits_route.urlAlloc(session.page_arena)}); │ │109 const refs_link = try std.fmt.allocPrint(aa, "ai:/repo/{s}/{s}/refs", .{ data.owner_name, data.name }); │ │110 + const issues_link = try std.fmt.allocPrint(aa, "ai:/repo/{s}/{s}/issues", .{ data.owner_name, data.name }); │ │111 const settings_link = try std.fmt.allocPrint(aa, "ai:/repo/{s}/{s}/settings", .{ data.owner_name, data.name }); │ │112 const auth_link = try std.fmt.allocPrint(aa, "ai:/repo/{s}/{s}/auth", .{ data.owner_name, data.name }); │ │113 │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │116 const current_link: []const u8 = switch (session.data.current_page) {│ │117 .repo_commits => commits_link, │ │118 .repo_refs => refs_link, │ │119 + .repo_issues => issues_link, │ │120 .repo_settings => settings_link, │ │121 .repo_auth => auth_link, │ │122 else => files_link, │ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │168 }); │ │169 } │ │170 │ │171 + // issues tab │ │172 + { │ │173 + var text_box = try wgt.TextBox(ui.Widget).init(allocator, "issues", .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │174 + errdefer text_box.deinit(allocator); │ │175 + text_box.getFocus().focusable = true; │ │176 + text_box.getFocus().kind = .{ .custom = issues_link }; │ │177 + try tab_ids.put(allocator, text_box.getFocus().id, {}); │ │178 + if (std.mem.eql(u8, issues_link, current_link)) selected_tab = text_box.getFocus().id; │ │179 + try box.children.put(allocator, text_box.getFocus().id, .{ │ │180 + .widget = .{ .text_box = text_box }, │ │181 + .rect = null, │ │182 + .min_size = .{ .width = "issues".len + 2, .height = null }, │ │183 + }); │ │184 + } │ │185 + │ │186 // spacer pushes settings + auth to the right │ │187 { │ │188 var spacer = try ui.Spacer.init(allocator); │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯