From fdb4ba5c06c246a1967b3c711a6390dbbbd97969 Mon Sep 17 00:00:00 2001 From: psavarmattas Date: Sat, 15 Aug 2026 20:29:06 +0100 Subject: [PATCH] feat(session): track user language + preferences MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirrors the existing name/avatar/id fields — Settings' Preferences page needs somewhere to read current values from and applyUpdatedProfile already refreshes everything else on save. --- Outpost/Root/SessionStore.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Outpost/Root/SessionStore.swift b/Outpost/Root/SessionStore.swift index 7a6f0f1..f5626e8 100644 --- a/Outpost/Root/SessionStore.swift +++ b/Outpost/Root/SessionStore.swift @@ -15,6 +15,8 @@ final class SessionStore { var userName: String? var userEmail: String? var userAvatarURL: URL? + var userLanguage: String? + var userPreferences: OutlineUserPreferences? var teamName: String? var teamAvatarURL: URL? private(set) var apiClient: OutlineAPIClient? @@ -73,6 +75,8 @@ final class SessionStore { userName = nil userEmail = nil userAvatarURL = nil + userLanguage = nil + userPreferences = nil teamName = nil teamAvatarURL = nil apiClient = nil @@ -95,6 +99,8 @@ final class SessionStore { userId = user.id userName = user.name userAvatarURL = user.avatarUrl.flatMap { URL(string: $0, relativeTo: serverURL)?.absoluteURL } + userLanguage = user.language + userPreferences = user.preferences } private func apply(user: OutlineUser, team: OutlineTeam, serverURL: URL) { @@ -105,6 +111,8 @@ final class SessionStore { // (e.g. `/api/files.get?key=...`) for avatarUrl — resolve against the // configured server so relative paths don't fail as "unsupported URL". userAvatarURL = user.avatarUrl.flatMap { URL(string: $0, relativeTo: serverURL)?.absoluteURL } + userLanguage = user.language + userPreferences = user.preferences teamName = team.name teamAvatarURL = team.avatarUrl.flatMap { URL(string: $0, relativeTo: serverURL)?.absoluteURL } }