╭ changed ────────────╮ │src/ui/Repo/Files.zig│ ╰─────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │111 - const link = if (entry.is_dir) try dirLink(session.page_arena, data.identity, try childDir(aa, data.dir, entry.name)) else "";│ │192 + const link = if (entry.is_dir) try dirLink(session.page_arena, data, try childDir(aa, data.dir, entry.name)) else ""; │ │193 try addRow(allocator, &box, label, link); │ │194 } │ │195 if (box.children.count() > 0) box.getFocus().child_id = box.children.keys()[0]; │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │278 } │ │279 }; │ │280 │ │200 -// the "a:" link for the files route at `dir` within `identity` ("owner/name"). │ │201 -fn dirLink(page_arena: *std.heap.ArenaAllocator, identity: []const u8, dir: []const u8) ![]const u8 { │ │202 - const route = ui.RoutablePage.repoFilesRoute(identity, dir) orelse return error.RouteTooLong; │ │281 +// the "a:" link for the files route at `dir`, pinned to the listing's ref. │ │282 +fn dirLink(page_arena: *std.heap.ArenaAllocator, data: *const Self, dir: []const u8) ![]const u8 { │ │283 + const route = ui.RoutablePage.repoFilesRoute(data.identity, data.ref_kind, data.ref_value, dir) orelse return error.RouteTooLong;│ │284 const url = try route.urlAlloc(page_arena); │ │285 return std.fmt.allocPrint(page_arena.allocator(), "a:{s}", .{url}); │ │286 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯