Bladeren bron

fix: store theme on native side too

Tienson Qin 2 maanden geleden
bovenliggende
commit
fc30707a44
2 gewijzigde bestanden met toevoegingen van 15 en 0 verwijderingen
  1. 13 0
      ios/App/App/SceneDelegate.swift
  2. 2 0
      ios/App/App/Utils.swift

+ 13 - 0
ios/App/App/SceneDelegate.swift

@@ -42,8 +42,21 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
         let hosting = UIHostingController(rootView: rootView)
         hosting.view.backgroundColor = UIColor.logseqBackground
 
+        let savedTheme = UserDefaults.standard.string(forKey: "logseqTheme") ?? "system"
+
+        let style: UIUserInterfaceStyle
+        switch savedTheme {
+        case "dark":
+            style = .dark
+        case "light":
+            style = .light
+        default:
+            style = .unspecified
+        }
+
         // 3) Standard UIWindowScene setup
         let window = UIWindow(windowScene: windowScene)
+        window.overrideUserInterfaceStyle = style
         window.rootViewController = hosting
         window.tintColor = UIColor.logseqTint
         self.window = window

+ 2 - 0
ios/App/App/Utils.swift

@@ -37,6 +37,8 @@ public class Utils: CAPPlugin {
   @objc func setInterfaceStyle(_ call: CAPPluginCall) {
     let mode = call.getString("mode")?.lowercased() ?? "system"
     let followSystem = call.getBool("system") ?? (mode == "system")
+    UserDefaults.standard.set(mode, forKey: "logseqTheme")
+    UserDefaults.standard.synchronize()
 
     let style: UIUserInterfaceStyle
     if followSystem {