Save changes to settings
This commit is contained in:
@@ -38,6 +38,7 @@ final class Settings: ChangeObservableItem {
|
||||
self.posts = posts
|
||||
self.pages = pages
|
||||
self.audioPlayer = audioPlayer
|
||||
observeChildChanges()
|
||||
}
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
@@ -49,6 +50,15 @@ final class Settings: ChangeObservableItem {
|
||||
func needsSaving() {
|
||||
content?.needsSave()
|
||||
}
|
||||
|
||||
private func observeChildChanges() {
|
||||
observe(general)
|
||||
observe(paths)
|
||||
observe(navigation)
|
||||
observe(posts)
|
||||
observe(pages)
|
||||
observe(audioPlayer)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: Storage
|
||||
|
@@ -16,6 +16,14 @@ extension ChangeObservableItem {
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
}
|
||||
|
||||
func observe<T>(_ object: T) where T: ObservableObject {
|
||||
object.objectWillChange
|
||||
.sink { [weak self] _ in
|
||||
self?.needsSaving()
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
}
|
||||
}
|
||||
|
||||
protocol ObservableContentItem: ChangeObservableItem {
|
||||
|
Reference in New Issue
Block a user