Files
meetingnotes/meetingnotes/ViewModels/TemplatesViewModel.swift
T

53 lines
1.5 KiB
Swift

import Foundation
import SwiftUI
@MainActor
class TemplatesViewModel: ObservableObject {
@Published var templates: [NoteTemplate] = []
@Published private(set) var defaultTemplateID: UUID? = nil
@Published var isLoading = false
@Published var errorMessage: String?
init() {
loadTemplates()
}
func loadTemplates() {
isLoading = true
templates = LocalStorageManager.shared.loadTemplates()
defaultTemplateID = LocalStorageManager.shared.preferredTemplateID(in: templates)
isLoading = false
}
func setDefaultTemplate(_ template: NoteTemplate) {
UserDefaultsManager.shared.selectedTemplateId = template.id
defaultTemplateID = template.id
}
func saveTemplate(_ template: NoteTemplate) {
if LocalStorageManager.shared.saveTemplate(template) {
loadTemplates()
} else {
errorMessage = "Failed to save template"
}
}
func deleteTemplate(_ template: NoteTemplate) {
if LocalStorageManager.shared.deleteTemplate(template) {
loadTemplates()
} else {
errorMessage = "Cannot delete default templates"
}
}
func createNewTemplate() -> NoteTemplate {
return NoteTemplate(
title: "New Template",
context: "",
sections: [
TemplateSection(title: "Section 1", description: "Description of section 1")
]
)
}
}