@@ -3,31 +3,26 @@ import GutenbergKit
33
44struct EditorView : View {
55 private let configuration : EditorConfiguration
6+ private let dependencies : EditorDependencies ?
67
7- @State private var viewModel = EditorViewModel ( )
8+ @ObservedObject private var viewModel = EditorViewModel ( )
89
9- @Environment ( \. dismiss) private var dismiss
10-
11- init ( configuration: EditorConfiguration ) {
10+ init ( configuration: EditorConfiguration , dependencies: EditorDependencies ? = nil ) {
1211 self . configuration = configuration
12+ self . dependencies = dependencies
1313 }
1414
1515 var body : some View {
16- _EditorView ( configuration: configuration, viewModel: viewModel)
16+ _EditorView (
17+ configuration: configuration,
18+ dependencies: dependencies,
19+ viewModel: viewModel
20+ )
1721 . toolbar { toolbar }
1822 }
1923
2024 @ToolbarContentBuilder
2125 private var toolbar : some ToolbarContent {
22- ToolbarItem ( placement: . topBarLeading) {
23- Button {
24- dismiss ( )
25- } label: {
26- Image ( systemName: " xmark " )
27- }
28- . disabled ( viewModel. isModalDialogOpen)
29- }
30-
3126 ToolbarItemGroup ( placement: . topBarTrailing) {
3227 Group {
3328 Button {
@@ -90,13 +85,16 @@ struct EditorView: View {
9085
9186private struct _EditorView : UIViewControllerRepresentable {
9287 private let configuration : EditorConfiguration
88+ private let dependencies : EditorDependencies ?
9389 private let viewModel : EditorViewModel
9490
9591 init (
9692 configuration: EditorConfiguration ,
93+ dependencies: EditorDependencies ? = nil ,
9794 viewModel: EditorViewModel
9895 ) {
9996 self . configuration = configuration
97+ self . dependencies = dependencies
10098 self . viewModel = viewModel
10199 }
102100
@@ -105,7 +103,7 @@ private struct _EditorView: UIViewControllerRepresentable {
105103 }
106104
107105 func makeUIViewController( context: Context ) -> EditorViewController {
108- let viewController = EditorViewController ( configuration: configuration)
106+ let viewController = EditorViewController ( configuration: configuration, dependencies : dependencies )
109107 viewController. delegate = context. coordinator
110108 viewController. webView. isInspectable = true
111109
@@ -209,8 +207,7 @@ private struct _EditorView: UIViewControllerRepresentable {
209207 }
210208}
211209
212- @Observable
213- private final class EditorViewModel {
210+ private final class EditorViewModel : ObservableObject {
214211 var isModalDialogOpen = false
215212 var hasUndo = false
216213 var hasRedo = false
0 commit comments