Skip to content

Commit 379504e

Browse files
committed
[Optimize] Migrate from ObservableObject to @observable
1 parent ad3063c commit 379504e

File tree

13 files changed

+45
-32
lines changed

13 files changed

+45
-32
lines changed

MenuHelper.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

MenuHelper/Store/CoffieStoreView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import StoreKit
99
import SwiftUI
1010

1111
struct CoffieStoreView: View {
12-
@EnvironmentObject var store: Store
12+
@Environment(Store.self) var store
1313
let coffies: [Product]
1414
let onPurchase: (Product) -> Void
1515

@@ -51,6 +51,6 @@ struct CoffieStoreView_Previews: PreviewProvider {
5151
CoffieStoreView(coffies: []) {
5252
print($0.displayName + $0.displayPrice)
5353
}
54-
.environmentObject(Store())
54+
.environment(Store())
5555
}
5656
}

MenuHelper/Store/CoffieView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import SwiftUI
1010

1111
struct CoffieView: View {
1212
@Environment(\.colorScheme) var colorScheme
13-
@EnvironmentObject var store: Store
13+
@Environment(Store.self) var store
1414
@State private var errorTitle = ""
1515
@State private var isShowingError = false
1616

MenuHelper/Store/Store.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@ enum StoreError: Error {
1515
case failedVerification
1616
}
1717

18-
class Store: ObservableObject {
19-
@Published private(set) var coffies: [Product] = []
20-
@Published private(set) var purchased = false
18+
@Observable
19+
final class Store {
20+
private(set) var coffies: [Product] = []
21+
private(set) var purchased = false
2122
var updateListenerTask: Task<Void, any Error>?
2223

2324
private let storage = NSUbiquitousKeyValueStore.default

MenuHelper/View/AppMenuItemView.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import SwiftUI
99

1010
struct AppMenuItemView: View {
11-
@EnvironmentObject var store: MenuItemStore
11+
@Environment(MenuItemStore.self) var store
1212
@State private var editingItem = false
1313
var item: AppMenuItem
1414

@@ -29,14 +29,14 @@ struct AppMenuItemView: View {
2929
}
3030
.sheet(isPresented: $editingItem, onDismiss: nil) {
3131
AppMenuItemEditor(item: item, index: store.appItems.firstIndex(of: item))
32-
.environmentObject(store)
32+
.environment(store)
3333
}
3434
}
3535
}
3636

3737
struct AppMenuItemView_Previews: PreviewProvider {
3838
static var previews: some View {
3939
AppMenuItemView(item: .xcode!)
40-
.environmentObject(MenuItemStore())
40+
.environment(MenuItemStore())
4141
}
4242
}

MenuHelper/View/Editor/AppMenuItemEditor.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import SwiftUI
99

1010
struct AppMenuItemEditor: View {
1111
@Environment(\.dismiss) private var dismiss
12-
@EnvironmentObject var store: MenuItemStore
12+
@Environment(MenuItemStore.self) private var store
1313

1414
@State var item: AppMenuItem
1515
@State private var argumentString: String = ""
@@ -98,6 +98,6 @@ struct AppMenuItemEditor: View {
9898
struct AppMenuItemEditor_Previews: PreviewProvider {
9999
static var previews: some View {
100100
AppMenuItemEditor(item: AppMenuItem(bundleIdentifier: "com.apple.dt.Xcode")!)
101-
.environmentObject(MenuItemStore())
101+
.environment(MenuItemStore())
102102
}
103103
}

MenuHelper/View/SettingView/FolderSettingTab.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import enum Settings.Settings
1010
import SwiftUI
1111

1212
struct FolderSettingTab: View {
13-
@ObservedObject var store: FolderItemStore
13+
var store: FolderItemStore
1414
@State private var isExpanded = false
1515

1616
var body: some View {
@@ -25,6 +25,7 @@ struct FolderSettingTab: View {
2525
}
2626
}
2727

28+
@MainActor
2829
var openSection: Settings.Section {
2930
Settings.Section(bottomDivider: true, verticalAlignment: .top) {
3031
EmptyView()
@@ -77,6 +78,7 @@ struct FolderSettingTab: View {
7778
}
7879
}
7980

81+
@MainActor
8082
var syncSection: Settings.Section {
8183
Settings.Section {
8284
EmptyView()

MenuHelper/View/SettingView/GeneralSettingTab.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ struct GeneralSettingTab: View {
7474
@AppStorage(Key.newFileExtension)
7575
private var newFileExtension = NewFileExtension.none
7676

77-
@ObservedObject var menuItemStore: MenuItemStore
77+
var menuItemStore: MenuItemStore
7878

7979
@State private var model = GeneralSettingTabState()
8080

MenuHelper/View/SettingView/MenuSettingTab.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class MenuSettingTabState {
3737
}
3838

3939
struct MenuSettingTab: View {
40-
@ObservedObject var store: MenuItemStore
40+
var store: MenuItemStore
4141
@State private var isDrogTargeted = false
4242
@State private var appMenuItemEdited = false
4343

@@ -50,6 +50,7 @@ struct MenuSettingTab: View {
5050
}
5151
}
5252

53+
@MainActor
5354
var appItemSection: Settings.Section {
5455
Settings.Section(bottomDivider: true, verticalAlignment: .top) {
5556
EmptyView()
@@ -78,7 +79,7 @@ struct MenuSettingTab: View {
7879
}
7980
ForEach(store.appItems) { item in
8081
AppMenuItemView(item: item)
81-
.environmentObject(store)
82+
.environment(store)
8283
}
8384
.onDelete { store.deleteAppItems(offsets: $0) }
8485
.onMove { store.moveAppItems(from: $0, to: $1) }
@@ -103,6 +104,7 @@ struct MenuSettingTab: View {
103104
}
104105
}
105106

107+
@MainActor
106108
var actionItemSection: Settings.Section {
107109
Settings.Section {
108110
EmptyView()

MenuHelper/View/SettingView/SettingView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import SwiftUI
99

1010
struct SettingView: View {
11-
@StateObject var menuItemStore = MenuItemStore()
12-
@StateObject var folderItemStore = FolderItemStore()
11+
@State var menuItemStore = MenuItemStore()
12+
@State var folderItemStore = FolderItemStore()
1313

1414
var body: some View {
1515
TabView {

0 commit comments

Comments
 (0)