╭ changed ─╮ │src/ui.zig│ ╰──────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1071 try std.fmt.allocPrint(arena.allocator(), user_segment ++ "{s}/forks/" ++ start_seg ++ "{d}", .{ u.name.slice(), u.start }), │ │1072 .user_new_repo => |name| try std.fmt.allocPrint(arena.allocator(), user_segment ++ "{s}/new-repo", .{name.slice()}), │ │1073 .user_new_user => |name| try std.fmt.allocPrint(arena.allocator(), user_segment ++ "{s}/new-user", .{name.slice()}), │ │1072 - .user_auth => |name| try std.fmt.allocPrint(arena.allocator(), user_segment ++ "{s}/auth", .{name.slice()}), │ │1074 + .user_user => |name| try std.fmt.allocPrint(arena.allocator(), user_segment ++ "{s}/user", .{name.slice()}), │ │1075 .repo_files => |f| blk: { │ │1076 const prefix = try repoUrlPrefix(arena, f.name.slice()); │ │1077 if (f.ref_kind == null and f.patchrev_id.len == 0 and f.find.len == 0 and f.line == 0) break :blk if (prefix.len == 0) "/" else prefix;│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1241 }, │ │1242 .repo_new_repo => |name| try std.fmt.allocPrint(arena.allocator(), "{s}/new-repo", .{try repoUrlPrefix(arena, name.slice())}), │ │1243 .repo_new_user => |name| try std.fmt.allocPrint(arena.allocator(), "{s}/new-user", .{try repoUrlPrefix(arena, name.slice())}), │ │1242 - .repo_auth => |name| try std.fmt.allocPrint(arena.allocator(), "{s}/auth", .{try repoUrlPrefix(arena, name.slice())}), │ │1244 + .repo_user => |name| try std.fmt.allocPrint(arena.allocator(), "{s}/user", .{try repoUrlPrefix(arena, name.slice())}), │ │1245 .fork_patch => |f| try std.fmt.allocPrint(arena.allocator(), fork_segment ++ "{s}/" ++ patch_seg ++ "{s}", .{ f.name.slice(), f.id.slice() }),│ │1246 .fork_diff => |d| blk: { │ │1247 var out: std.Io.Writer.Allocating = .init(arena.allocator()); │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1269 }, │ │1270 .fork_new_repo => |f| try std.fmt.allocPrint(arena.allocator(), fork_segment ++ "{s}/" ++ patch_seg ++ "{s}/new-repo", .{ f.name.slice(), f.id.slice() }),│ │1271 .fork_new_user => |f| try std.fmt.allocPrint(arena.allocator(), fork_segment ++ "{s}/" ++ patch_seg ++ "{s}/new-user", .{ f.name.slice(), f.id.slice() }),│ │1270 - .fork_auth => |f| try std.fmt.allocPrint(arena.allocator(), fork_segment ++ "{s}/" ++ patch_seg ++ "{s}/auth", .{ f.name.slice(), f.id.slice() }), │ │1272 + .fork_user => |f| try std.fmt.allocPrint(arena.allocator(), fork_segment ++ "{s}/" ++ patch_seg ++ "{s}/user", .{ f.name.slice(), f.id.slice() }), │ │1273 }; │ │1274 } │ │1275 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1282 const params = listParams(&segments, &.{ .start, .search }) orelse return null; │ │1283 return withEncodedSearch(.{ .home_users = .{ .start = params.start() orelse return null } }, params.values.get(.search) orelse "");│ │1284 } │ │1283 - if (std.mem.eql(u8, first, "auth")) return if (segments.next() == null) .home_auth else null; │ │1284 - // "user/<name>[/repos[/search:<s>][/start:<n>]|/new-repo|/new-user|/auth]" │ │1285 + // "user/<name>[/repos[/search:<s>][/start:<n>]|/new-repo|/new-user|/user]" │ │1286 if (std.mem.eql(u8, first, "user")) { │ │1286 - const name = segments.next() orelse return null; │ │1287 + const name = segments.next() orelse return .home_user; │ │1288 if (name.len == 0) return null; │ │1289 // "/user/new" is the home page's new user tab, not a user │ │1290 if (std.mem.eql(u8, name, "new") and segments.peek() == null) return .home_new_user; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1297 if (std.mem.eql(u8, sub, "forks")) return .{ .user_forks = .{ .name = parsed, .start = listStart(&segments) orelse return null } };│ │1298 if (std.mem.eql(u8, sub, "new-repo")) return if (segments.next() == null) .{ .user_new_repo = parsed } else null; │ │1299 if (std.mem.eql(u8, sub, "new-user")) return if (segments.next() == null) .{ .user_new_user = parsed } else null; │ │1299 - if (std.mem.eql(u8, sub, "auth")) return if (segments.next() == null) .{ .user_auth = parsed } else null; │ │1300 + if (std.mem.eql(u8, sub, "user")) return if (segments.next() == null) .{ .user_user = parsed } else null; │ │1301 return null; // unknown sub-path │ │1302 } │ │1303 // "fork/<forker>/<reponame>/patch:<id>[/files|/commits]"; the │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1344 } │ │1345 if (std.mem.eql(u8, tab, "new-repo")) return if (segments.next() == null) forkNewRepoRoute(identity, id) else null;│ │1346 if (std.mem.eql(u8, tab, "new-user")) return if (segments.next() == null) forkNewUserRoute(identity, id) else null;│ │1346 - if (std.mem.eql(u8, tab, "auth")) return if (segments.next() == null) forkAuthRoute(identity, id) else null; │ │1347 + if (std.mem.eql(u8, tab, "user")) return if (segments.next() == null) forkUserRoute(identity, id) else null; │ │1348 return null; │ │1349 } │ │1350 // "repo/<username>/<reponame>[/<tab tail>]"; the bare pair is the │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────╮ │1404 .repo_discussions => |*t| t.name.slice(), │ │1405 .repo_events => |*e| e.name.slice(), │ │1406 .repo_undo => |*u| u.name.slice(), │ │1406 - .repo_new_repo, .repo_new_user, .repo_auth => |*name| name.slice(),│ │1407 + .repo_new_repo, .repo_new_user, .repo_user => |*name| name.slice(),│ │1408 else => null, │ │1409 }; │ │1410 } │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────╮ │1417 .fork_commits => |*f| &f.fork,│ │1418 .fork_new_repo => |*f| f, │ │1419 .fork_new_user => |*f| f, │ │1419 - .fork_auth => |*f| f, │ │1420 + .fork_user => |*f| f, │ │1421 else => null, │ │1422 }; │ │1423 } │ ╰────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1430 .user => switch (self) { │ │1431 .user_repos => |u| .{ .user_repos = .{ .name = u.name } }, │ │1432 .user_forks => |u| .{ .user_repos = .{ .name = u.name } }, │ │1432 - .user_new_repo, .user_new_user, .user_auth => |name| .{ .user_repos = .{ .name = name } },│ │1433 + .user_new_repo, .user_new_user, .user_user => |name| .{ .user_repos = .{ .name = name } },│ │1434 else => self, │ │1435 }, │ │1436 // every repo route stores the same identity, so it always fits │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1445 │ │1446 pub fn parent(self: RoutablePage) PageKind { │ │1447 return switch (self) { │ │1447 - .home_about, .home_users, .home_new_repo, .home_new_user, .home_auth => .home, │ │1448 - .user_repos, .user_forks, .user_new_repo, .user_new_user, .user_auth => .user, │ │1449 - .repo_files, .repo_commits, .repo_diff, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_new_repo, .repo_new_user, .repo_auth => .repo,│ │1450 - .fork_patch, .fork_diff, .fork_files, .fork_commits, .fork_new_repo, .fork_new_user, .fork_auth => .fork, │ │1448 + .home_about, .home_users, .home_new_repo, .home_new_user, .home_user => .home, │ │1449 + .user_repos, .user_forks, .user_new_repo, .user_new_user, .user_user => .user, │ │1450 + .repo_files, .repo_commits, .repo_diff, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_new_repo, .repo_new_user, .repo_user => .repo,│ │1451 + .fork_patch, .fork_diff, .fork_files, .fork_commits, .fork_new_repo, .fork_new_user, .fork_user => .fork, │ │1452 .not_found => .not_found, │ │1453 }; │ │1454 } │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯