╭ changed ──────╮ │src/ui/Auth.zig│ ╰───────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │27 // inner views' focus ids change as login/logout swap; if we exposed those│ │28 // directly, anything keyed off our id at one moment would mismatch the │ │29 // focus tree the next frame. │ │30 - focus: Focus, │ │30 + focus: *Focus, │ │31 login: Login.View, │ │32 logout: Logout.View, │ │33 session: *ui.Session, │ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────╮ │38 var logout_view = try Logout.View.init(allocator, &data.logout, session, users_tab_id);│ │39 errdefer logout_view.deinit(allocator); │ │40 return .{ │ │41 - .focus = Focus.init(.container), │ │41 + .focus = try Focus.create(allocator, .container), │ │42 .login = login_view, │ │43 .logout = logout_view, │ │44 .session = session, │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────╮ │46 } │ │47 │ │48 pub fn deinit(self: *View, allocator: std.mem.Allocator) void {│ │49 - self.focus.deinit(allocator); │ │49 + self.focus.destroy(allocator); │ │50 self.login.deinit(allocator); │ │51 self.logout.deinit(allocator); │ │52 } │ ╰───────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────╮ │87 } │ │88 │ │89 pub fn getFocus(self: *View) *Focus { │ │90 - return &self.focus; │ │90 + return self.focus; │ │91 } │ │92 │ │93 pub fn getSelectedIndex(self: View) ?usize {│ ╰────────────────────────────────────────────────────╯