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