diff --git a/scarf/Scarf iOS/Chat/ChatView.swift b/scarf/Scarf iOS/Chat/ChatView.swift index 72beea8..0731f5b 100644 --- a/scarf/Scarf iOS/Chat/ChatView.swift +++ b/scarf/Scarf iOS/Chat/ChatView.swift @@ -78,6 +78,12 @@ struct ChatView: View { optionId: optionId ) } + // Custom detents — `.medium` is either too tall (empty + // space above) or too short (options clipped). A 220pt + // peek shows the prompt + first ~3 options; users can + // drag to large for long option lists. + .presentationDetents([.height(220), .large]) + .presentationDragIndicator(.visible) } } diff --git a/scarf/Scarf iOS/Cron/CronListView.swift b/scarf/Scarf iOS/Cron/CronListView.swift index a0c6f76..a798324 100644 --- a/scarf/Scarf iOS/Cron/CronListView.swift +++ b/scarf/Scarf iOS/Cron/CronListView.swift @@ -87,11 +87,18 @@ struct CronListView: View { CronEditorView(initial: job, title: "Edit cron job") { edited in Task { await vm.upsert(edited) } } + // Cron editor is a Form with ~6 fields; .large gives room + // without cramping. No peek detent — editing cron jobs is + // a focused task, not something users want to half-see. + .presentationDetents([.large]) + .presentationDragIndicator(.visible) } .sheet(isPresented: $showingNewJob) { CronEditorView(initial: nil, title: "New cron job") { created in Task { await vm.upsert(created) } } + .presentationDetents([.large]) + .presentationDragIndicator(.visible) } } }