╭ changed ─╮ │src/ui.zig│ ╰──────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1221 else │ │1222 try std.fmt.allocPrint(arena.allocator(), "{s}/events/{s}{s}", .{ prefix, @tagName(e.view), moment }); │ │1223 }, │ │1234 - .repo_settings => |name| try std.fmt.allocPrint(arena.allocator(), "{s}/settings", .{try repoUrlPrefix(arena, name.slice())}), │ │1224 .repo_new_repo => |name| try std.fmt.allocPrint(arena.allocator(), "{s}/new-repo", .{try repoUrlPrefix(arena, name.slice())}), │ │1225 .repo_auth => |name| try std.fmt.allocPrint(arena.allocator(), "{s}/auth", .{try repoUrlPrefix(arena, name.slice())}), │ │1226 .fork_patch => |f| try std.fmt.allocPrint(arena.allocator(), fork_segment ++ "{s}/" ++ patch_seg ++ "{s}", .{ f.name.slice(), f.id.slice() }),│ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1253 } │ │1254 break :blk out.written(); │ │1255 }, │ │1267 - .fork_settings => |f| try std.fmt.allocPrint(arena.allocator(), fork_segment ++ "{s}/" ++ patch_seg ++ "{s}/settings", .{ f.name.slice(), f.id.slice() }),│ │1256 .fork_new_repo => |f| try std.fmt.allocPrint(arena.allocator(), fork_segment ++ "{s}/" ++ patch_seg ++ "{s}/new-repo", .{ f.name.slice(), f.id.slice() }),│ │1257 .fork_auth => |f| try std.fmt.allocPrint(arena.allocator(), fork_segment ++ "{s}/" ++ patch_seg ++ "{s}/auth", .{ f.name.slice(), f.id.slice() }), │ │1258 }; │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1267 const params = listParams(&segments, &.{ .start, .search }) orelse return null; │ │1268 return withEncodedSearch(.{ .home_users = .{ .start = params.start() orelse return null } }, params.values.get(.search) orelse "");│ │1269 } │ │1282 - if (std.mem.eql(u8, first, "settings")) return if (segments.next() == null) .home_settings else null; │ │1270 if (std.mem.eql(u8, first, "new-repo")) return if (segments.next() == null) .home_new_repo else null; │ │1271 if (std.mem.eql(u8, first, "auth")) return if (segments.next() == null) .home_auth else null; │ │1285 - // "user/<name>[/repos[/search:<s>][/start:<n>]|/settings|/new-repo|/auth]" │ │1272 + // "user/<name>[/repos[/search:<s>][/start:<n>]|/new-repo|/auth]" │ │1273 if (std.mem.eql(u8, first, "user")) { │ │1274 const name = segments.next() orelse return null; │ │1275 if (name.len == 0) return null; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1280 return withEncodedSearch(.{ .user_repos = .{ .name = parsed, .start = params.start() orelse return null } }, params.values.get(.search) orelse "");│ │1281 } │ │1282 if (std.mem.eql(u8, sub, "forks")) return .{ .user_forks = .{ .name = parsed, .start = listStart(&segments) orelse return null } }; │ │1296 - if (std.mem.eql(u8, sub, "settings")) return if (segments.next() == null) .{ .user_settings = parsed } else null; │ │1283 if (std.mem.eql(u8, sub, "new-repo")) return if (segments.next() == null) .{ .user_new_repo = parsed } else null; │ │1284 if (std.mem.eql(u8, sub, "auth")) return if (segments.next() == null) .{ .user_auth = parsed } else null; │ │1285 return null; // unknown sub-path │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1326 const file_path = pathValue(segments.rest()) orelse return null; │ │1327 return forkCommitsRoute(identity, id, oid, start, file_path); │ │1328 } │ │1343 - if (std.mem.eql(u8, tab, "settings")) return if (segments.next() == null) forkSettingsRoute(identity, id) else null;│ │1329 if (std.mem.eql(u8, tab, "new-repo")) return if (segments.next() == null) forkNewRepoRoute(identity, id) else null; │ │1330 if (std.mem.eql(u8, tab, "auth")) return if (segments.next() == null) forkAuthRoute(identity, id) else null; │ │1331 return null; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────╮ │1385 .repo_discussions => |*t| t.name.slice(), │ │1386 .repo_events => |*e| e.name.slice(), │ │1387 .repo_undo => |*u| u.name.slice(), │ │1403 - .repo_settings, .repo_new_repo, .repo_auth => |*name| name.slice(),│ │1388 + .repo_new_repo, .repo_auth => |*name| name.slice(), │ │1389 else => null, │ │1390 }; │ │1391 } │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────╮ │1396 .fork_diff => |*d| &d.fork, │ │1397 .fork_files => |*f| &f.fork, │ │1398 .fork_commits => |*f| &f.fork,│ │1414 - .fork_settings => |*f| f, │ │1399 .fork_new_repo => |*f| f, │ │1400 .fork_auth => |*f| f, │ │1401 else => null, │ ╰────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1410 .user => switch (self) { │ │1411 .user_repos => |u| .{ .user_repos = .{ .name = u.name } }, │ │1412 .user_forks => |u| .{ .user_repos = .{ .name = u.name } }, │ │1429 - .user_settings, .user_new_repo, .user_auth => |name| .{ .user_repos = .{ .name = name } },│ │1413 + .user_new_repo, .user_auth => |name| .{ .user_repos = .{ .name = name } }, │ │1414 else => self, │ │1415 }, │ │1416 // every repo route stores the same identity, so it always fits │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1424 │ │1425 pub fn parent(self: RoutablePage) PageKind { │ │1426 return switch (self) { │ │1443 - .home_about, .home_users, .home_settings, .home_new_repo, .home_auth => .home, │ │1444 - .user_repos, .user_forks, .user_settings, .user_new_repo, .user_auth => .user, │ │1445 - .repo_files, .repo_commits, .repo_diff, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_settings, .repo_new_repo, .repo_auth => .repo,│ │1446 - .fork_patch, .fork_diff, .fork_files, .fork_commits, .fork_settings, .fork_new_repo, .fork_auth => .fork, │ │1427 + .home_about, .home_users, .home_new_repo, .home_auth => .home, │ │1428 + .user_repos, .user_forks, .user_new_repo, .user_auth => .user, │ │1429 + .repo_files, .repo_commits, .repo_diff, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_new_repo, .repo_auth => .repo, │ │1430 + .fork_patch, .fork_diff, .fork_files, .fork_commits, .fork_new_repo, .fork_auth => .fork, │ │1431 }; │ │1432 } │ │1433 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1467 var segments = std.mem.splitScalar(u8, sub, '/'); │ │1468 const tab = segments.next() orelse return null; │ │1469 var params = Params{}; │ │1486 - if (std.mem.eql(u8, tab, "settings")) return if (segments.next() == null) .{ .repo_settings = Array(repo_route_max_len).from(pair) orelse return null } else null;│ │1470 if (std.mem.eql(u8, tab, "new-repo")) return if (segments.next() == null) .{ .repo_new_repo = Array(repo_route_max_len).from(pair) orelse return null } else null;│ │1471 if (std.mem.eql(u8, tab, "auth")) return if (segments.next() == null) .{ .repo_auth = Array(repo_route_max_len).from(pair) orelse return null } else null; │ │1472 if (std.mem.eql(u8, tab, "refs")) { │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯