mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
fix: Use shared UserDefaults instead of standard set to fix self-host URL persistence bug.
This commit is contained in:
parent
3c634d1c35
commit
e04ae10fa4
2 changed files with 21 additions and 12 deletions
|
|
@ -10,9 +10,9 @@ class SelfHostSettingsViewModel: ObservableObject {
|
|||
}
|
||||
|
||||
struct SelfHostSettingsView: View {
|
||||
@State var apiServerAddress = UserDefaults.standard.string(forKey: AppEnvironmentUserDefaultKey.serverBaseURL.rawValue) ?? ""
|
||||
@State var webServerAddress = UserDefaults.standard.string(forKey: AppEnvironmentUserDefaultKey.webAppBaseURL.rawValue) ?? ""
|
||||
@State var ttsServerAddress = UserDefaults.standard.string(forKey: AppEnvironmentUserDefaultKey.ttsBaseURL.rawValue) ?? ""
|
||||
@State var apiServerAddress = UserDefaults(suiteName: "group.app.omnivoreapp").string(forKey: AppEnvironmentUserDefaultKey.serverBaseURL.rawValue) ?? ""
|
||||
@State var webServerAddress = UserDefaults(suiteName: "group.app.omnivoreapp").string(forKey: AppEnvironmentUserDefaultKey.webAppBaseURL.rawValue) ?? ""
|
||||
@State var ttsServerAddress = UserDefaults(suiteName: "group.app.omnivoreapp").string(forKey: AppEnvironmentUserDefaultKey.ttsBaseURL.rawValue) ?? ""
|
||||
|
||||
@State var showConfirmAlert = false
|
||||
|
||||
|
|
|
|||
|
|
@ -40,15 +40,18 @@ public enum AppEnvironmentUserDefaultKey: String {
|
|||
|
||||
public extension AppEnvironment {
|
||||
static func setCustom(serverBaseURL: String, webAppBaseURL: String, ttsBaseURL: String) {
|
||||
UserDefaults.standard.set(
|
||||
guard let sharedDefaults = UserDefaults(suiteName: "group.app.omnivoreapp") else {
|
||||
fatalError("Could not create shared user defaults")
|
||||
}
|
||||
sharedDefaults.set(
|
||||
serverBaseURL.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines),
|
||||
forKey: AppEnvironmentUserDefaultKey.serverBaseURL.rawValue
|
||||
)
|
||||
UserDefaults.standard.set(
|
||||
sharedDefaults.set(
|
||||
webAppBaseURL.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines),
|
||||
forKey: AppEnvironmentUserDefaultKey.webAppBaseURL.rawValue
|
||||
)
|
||||
UserDefaults.standard.set(
|
||||
sharedDefaults.set(
|
||||
ttsBaseURL.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines),
|
||||
forKey: AppEnvironmentUserDefaultKey.ttsBaseURL.rawValue
|
||||
)
|
||||
|
|
@ -56,11 +59,14 @@ public extension AppEnvironment {
|
|||
|
||||
var environmentConfigured: Bool {
|
||||
if self == .custom {
|
||||
if let str = UserDefaults.standard.string(forKey: AppEnvironmentUserDefaultKey.webAppBaseURL.rawValue), let url = URL(string: str) {
|
||||
return true
|
||||
} else {
|
||||
guard
|
||||
let sharedDefaults = UserDefaults(suiteName: "group.app.omnnivoreapp"),
|
||||
let str = sharedDefaults.string(forKey: AppEnvironmentUserDefaultKey.serverBaseURL.rawValue),
|
||||
let url = URL(string: str)
|
||||
else {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
|
@ -94,7 +100,8 @@ public extension AppEnvironment {
|
|||
return URL(string: "http://localhost:4000")!
|
||||
case .custom:
|
||||
guard
|
||||
let str = UserDefaults.standard.string(forKey: AppEnvironmentUserDefaultKey.serverBaseURL.rawValue),
|
||||
let sharedDefaults = UserDefaults(suiteName: "group.app.omnnivoreapp"),
|
||||
let str = sharedDefaults.string(forKey: AppEnvironmentUserDefaultKey.serverBaseURL.rawValue),
|
||||
let url = URL(string: str)
|
||||
else {
|
||||
fatalError("custom serverBaseURL not set")
|
||||
|
|
@ -113,7 +120,8 @@ public extension AppEnvironment {
|
|||
return URL(string: "http://localhost:3000")!
|
||||
case .custom:
|
||||
guard
|
||||
let str = UserDefaults.standard.string(forKey: AppEnvironmentUserDefaultKey.webAppBaseURL.rawValue),
|
||||
let sharedDefaults = UserDefaults(suiteName: "group.app.omnnivoreapp"),
|
||||
let str = sharedDefaults.string(forKey: AppEnvironmentUserDefaultKey.webAppBaseURL.rawValue),
|
||||
let url = URL(string: str)
|
||||
else {
|
||||
fatalError("custom webAppBaseURL not set")
|
||||
|
|
@ -132,7 +140,8 @@ public extension AppEnvironment {
|
|||
return URL(string: "http://localhost:8080")!
|
||||
case .custom:
|
||||
guard
|
||||
let str = UserDefaults.standard.string(forKey: AppEnvironmentUserDefaultKey.ttsBaseURL.rawValue),
|
||||
let sharedDefaults = UserDefaults(suiteName: "group.app.omnnivoreapp"),
|
||||
let str = sharedDefaults.string(forKey: AppEnvironmentUserDefaultKey.ttsBaseURL.rawValue),
|
||||
let url = URL(string: str)
|
||||
else {
|
||||
fatalError("custom ttsBaseURL not set")
|
||||
|
|
|
|||
Loading…
Reference in a new issue