krz/libre-tasks

A free and private task manager for iOS. ios privacy swift tasks

Commit c6ca318706

c6ca3187066f3be4b28b6daf3bd3e2b410b3ae62

parent: 3f77f5ee38

Unsigned

cmc <hello@cleberg.net> · 2024-01-04 03:15 UTC

feat: move task creation to popover

Layout: unified · split

LibreTasks/ContentView.swift +31 −15
@@ -12,6 +12,7 @@ struct ContentView: View {
1212 @State var newTask : String = ""
1313 @State private var query = ""
1414 @State var newTaskDate: Date = Date()
15 @State private var showingPopover = false
1516
1617 var filteredTasks: [Task] {
1718 if query.isEmpty {
@@ -23,20 +24,6 @@ struct ContentView: View {
2324 }
2425 }
2526
26 var addTaskBar: some View {
27 HStack {
28 VStack {
29 TextField("Add Task: ", text: self.$newTask)
30 DatePicker("Date: ", selection: $newTaskDate)
31 .datePickerStyle(CompactDatePickerStyle())
32 }
33 Button(action: self.addNewTask, label: {
34 Text("Add New")
35 })
36 }
37 .padding()
38 }
39
4027 func addNewTask() {
4128 taskStore.tasks.append(Task(
4229 id: String(taskStore.tasks.count + 1),
@@ -44,12 +31,12 @@ struct ContentView: View {
4431 taskDate: newTaskDate
4532 ))
4633 self.newTask = ""
34 self.showingPopover = false
4735 }
4836
4937 var body: some View {
5038 NavigationView {
5139 VStack {
52 addTaskBar.padding()
5340 List {
5441 ForEach(filteredTasks) { task in
5542 VStack(alignment: .leading) {
@@ -79,6 +66,35 @@ struct ContentView: View {
7966 .toolbar {
8067 ToolbarItemGroup(placement: .navigationBarTrailing) {
8168 EditButton()
69 Button {
70 showingPopover = true
71 } label: {
72 Image(systemName: "square.and.pencil")
73 }.popover(isPresented: $showingPopover) {
74 HStack {
75 Button {
76 showingPopover = false
77 } label: {
78 Text("Close")
79 }
80 Spacer()
81 Text("Add New Task")
82 Spacer()
83 Button(action: self.addNewTask, label: {
84 Text("Save")
85 })
86 }
87 .padding()
88 HStack {
89 VStack {
90 TextField("Add Task: ", text: self.$newTask)
91 DatePicker("Scheduled: ", selection: $newTaskDate)
92 .datePickerStyle(CompactDatePickerStyle())
93 }
94 }
95 .padding()
96 Spacer()
97 }
8298 }
8399 }
84100 }
README.md +2 −1
@@ -18,7 +18,8 @@ in Swift.
1818### Backlog
1919
2020- [ ] Notification reminders for upcoming tasks
21- [ ] Possibly a settings page for app themes, credits/licensing, etc.
21- [ ] Recurring reminders
22- [ ] Support for tags, priorities, groups, etc.
2223
2324## Collaboration
2425