From 5268d31581a14f4a5a6d109cbfb3e5ea34464716 Mon Sep 17 00:00:00 2001 From: leminlimez <59540996+leminlimez@users.noreply.github.com> Date: Wed, 11 Jun 2025 21:43:30 -0400 Subject: [PATCH] removing videos from selector --- .../Controllers/PosterBoardManager.swift | 6 ++- .../Views/NavigatorViews/VideoView.swift | 39 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/Pocket Poster/Controllers/PosterBoardManager.swift b/Pocket Poster/Controllers/PosterBoardManager.swift index b95fbf9..6170998 100644 --- a/Pocket Poster/Controllers/PosterBoardManager.swift +++ b/Pocket Poster/Controllers/PosterBoardManager.swift @@ -37,7 +37,11 @@ enum LoadState { case unknown, loading, loaded(Movie), failed } -struct LoadInfo: Identifiable { +struct LoadInfo: Identifiable, Equatable { + static func == (lhs: LoadInfo, rhs: LoadInfo) -> Bool { + lhs.id == rhs.id + } + var id = UUID() var loadState: LoadState } diff --git a/Pocket Poster/Views/NavigatorViews/VideoView.swift b/Pocket Poster/Views/NavigatorViews/VideoView.swift index a5000d2..de8ebf8 100644 --- a/Pocket Poster/Views/NavigatorViews/VideoView.swift +++ b/Pocket Poster/Views/NavigatorViews/VideoView.swift @@ -42,7 +42,13 @@ struct VideoView: View { RoundedRectangle(cornerRadius: 24) .stroke(.gray, lineWidth: 4) } + .overlay( + // Delete Button + DeleteButton(video: vid, onDelete: removeVideo), + alignment: .topLeading + ) } + .onDelete(perform: removeVideo) // MARK: Select Photo Option if selectedVideo == nil { @@ -99,4 +105,37 @@ struct VideoView: View { } } } + + func removeVideo(at offsets: IndexSet) { + withAnimation { + pbManager.videos.remove(atOffsets: offsets) + } + } +} + +struct DeleteButton: View { + @Environment(\.editMode) var editMode + + let video: LoadInfo + @ObservedObject var pbManager = PosterBoardManager.shared + let onDelete: (IndexSet) -> () + + var body: some View { + VStack { + Button(action: { + if let index = pbManager.videos.firstIndex(of: video) { + self.onDelete(IndexSet(integer: index)) + } + }) { + Image(systemName: "minus.circle") + .foregroundStyle(.black) + .font(.title2) + .background { + Circle() + .foregroundStyle(.white) + } + } + .offset(x: -8, y: -8) + } + } }