╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ Delete.zig ───────────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭ find file ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╮ ╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╮ │ │ │http│ ssh │ │ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╯ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─╯
245 const name = self.session.data.user_name orelse unreachable; 246 try self.session.navigate(.{ .user_repos = .{ .name = ui.RoutablePage.Array(evt.User.name_max_len).from(name) orelse return error.RouteTooLong } }); 247 }, 248 .user => { 249 self.session.haxy_moment = try evt.currentMoment(evt.admin_repo_opts, admin_repo); 250 try self.session.forgetSshKey(); 251 self.session.logOut(); 252 try self.session.navigate(.default); 253 }, 254 } 255 } 256 257 pub fn clearGrid(self: *View) void { 258 self.scroll.clearGrid(); 259 } 260 261 pub fn getGrid(self: View) ?Grid { 262 return self.scroll.getGrid(); 263 } 264 265 pub fn getFocus(self: *View) *Focus { 266 return self.scroll.getFocus(); 267 } 268 269 // up leaves the view from the first control 270 pub fn atTop(self: *View, root_focus: *Focus) bool { 271 return root_focus.grandchild_id == self.control_ids[confirm_index]; 272 } 273 }; 274