╭ changed ─────────────╮ │src/ui/Repo/Events.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭─────────────────────────────────────╮ │23 view_url: ?[]const u8 = null,│ │24 }; │ │25 │ │26 -pub const Cursor = struct { │ │26 +pub const EventRef = struct { │ │27 id: []const u8, │ │28 kind: evt.EventKind, │ │29 }; │ ╰─────────────────────────────────────╯ ╭────────────────────────────────────╮ │31 pub const Window = struct { │ │32 count: usize = 0, │ │33 events: []const Item = &.{},│ │34 - next: ?Cursor = null, │ │34 + next: ?EventRef = null, │ │35 }; │ │36 │ │37 identity: []const u8, │ ╰────────────────────────────────────╯ ╭─────────────────────────────────────╮ │38 view: ui.RoutablePage.EventsView,│ │39 +selected: ?EventRef, │ │40 active: Window, │ │41 removed: Window, │ │42 header: Header, │ ╰─────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ 94 const kind = selected_kind orelse return error.NotFound; │ │ 95 const stored_kind = (try evt.readEventKind(repo_opts.hash, kind_map, &id)) orelse return error.NotFound;│ │ 96 if (stored_kind != kind) return error.NotFound; │ │ 97 + result.selected = .{ .id = try aa.dupe(u8, selected), .kind = kind }; │ │ 98 const meta = try readMeta(repo_opts.hash, arena, haxy_moment, kind, &id); │ │ 99 result.view = if (meta.removed) .removed else .active; │ │100 root_key = evt.orderKeyDesc(meta.created_ts, &id); │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────╮ │138 return .{ │ │139 .identity = try aa.dupe(u8, identity), │ │140 .view = view, │ │141 + .selected = null, │ │142 .active = .{}, │ │143 .removed = .{}, │ │144 .header = if (local) try Header.empty(aa, failure) else Header.remote(),│ ╰─────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │402 if (self.header().getSelectedIndex()) |index| │ │403 self.contentStack().getFocus().child_id = self.contentStack().children.keys()[index]; │ │404 const view = self.selectedView(); │ │402 - if (ui.RoutablePage.repoEventsRoute(self.data.identity, view, null, "")) |route| │ │405 + var selected_kind: ?evt.EventKind = null; │ │406 + var selected_id: []const u8 = ""; │ │407 + if (view == self.data.view) { │ │408 + if (self.data.selected) |selected| { │ │409 + selected_kind = selected.kind; │ │410 + selected_id = selected.id; │ │411 + } │ │412 + } │ │413 + if (ui.RoutablePage.repoEventsRoute(self.data.identity, view, selected_kind, selected_id)) |route|│ │414 self.session.data.current_page = route; │ │415 try self.refreshDetail(allocator); │ │416 │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯