feat(session): track user language + preferences

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.
This commit is contained in:
2026-08-15 20:29:06 +01:00
parent 5a522ec0e1
commit 8b0b233265
+8
View File
@@ -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 }
}