diff --git a/Meetingnotes.xcodeproj/project.pbxproj b/Meetingnotes.xcodeproj/project.pbxproj index 06a78c0..b1a3c51 100644 --- a/Meetingnotes.xcodeproj/project.pbxproj +++ b/Meetingnotes.xcodeproj/project.pbxproj @@ -276,7 +276,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 17; + CURRENT_PROJECT_VERSION = 18; DEVELOPMENT_ASSET_PATHS = "\"meetingnotes/Preview Content\""; DEVELOPMENT_TEAM = G9LVHZAJNX; ENABLE_HARDENED_RUNTIME = YES; @@ -290,7 +290,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 15.0; - MARKETING_VERSION = 1.1.5; + MARKETING_VERSION = 1.1.6; ONLY_ACTIVE_ARCH = NO; OTHER_SWIFT_FLAGS = "$(inherited) -D ENABLE_TCC_SPI"; PRODUCT_BUNDLE_IDENTIFIER = net.jamesbone.meetingnotes; @@ -312,7 +312,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 17; + CURRENT_PROJECT_VERSION = 18; DEVELOPMENT_ASSET_PATHS = "\"meetingnotes/Preview Content\""; DEVELOPMENT_TEAM = G9LVHZAJNX; ENABLE_HARDENED_RUNTIME = YES; @@ -326,7 +326,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 15.0; - MARKETING_VERSION = 1.1.5; + MARKETING_VERSION = 1.1.6; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = "$(inherited) -D ENABLE_TCC_SPI"; PRODUCT_BUNDLE_IDENTIFIER = net.jamesbone.meetingnotes; diff --git a/meetingnotes/Views/TemplateEditView.swift b/meetingnotes/Views/TemplateEditView.swift index ae2986f..030e459 100644 --- a/meetingnotes/Views/TemplateEditView.swift +++ b/meetingnotes/Views/TemplateEditView.swift @@ -33,9 +33,16 @@ struct TemplateEditView: View { .font(.caption) .foregroundColor(.secondary) - TextField("Meeting Context", text: $template.context, axis: .vertical) - .textFieldStyle(.roundedBorder) - .lineLimit(4...10) + TextEditor(text: $template.context) + .scrollContentBackground(.hidden) + .padding(8) + .frame(height: 140) + .background(Color.secondary.opacity(0.06)) + .overlay { + RoundedRectangle(cornerRadius: 6) + .stroke(Color.secondary.opacity(0.25), lineWidth: 1) + } + .clipShape(RoundedRectangle(cornerRadius: 6)) } // Sections @@ -75,9 +82,16 @@ struct TemplateEditView: View { TextField("Section Title", text: $section.title) .textFieldStyle(.roundedBorder) - TextField("Section Description", text: $section.description, axis: .vertical) - .textFieldStyle(.roundedBorder) - .lineLimit(3...8) + TextEditor(text: $section.description) + .scrollContentBackground(.hidden) + .padding(8) + .frame(height: 90) + .background(Color.secondary.opacity(0.06)) + .overlay { + RoundedRectangle(cornerRadius: 6) + .stroke(Color.secondary.opacity(0.25), lineWidth: 1) + } + .clipShape(RoundedRectangle(cornerRadius: 6)) } Button { @@ -113,12 +127,19 @@ struct TemplateEditView: View { } .buttonStyle(.plain) .padding(.top) - .disabled(template.title.isEmpty || template.sections.isEmpty) + .disabled(!canSave) } .padding(24) } .navigationTitle("Edit Template") } + + private var canSave: Bool { + let hasTitle = !template.title.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty + let hasInstructions = !template.context.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty + || !template.sections.isEmpty + return hasTitle && hasInstructions + } } #Preview {