From c6ca3187066f3be4b28b6daf3bd3e2b410b3ae62 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Wed, 3 Jan 2024 21:15:48 -0600 Subject: feat: move task creation to popover --- LibreTasks/ContentView.swift | 46 +++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) (limited to 'LibreTasks') diff --git a/LibreTasks/ContentView.swift b/LibreTasks/ContentView.swift index b382020..226db4d 100644 --- a/LibreTasks/ContentView.swift +++ b/LibreTasks/ContentView.swift @@ -12,6 +12,7 @@ struct ContentView: View { @State var newTask : String = "" @State private var query = "" @State var newTaskDate: Date = Date() + @State private var showingPopover = false var filteredTasks: [Task] { if query.isEmpty { @@ -23,20 +24,6 @@ struct ContentView: View { } } - var addTaskBar: some View { - HStack { - VStack { - TextField("Add Task: ", text: self.$newTask) - DatePicker("Date: ", selection: $newTaskDate) - .datePickerStyle(CompactDatePickerStyle()) - } - Button(action: self.addNewTask, label: { - Text("Add New") - }) - } - .padding() - } - func addNewTask() { taskStore.tasks.append(Task( id: String(taskStore.tasks.count + 1), @@ -44,12 +31,12 @@ struct ContentView: View { taskDate: newTaskDate )) self.newTask = "" + self.showingPopover = false } var body: some View { NavigationView { VStack { - addTaskBar.padding() List { ForEach(filteredTasks) { task in VStack(alignment: .leading) { @@ -79,6 +66,35 @@ struct ContentView: View { .toolbar { ToolbarItemGroup(placement: .navigationBarTrailing) { EditButton() + Button { + showingPopover = true + } label: { + Image(systemName: "square.and.pencil") + }.popover(isPresented: $showingPopover) { + HStack { + Button { + showingPopover = false + } label: { + Text("Close") + } + Spacer() + Text("Add New Task") + Spacer() + Button(action: self.addNewTask, label: { + Text("Save") + }) + } + .padding() + HStack { + VStack { + TextField("Add Task: ", text: self.$newTask) + DatePicker("Scheduled: ", selection: $newTaskDate) + .datePickerStyle(CompactDatePickerStyle()) + } + } + .padding() + Spacer() + } } } } -- cgit v1.2.3-70-g09d2