╭ changed ────────╮ │src/serve_ssh.zig│ ╰─────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────╮ │254 │ │255 // pick up data written by other handles so the next navigation │ │256 // builds its page from a current moment │ │257 - try ui_session.reloadMoment(&repo); │ │257 + try ui_session.reloadMoment(allocator, &repo); │ │258 │ │259 // reconcile navigation: forward to a new page, or back on escape│ │260 try nav.sync(allocator, &ui_session); │ ╰──────────────────────────────────────────────────────────────────────────────╯ ╭ changed ─╮ │src/ui.zig│ ╰──────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │946 } │ │947 } │ │948 │ │949 - // reload the moment from the admin repo │ │950 - pub fn reloadMoment(self: *Self, repo: *rp.Repo(.xit, evt.admin_repo_opts)) !void { │ │951 - self.haxy_moment = try evt.currentMoment(evt.admin_repo_opts, repo); │ │949 + // reload the moment from the admin repo and re-read user preferences │ │950 + pub fn reloadMoment(self: *Self, allocator: std.mem.Allocator, repo: *rp.Repo(.xit, evt.admin_repo_opts)) !void {│ │951 + const moment = try evt.currentMoment(evt.admin_repo_opts, repo); │ │952 + self.haxy_moment = moment; │ │953 + │ │954 + const user_id = self.data.user_id orelse return; │ │955 + var arena = std.heap.ArenaAllocator.init(allocator); │ │956 + defer arena.deinit(); │ │957 + if (try evt.User.readById(evt.AdminDB, evt.admin_repo_opts.hash, moment, &arena, user_id)) |user| { │ │958 + self.data.enable_ansi = user.event.enable_ansi; │ │959 + } │ │960 } │ │961 │ │962 // request a forward navigation to `route`; the host consumes next_page │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯