ConfigEditorViewModel.swift 752 B

123456789101112131415161718192021222324252627
  1. import SwiftUI
  2. import Swinject
  3. extension ConfigEditor {
  4. class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: ConfigEditorProvider {
  5. let file: String
  6. @Published var configText = ""
  7. init(provider: Provider, resolver: Resolver, file: String) {
  8. self.file = file
  9. super.init(provider: provider, resolver: resolver)
  10. }
  11. required init(provider _: Provider, resolver _: Resolver) {
  12. error(.default, "init(provider:resolver:) has not been implemented")
  13. }
  14. override func subscribe() {
  15. configText = provider.load(file: file)
  16. }
  17. func save() {
  18. provider.save(configText, as: file)
  19. }
  20. }
  21. }