╭ changed ─────────────╮ │src/ui/Fork/Header.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────╮ │15 const diff_tab_label = "diff"; │ │16 const files_tab_label = "files"; │ │17 const settings_tab_label = "settings"; │ │18 +const new_repo_tab_label = "new repo"; │ │19 │ │20 pub const AuthTab = @import("../AuthTab.zig");│ │21 │ ╰──────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────╮ │122 }); │ │123 } │ │124 │ │124 - // spacer pushes settings + auth to the right. │ │125 + // spacer pushes settings, new repo and auth to the right.│ │126 { │ │127 var spacer = try ui.widget.Spacer.init(allocator); │ │128 errdefer spacer.deinit(allocator); │ ╰───────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │131 │ │132 const settings_route = ui.RoutablePage.forkSettingsRoute(fork_identity, data.id) orelse return error.RouteTooLong; │ │133 const settings_link = try ui.inPageTabLink(session, settings_route, current_tag == .fork_settings); │ │134 + const new_repo_route = ui.RoutablePage.forkNewRepoRoute(fork_identity, data.id) orelse return error.RouteTooLong; │ │135 + const new_repo_link = try ui.inPageTabLink(session, new_repo_route, current_tag == .fork_new_repo); │ │136 const auth_route = ui.RoutablePage.forkAuthRoute(fork_identity, data.id) orelse return error.RouteTooLong; │ │137 const auth_link = try ui.inPageTabLink(session, auth_route, current_tag == .fork_auth); │ │138 + │ │139 + // repos are created for the logged-in user. │ │140 + if (session.data.user_id != null) { │ │141 + var new_repo = try wgt.TextBox.init(allocator, new_repo_tab_label, .{ .border_style = .single, .round_corners = true, .wrap_kind = .none }); │ │142 + errdefer new_repo.deinit(allocator); │ │143 + new_repo.getFocus().mode = .all; │ │144 + new_repo.getFocus().kind = .{ .custom = new_repo_link }; │ │145 + try tab_ids.put(allocator, new_repo.getFocus().id, {}); │ │146 + if (current_tag == .fork_new_repo) selected_tab = new_repo.getFocus().id; │ │147 + try tabs_box.children.put(allocator, new_repo.getFocus().id, .{ .widget = .{ .text_box = new_repo }, .rect = null, .min_size = .{ .width = new_repo_tab_label.len + 2, .height = null } });│ │148 + } │ │149 │ │150 // settings are account preferences, so they require a login. │ │151 if (session.data.user_id != null) { │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯