From c49db28ff6e8fc42b5e3f03111144c1dbc1939f1 Mon Sep 17 00:00:00 2001 From: breadone Date: Tue, 25 Jun 2024 18:16:27 +1200 Subject: [PATCH] implemented card editing functionality although im not sure that's the final version yet --- OnCue.xcodeproj/project.pbxproj | 8 ++++---- OnCue/View/CardsView.swift | 17 +++++++++++++---- ...{AddNewCardView.swift => EditCardView.swift} | 15 ++++++++------- 3 files changed, 25 insertions(+), 15 deletions(-) rename OnCue/View/{AddNewCardView.swift => EditCardView.swift} (73%) diff --git a/OnCue.xcodeproj/project.pbxproj b/OnCue.xcodeproj/project.pbxproj index c2a52f4..88dbbf9 100644 --- a/OnCue.xcodeproj/project.pbxproj +++ b/OnCue.xcodeproj/project.pbxproj @@ -28,7 +28,7 @@ 46AD30EF2C266F1900486C25 /* NewProjectForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46AD30EE2C266F1900486C25 /* NewProjectForm.swift */; }; 46AD30F22C2672BD00486C25 /* ColorModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46AD30F12C2672BD00486C25 /* ColorModel.swift */; }; 46AD30F42C267D6400486C25 /* PreviewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46AD30F32C267D6400486C25 /* PreviewData.swift */; }; - 46AD30F62C26823B00486C25 /* AddNewCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46AD30F52C26823B00486C25 /* AddNewCardView.swift */; }; + 46AD30F62C26823B00486C25 /* EditCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46AD30F52C26823B00486C25 /* EditCardView.swift */; }; 46AD30F82C2689B900486C25 /* ProjectSlideshowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46AD30F72C2689B900486C25 /* ProjectSlideshowView.swift */; }; 46D3E13F2C26D6430060722E /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D3E13E2C26D6430060722E /* Constants.swift */; }; 46D3E1402C26D6430060722E /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46D3E13E2C26D6430060722E /* Constants.swift */; }; @@ -81,7 +81,7 @@ 46AD30EE2C266F1900486C25 /* NewProjectForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewProjectForm.swift; sourceTree = ""; }; 46AD30F12C2672BD00486C25 /* ColorModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorModel.swift; sourceTree = ""; }; 46AD30F32C267D6400486C25 /* PreviewData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewData.swift; sourceTree = ""; }; - 46AD30F52C26823B00486C25 /* AddNewCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddNewCardView.swift; sourceTree = ""; }; + 46AD30F52C26823B00486C25 /* EditCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditCardView.swift; sourceTree = ""; }; 46AD30F72C2689B900486C25 /* ProjectSlideshowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProjectSlideshowView.swift; sourceTree = ""; }; 46D3E13E2C26D6430060722E /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = ""; }; 46D3E1412C27DD5C0060722E /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; @@ -185,7 +185,7 @@ 46AD30BC2C26557500486C25 /* MainView.swift */, 46AD30EC2C266C0B00486C25 /* CardsView.swift */, 46AD30EE2C266F1900486C25 /* NewProjectForm.swift */, - 46AD30F52C26823B00486C25 /* AddNewCardView.swift */, + 46AD30F52C26823B00486C25 /* EditCardView.swift */, 46AD30F72C2689B900486C25 /* ProjectSlideshowView.swift */, 464787CA2C269CAF00A9C462 /* TeleprompterView.swift */, 46D3E1412C27DD5C0060722E /* SettingsView.swift */, @@ -326,7 +326,7 @@ 46AD30F82C2689B900486C25 /* ProjectSlideshowView.swift in Sources */, 46AD30EF2C266F1900486C25 /* NewProjectForm.swift in Sources */, 46D3E1462C27EC3B0060722E /* AutoScrollView.swift in Sources */, - 46AD30F62C26823B00486C25 /* AddNewCardView.swift in Sources */, + 46AD30F62C26823B00486C25 /* EditCardView.swift in Sources */, 464787CB2C269CAF00A9C462 /* TeleprompterView.swift in Sources */, 46AD30ED2C266C0B00486C25 /* CardsView.swift in Sources */, 46AD30BD2C26557500486C25 /* MainView.swift in Sources */, diff --git a/OnCue/View/CardsView.swift b/OnCue/View/CardsView.swift index 9a672f6..739c72d 100644 --- a/OnCue/View/CardsView.swift +++ b/OnCue/View/CardsView.swift @@ -10,8 +10,9 @@ import SwiftData struct CardsView: View { let project: OCProject - @State private var addNewCard = false + @State private var editCard = false @State private var newCardText = "" + @State private var editCardText = "" @Environment(\.modelContext) private var ctx @State private var showNoTextInNewCardError = false @@ -26,8 +27,12 @@ struct CardsView: View { Section { ForEach(project.sortedCards) { card in Text(card.content) + .swipeActions { + Button(role: .destructive) { } label: { Image(systemName: "trash.fill") } + .background(Color.red) + Button { editCardText = card.content; editCard.toggle() } label: { Image(systemName: "pencil") } + } } - .onDelete(perform: deleteItems) } header: { Text("\(project.cards.count) \(project.cards.count == 1 ? "Card" : "Cards")") } @@ -55,8 +60,8 @@ struct CardsView: View { } } - .sheet(isPresented: $addNewCard) { - AddNewCardView(completionHandler: addNewCard) + .sheet(isPresented: $editCard) { + EditCardView(text: $editCardText) { editCard(txt: $0, offset: []) } } .alert("No Text In Card", isPresented: $showNoTextInNewCardError) { Button("OK", role: .cancel) {} @@ -66,6 +71,10 @@ struct CardsView: View { } + func editCard(txt: String, offset: IndexSet) { + + } + func addNewCard(txt: String) { guard txt != "" else { showNoTextInNewCardError.toggle() diff --git a/OnCue/View/AddNewCardView.swift b/OnCue/View/EditCardView.swift similarity index 73% rename from OnCue/View/AddNewCardView.swift rename to OnCue/View/EditCardView.swift index 924815f..5534788 100644 --- a/OnCue/View/AddNewCardView.swift +++ b/OnCue/View/EditCardView.swift @@ -1,5 +1,5 @@ // -// AddNewCardView.swift +// EditCardView.swift // OnCue // // Created by Pradyun Setti on 22/06/2024. @@ -7,8 +7,8 @@ import SwiftUI -struct AddNewCardView: View { - @State private var newCardText = "" +struct EditCardView: View { + @Binding var text: String @Environment(\.dismiss) var dismiss let completionHandler: (String) -> Void @@ -16,10 +16,10 @@ struct AddNewCardView: View { var body: some View { NavigationView { Form { - TextEditor(text: $newCardText) + TextEditor(text: $text) .frame(minHeight: 100) } - .navigationTitle("Add New Card") + .navigationTitle("Edit Card") .navigationBarTitleDisplayMode(.inline) .toolbar { ToolbarItem(placement: .topBarLeading) { @@ -28,7 +28,7 @@ struct AddNewCardView: View { } ToolbarItem(placement: .topBarTrailing) { Button("Done") { - completionHandler(newCardText) + completionHandler(text) dismiss() } } @@ -38,5 +38,6 @@ struct AddNewCardView: View { } #Preview { - AddNewCardView(completionHandler: {_ in}) + @State var test = "" + return EditCardView(text: $test) { _ in } }