╭ changed ─────────────╮ │src/ui/Repo/Header.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │120 const refs_link = try std.fmt.allocPrint(aa, "ai:{s}", .{try refs_route.toUrl(session.page_arena)}); │ │121 const issues_route = ui.RoutablePage.repoIssuesRoute(identity, .open, data.issues_tag, "") orelse return error.RouteTooLong;│ │122 const issues_link = try std.fmt.allocPrint(aa, "ai:{s}", .{try issues_route.toUrl(session.page_arena)}); │ │123 + const events_route = ui.RoutablePage.repoEventsRoute(identity, null, "") orelse return error.RouteTooLong; │ │124 + const events_link = try std.fmt.allocPrint(aa, "ai:{s}", .{try events_route.toUrl(session.page_arena)}); │ │125 const settings_route = ui.RoutablePage{ .repo_settings = Array.from(identity) orelse return error.RouteTooLong }; │ │126 const settings_link = try std.fmt.allocPrint(aa, "ai:{s}", .{try settings_route.toUrl(session.page_arena)}); │ │127 const auth_route = ui.RoutablePage{ .repo_auth = Array.from(identity) orelse return error.RouteTooLong }; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────╮ │133 .repo_commits => commits_link, │ │134 .repo_refs => refs_link, │ │135 .repo_issues => issues_link, │ │136 + .repo_events => events_link, │ │137 .repo_settings => settings_link,│ │138 .repo_auth => auth_link, │ │139 else => files_link, │ ╰─────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │197 .widget = .{ .text_box = text_box }, │ │198 .rect = null, │ │199 .min_size = .{ .width = "issues".len + 2, .height = null }, │ │200 + }); │ │201 + } │ │202 + │ │203 + // events │ │204 + { │ │205 + var text_box = try wgt.TextBox(ui.Widget).init(allocator, "events", .{ .border_style = .single, .rounded_corners = true, .wrap_kind = .none });│ │206 + errdefer text_box.deinit(allocator); │ │207 + text_box.getFocus().focusable = true; │ │208 + text_box.getFocus().kind = .{ .custom = events_link }; │ │209 + try tab_ids.put(allocator, text_box.getFocus().id, {}); │ │210 + if (std.mem.eql(u8, events_link, current_link)) selected_tab = text_box.getFocus().id; │ │211 + try box.children.put(allocator, text_box.getFocus().id, .{ │ │212 + .widget = .{ .text_box = text_box }, │ │213 + .rect = null, │ │214 + .min_size = .{ .width = "events".len + 2, .height = null }, │ │215 }); │ │216 } │ │217 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯