╭──────────╮ │← previous│ ╰──────────╯ ╭ added ──────────────╮ │src/ui/Home/Users.zig│ ╰─────────────────────╯ ╭ changed ──╮ │src/web.zig│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │81 fn renderIndexHtml(io: std.Io, allocator: std.mem.Allocator, admin_repo_path: []const u8) ![]const u8 {│ │82 const template = (findEmbed("/index.html") orelse return error.MissingIndexAsset).body; │ │83 │ │84 - // open the admin repo to read live user/repo data; if it doesn't exist │ │85 - // yet (e.g. a fresh `haxy serve` with no admin repo) fall back to empty. │ │84 + // open the admin repo to read live user/repo data. │ │85 const repo_opts: rp.RepoOpts(.xit) = .{}; │ │86 const Repo = rp.Repo(.xit, repo_opts); │ │88 - var repo_or_err = Repo.open(io, allocator, .{ .path = admin_repo_path }); │ │87 + var repo = try Repo.open(io, allocator, .{ .path = admin_repo_path }); │ │88 + defer repo.deinit(io, allocator); │ │89 var page_arena = std.heap.ArenaAllocator.init(allocator); │ │90 defer page_arena.deinit(); │ │91 - const page: ui.Page = if (repo_or_err) |*repo| blk: { │ │92 - defer repo.deinit(io, allocator); │ │93 - break :blk .{ .users_and_repos = try .init(repo_opts, &page_arena, repo) }; │ │94 - } else |_| .{ .users_and_repos = .empty() }; │ │91 + const page: ui.Page = .{ .home = try .init(repo_opts, &page_arena, &repo) }; │ │92 │ │93 var root = try ui.initRoot(allocator, &page); │ │94 defer root.deinit(); │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────╯