feat: use a default template for automatic notes

This commit is contained in:
2026-07-15 23:28:39 +02:00
parent bcc16cd53f
commit 97eb58d1dc
8 changed files with 57 additions and 31 deletions
@@ -68,11 +68,11 @@ class MeetingListViewModel: ObservableObject {
}
func createNewMeeting() -> Meeting {
let newMeeting = Meeting()
let newMeeting = Meeting(templateId: LocalStorageManager.shared.preferredTemplateID())
meetings.insert(newMeeting, at: 0)
_ = LocalStorageManager.shared.saveMeeting(newMeeting)
// Track meeting creation event
PostHogSDK.shared.capture("meeting_created")
return newMeeting
}
}
}
@@ -228,11 +228,13 @@ class MeetingViewModel: ObservableObject {
func loadTemplates() {
templates = LocalStorageManager.shared.loadTemplates()
// Load per-meeting template or default to Standard Meeting
if let meetingTemplateId = meeting.templateId {
// Keep an existing meeting's template, otherwise use the configured default.
if let meetingTemplateId = meeting.templateId,
templates.contains(where: { $0.id == meetingTemplateId }) {
selectedTemplateId = meetingTemplateId
} else if let defaultTemplate = templates.first(where: { $0.title == "Standard Meeting" }) {
selectedTemplateId = defaultTemplate.id
} else {
selectedTemplateId = LocalStorageManager.shared.preferredTemplateID(in: templates)
meeting.templateId = selectedTemplateId
}
}
@@ -52,24 +52,7 @@ class SettingsViewModel: ObservableObject {
func loadTemplates() {
templates = LocalStorageManager.shared.loadTemplates()
// Validate that the selected template still exists
if let selectedId = settings.selectedTemplateId {
if !templates.contains(where: { $0.id == selectedId }) {
// Selected template was deleted, clear the selection
settings.selectedTemplateId = nil
}
}
// If no template is selected, select the first default template
if settings.selectedTemplateId == nil {
if let defaultTemplate = templates.first(where: { $0.title == "Standard Meeting" }) {
settings.selectedTemplateId = defaultTemplate.id
} else if let firstTemplate = templates.first {
// Fallback to first available template
settings.selectedTemplateId = firstTemplate.id
}
}
settings.selectedTemplateId = LocalStorageManager.shared.preferredTemplateID(in: templates)
}
func saveSettings(showMessage: Bool = true) {
@@ -4,6 +4,7 @@ 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?
@@ -14,8 +15,14 @@ class TemplatesViewModel: ObservableObject {
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) {
@@ -42,4 +49,4 @@ class TemplatesViewModel: ObservableObject {
]
)
}
}
}