@@ -20,6 +20,7 @@ final class AppState: ObservableObject {
2020 @Published var selectedTrackedFile : RemoteTrackedFile = . memory
2121 @Published var memoryDocument = FileEditorDocument ( trackedFile: . memory)
2222 @Published var userDocument = FileEditorDocument ( trackedFile: . user)
23+ @Published var soulDocument = FileEditorDocument ( trackedFile: . soul)
2324 @Published var pendingSectionSelection : AppSection ?
2425 @Published var showDiscardChangesAlert = false
2526
@@ -66,7 +67,7 @@ final class AppState: ObservableObject {
6667 }
6768
6869 var hasUnsavedFileChanges : Bool {
69- memoryDocument. isDirty || userDocument. isDirty
70+ memoryDocument. isDirty || userDocument. isDirty || soulDocument . isDirty
7071 }
7172
7273 func requestSectionSelection( _ section: AppSection ) {
@@ -89,6 +90,7 @@ final class AppState: ObservableObject {
8990 func discardChangesAndContinue( ) {
9091 memoryDocument. discardChanges ( )
9192 userDocument. discardChanges ( )
93+ soulDocument. discardChanges ( )
9294 if let pendingSectionSelection {
9395 selectedSection = pendingSectionSelection
9496 handleSectionEntry ( pendingSectionSelection)
@@ -342,25 +344,30 @@ final class AppState: ObservableObject {
342344 }
343345
344346 private func ensureInitialFileLoads( ) async {
345- await loadTrackedFile ( . memory, forceReload: true )
346347 await loadTrackedFile ( . user, forceReload: true )
348+ await loadTrackedFile ( . memory, forceReload: true )
349+ await loadTrackedFile ( . soul, forceReload: true )
347350 }
348351
349352 private func document( for trackedFile: RemoteTrackedFile ) -> FileEditorDocument {
350353 switch trackedFile {
351- case . memory:
352- return memoryDocument
353354 case . user:
354355 return userDocument
356+ case . memory:
357+ return memoryDocument
358+ case . soul:
359+ return soulDocument
355360 }
356361 }
357362
358363 private func setDocument( _ document: FileEditorDocument ) {
359364 switch document. trackedFile {
360- case . memory:
361- memoryDocument = document
362365 case . user:
363366 userDocument = document
367+ case . memory:
368+ memoryDocument = document
369+ case . soul:
370+ soulDocument = document
364371 }
365372 }
366373
@@ -396,6 +403,7 @@ final class AppState: ObservableObject {
396403 private func resetDocuments( ) {
397404 memoryDocument = FileEditorDocument ( trackedFile: . memory)
398405 userDocument = FileEditorDocument ( trackedFile: . user)
406+ soulDocument = FileEditorDocument ( trackedFile: . soul)
399407 selectedTrackedFile = . memory
400408 }
401409
0 commit comments