Page MenuHomeMusing Studio

No OneTemporary

diff --git a/Shared/Navigation/ContentView.swift b/Shared/Navigation/ContentView.swift
index 16cb4b1..b404072 100644
--- a/Shared/Navigation/ContentView.swift
+++ b/Shared/Navigation/ContentView.swift
@@ -1,23 +1,25 @@
import SwiftUI
struct ContentView: View {
@ObservedObject var postStore: PostStore
+ @ObservedObject var preferences: PreferencesModel
var body: some View {
NavigationView {
SidebarView()
PostList(selectedCollection: allPostsCollection)
Text("Select a post, or create a new draft.")
.foregroundColor(.secondary)
}
.environmentObject(postStore)
+ .environmentObject(preferences)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
- ContentView(postStore: testPostStore)
+ ContentView(postStore: testPostStore, preferences: PreferencesModel())
}
}
diff --git a/Shared/Preferences/PreferencesView.swift b/Shared/Preferences/PreferencesView.swift
index 290dd46..e45ff17 100644
--- a/Shared/Preferences/PreferencesView.swift
+++ b/Shared/Preferences/PreferencesView.swift
@@ -1,28 +1,28 @@
import SwiftUI
struct PreferencesView: View {
- @State private var appearance: Int = 0
+ @ObservedObject var preferences: PreferencesModel
var body: some View {
#if os(iOS)
- Picker(selection: $appearance, label: Text("Appearance")) {
+ Picker(selection: $preferences.appearance, label: Text("Appearance")) {
Text("System").tag(0)
Text("Light Mode").tag(1)
Text("Dark Mode").tag(2)
}
.pickerStyle(SegmentedPickerStyle())
#elseif os(macOS)
- Picker(selection: $appearance, label: Text("Appearance")) {
+ Picker(selection: $preferences.appearance, label: Text("Appearance")) {
Text("System").tag(0)
Text("Light Mode").tag(1)
Text("Dark Mode").tag(2)
}
#endif
}
}
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
- PreferencesView()
+ PreferencesView(preferences: PreferencesModel())
}
}
diff --git a/Shared/WriteFreely_MultiPlatformApp.swift b/Shared/WriteFreely_MultiPlatformApp.swift
index d96c106..1b426da 100644
--- a/Shared/WriteFreely_MultiPlatformApp.swift
+++ b/Shared/WriteFreely_MultiPlatformApp.swift
@@ -1,24 +1,27 @@
import SwiftUI
@main
struct WriteFreely_MultiPlatformApp: App {
+ @StateObject private var preferences = PreferencesModel()
+
#if DEBUG
@StateObject private var store = testPostStore
#else
@StateObject private var store = PostStore()
#endif
var body: some Scene {
WindowGroup {
- ContentView(postStore: store)
+ ContentView(postStore: store, preferences: preferences)
+ .environment(\.colorScheme, preferences.preferredColorScheme)
}
#if os(macOS)
Settings {
- SettingsView()
+ SettingsView(preferences: preferences)
.frame(minWidth: 300, maxWidth: 300, minHeight: 200, maxHeight: 200)
.padding()
}
#endif
}
}
diff --git a/iOS/Settings/SettingsView.swift b/iOS/Settings/SettingsView.swift
index daed735..50ad760 100644
--- a/iOS/Settings/SettingsView.swift
+++ b/iOS/Settings/SettingsView.swift
@@ -1,25 +1,28 @@
import SwiftUI
struct SettingsView: View {
+ @EnvironmentObject var preferences: PreferencesModel
+
@Binding var isPresented: Bool
var body: some View {
VStack {
SettingsHeaderView(isPresented: $isPresented)
Form {
Section(header: Text("Login Details")) {
AccountView()
}
Section(header: Text("Appearance")) {
- PreferencesView()
+ PreferencesView(preferences: preferences)
}
}
}
+ .preferredColorScheme(preferences.preferredColorScheme)
}
}
struct SettingsView_Previews: PreviewProvider {
static var previews: some View {
SettingsView(isPresented: .constant(true))
}
}
diff --git a/macOS/Settings/SettingsView.swift b/macOS/Settings/SettingsView.swift
index 40af22c..b4b9393 100644
--- a/macOS/Settings/SettingsView.swift
+++ b/macOS/Settings/SettingsView.swift
@@ -1,41 +1,43 @@
import SwiftUI
struct SettingsView: View {
+ @ObservedObject var preferences: PreferencesModel
+
@State var selectedView = 0
var body: some View {
TabView(selection: $selectedView) {
Form {
Section(header: Text("Login Details")) {
AccountView()
}
}
.tabItem {
Image(systemName: "person.crop.circle")
Text("Account")
}
.tag(0)
VStack {
- PreferencesView()
+ PreferencesView(preferences: preferences)
Spacer()
}
.tabItem {
Image(systemName: "gear")
Text("Preferences")
}
.tag(1)
}
}
}
struct SettingsView_AccountTabPreviews: PreviewProvider {
static var previews: some View {
- SettingsView(selectedView: 0)
+ SettingsView(preferences: PreferencesModel(), selectedView: 0)
}
}
struct SettingsView_PreferencesTabPreviews: PreviewProvider {
static var previews: some View {
- SettingsView(selectedView: 1)
+ SettingsView(preferences: PreferencesModel(), selectedView: 1)
}
}

File Metadata

Mime Type
text/x-diff
Expires
Fri, May 16, 2:11 AM (1 d, 9 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3238784

Event Timeline