From 3650b9831fe66d3ac54768d80e3398d8f0038c56 Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Thu, 5 Dec 2024 22:09:58 +0900 Subject: [PATCH 01/11] =?UTF-8?q?[FIX]:=20=EC=9C=A0=EC=A6=88=EC=BC=80?= =?UTF-8?q?=EC=9D=B4=EC=8A=A4=EC=97=90=EC=84=9C=20=EC=88=9C=EC=84=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=EC=9D=B4=20=EB=90=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8D=98=20=EB=B2=84=EA=B7=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Domain/UseCase/VideoUseCase.swift | 46 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/Domain/UseCase/VideoUseCase.swift b/Domain/UseCase/VideoUseCase.swift index 07b9d83e..dc1b5453 100644 --- a/Domain/UseCase/VideoUseCase.swift +++ b/Domain/UseCase/VideoUseCase.swift @@ -15,7 +15,7 @@ import Interfaces public final class VideoUseCase { private var cancellables: Set = [] private var sharedVideos: [SharedVideo] = [] - private var editingVideos = [String: Video]() + private var editingVideos = [Video]() private let sharingVideoRepository: SharingVideoRepositoryInterface private let editVideoRepository: EditVideoRepositoryInterface @@ -61,7 +61,7 @@ extension VideoUseCase: EditVideoUseCaseInterface { public func fetchVideos() async -> [Video] { var videos = [Video]() let sortedVideos = sharedVideos - .sorted { $0.localUrl.path < $1.localUrl.path } + .sorted { $0.localUrl.lastPathComponent < $1.localUrl.lastPathComponent } for (index, video) in sortedVideos.enumerated() { let duration = await duration(url: video.localUrl) @@ -76,8 +76,8 @@ extension VideoUseCase: EditVideoUseCaseInterface { videos.append(video) } - videos.forEach { editingVideos[$0.url.path] = $0 } editVideoRepository.initializedVideo(videos) + editingVideos = videos return videos } @@ -87,7 +87,7 @@ extension VideoUseCase: EditVideoUseCaseInterface { } public func reArrangingVideo(url: URL, index: Int) { - let videos = updatedVideos(url: url, index: index) + let videos = updatedVideos(url: url, to: index) editVideoRepository.reArrangingVideo(videos) } } @@ -107,12 +107,18 @@ private extension VideoUseCase { .store(in: &cancellables) editVideoRepository.editedVideos - .subscribe(editedVideos) + .sink(with: self) { (owner, videos) in + print(videos) + owner.editingVideos = videos +// videos.forEach { owner.editingVideos[$0.url.path] = $0 } + owner.editedVideos.send(videos) + } .store(in: &cancellables) } func updatedVideo(url: URL, startTime: Double, endTime: Double) -> Video? { - guard let video = editingVideos[url.path] else { return nil } + guard let video = editingVideos.first(where: { $0.url.path == url.path }) + else { return nil } let newVideo = Video( url: video.url, @@ -125,28 +131,20 @@ private extension VideoUseCase { endTime: endTime ) - editingVideos[url.path] = video - return newVideo } - func updatedVideos(url: URL, index: Int) -> [Video] { - guard let video = editingVideos[url.path] else { return [] } - var newVideos = [Video]() - let beforeIndex = video.index - let adder = beforeIndex < index ? -1 : 1 - - let lowerBound = min(beforeIndex, index) - let upperBound = min(beforeIndex, index) - - let videos = editingVideos.values - .filter { $0.index >= lowerBound && $0.index < upperBound } - .map { updatedVideo(video: $0, index: index + adder) } + func updatedVideos(url: URL, to index: Int) -> [Video] { + guard let oldIndex = editingVideos.firstIndex(where: { $0.url.lastPathComponent == url.lastPathComponent }) + else { return editingVideos } - newVideos.append(contentsOf: videos) - newVideos.append(updatedVideo(video: video, index: index)) - newVideos.forEach { editingVideos[$0.url.path] = $0 } + let video = editingVideos.remove(at: oldIndex) + editingVideos.insert(video, at: index) + let newVideos = editingVideos.enumerated().map { (index, video) in + updatedVideo(video: video, index: index) + } + return newVideos } @@ -154,7 +152,7 @@ private extension VideoUseCase { return Video( url: video.url, name: video.name, - index: video.index, + index: index, duration: video.duration, author: video.author, editor: video.editor, From 356b7d8ff4576bf7f28bb1b0b4c3e67360dd19c7 Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Thu, 5 Dec 2024 22:10:59 +0900 Subject: [PATCH 02/11] =?UTF-8?q?[FEAT]:=20VideoPresentationModel=EC=9D=84?= =?UTF-8?q?=20=EB=B9=84=EA=B5=90=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8A=94?= =?UTF-8?q?=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Feature/PresentationModel/VideoPresentationModel.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Feature/Feature/PresentationModel/VideoPresentationModel.swift b/Feature/Feature/PresentationModel/VideoPresentationModel.swift index a7b0edb8..99d8a9aa 100644 --- a/Feature/Feature/PresentationModel/VideoPresentationModel.swift +++ b/Feature/Feature/PresentationModel/VideoPresentationModel.swift @@ -16,3 +16,10 @@ struct VideoPresentationModel { let endTime: Double let frameImage: UIImageWrapper } + +extension VideoPresentationModel: Equatable { + static func == (lhs: VideoPresentationModel, rhs: VideoPresentationModel) -> Bool { + if lhs.url == rhs.url { return true } + return false + } +} From b7b655e2110dae5f85427dec78a4975d4ab5c8de Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Thu, 5 Dec 2024 22:11:30 +0900 Subject: [PATCH 03/11] =?UTF-8?q?[FEAT]:=20=EA=B3=B5=EC=9C=A0=20=ED=8E=B8?= =?UTF-8?q?=EC=A7=91=20=ED=99=94=EB=A9=B4=EC=97=90=EC=84=9C=20=EB=8F=99?= =?UTF-8?q?=EC=98=81=EC=83=81=EC=9D=98=20=EC=88=9C=EC=84=9C=EB=A5=BC=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=ED=95=98=EB=8A=94=20=EC=9D=B4=EB=B2=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SharedVideoEditView/ViewModel/SharedVideoEditViewInput.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewInput.swift b/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewInput.swift index b269983f..7ca1f148 100644 --- a/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewInput.swift +++ b/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewInput.swift @@ -13,4 +13,5 @@ enum SharedVideoEditViewInput { case sliderModelLowerValueDidChanged(value: Double) case sliderModelUpperValueDidChanged(value: Double) case sliderEditSaveButtonDidTapped + case timelineCellOrderDidChanged(to: Int, url: URL) } From fde4bb986caf2b1d078eb628bba12c603c8b3991 Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Thu, 5 Dec 2024 22:12:14 +0900 Subject: [PATCH 04/11] =?UTF-8?q?[FEAT]:=20=EA=B3=B5=EC=9C=A0=20=ED=8E=B8?= =?UTF-8?q?=EC=A7=91=20=ED=99=94=EB=A9=B4=20=EB=B7=B0=EC=BB=A8=ED=8A=B8?= =?UTF-8?q?=EB=A1=A4=EB=9F=AC=EC=97=90=20=EC=88=9C=EC=84=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SharedVideoEditViewController.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Feature/Feature/SharedVideoEditView/SharedVideoEditViewController.swift b/Feature/Feature/SharedVideoEditView/SharedVideoEditViewController.swift index 3d428872..02da1e83 100644 --- a/Feature/Feature/SharedVideoEditView/SharedVideoEditViewController.swift +++ b/Feature/Feature/SharedVideoEditView/SharedVideoEditViewController.swift @@ -453,14 +453,24 @@ extension SharedVideoEditViewController: UICollectionViewDropDelegate { snapshot.deleteItems(draggedItems) let targetIndex = destinationIndexPath.item + let currentItems = snapshot.itemIdentifiers var updatedItems = currentItems updatedItems.insert(contentsOf: draggedItems, at: targetIndex) - + applySnapShot(with: updatedItems) + + guard let reorderItem = videoTimelineDataSource.itemIdentifier(for: destinationIndexPath) else { return } + collectionView.scrollToItem( + at: destinationIndexPath, + at: .centeredHorizontally, + animated: true + ) + coordinator.items.forEach { item in coordinator.drop(item.dragItem, toItemAt: destinationIndexPath) } + input.send(.timelineCellOrderDidChanged(to: targetIndex, url: reorderItem.url)) } } From f8d1679575b0567ad261dd9fb550aee32c6562f5 Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Thu, 5 Dec 2024 22:13:18 +0900 Subject: [PATCH 05/11] =?UTF-8?q?[FEAT]:=20=EA=B3=B5=EC=9C=A0=20=ED=8E=B8?= =?UTF-8?q?=EC=A7=91=20=ED=99=94=EB=A9=B4=EC=9D=98=20=EB=B7=B0=EB=AA=A8?= =?UTF-8?q?=EB=8D=B8=EC=9D=B4=20=EB=B7=B0=EC=9D=98=20=EB=8F=99=EC=98=81?= =?UTF-8?q?=EC=83=81=20=EC=88=9C=EC=84=9C=20=EB=B3=80=EA=B2=BD=20=EC=9D=B4?= =?UTF-8?q?=EB=B2=A4=ED=8A=B8=EB=A5=BC=20=EC=B2=98=EB=A6=AC=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModel/SharedVideoEditViewModel.swift | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift b/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift index 18b30ac8..77cfa9f7 100644 --- a/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift +++ b/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift @@ -49,6 +49,8 @@ extension SharedVideoEditViewModel { startTime: currentTappedVideoPresentationModel.startTime, endTime: currentTappedVideoPresentationModel.endTime ) + case .timelineCellOrderDidChanged(let to, let url): + owner.videoOrderChanged(to: to, url: url) } } .store(in: &cancellables) @@ -74,14 +76,19 @@ private extension SharedVideoEditViewModel { else { return } owner.setTappedVideoPresentationModel(model: model) } - // Timeline 순서 편집 처리 - let newTimelineItems = await videos.asyncCompactMap { video in + let orderdVideos = videos.sorted { $0.index < $1.index } + var timeLineItem: [VideoTimelineItem] = [] + for video in orderdVideos { let asset = AVAsset(url: video.url) owner.appendVideoPresentationModels(video: video) - return await owner.makeVideoTimelineItem(with: video.url, asset: asset) + async let item = owner.makeVideoTimelineItem(with: video.url, asset: asset) + await timeLineItem.append(item) } - owner.output.send(.timelineItemsDidChanged(items: newTimelineItems)) +// let newTimelineItems = await orderdVideos.asyncCompactMap { video in +// return await +// } + owner.output.send(.timelineItemsDidChanged(items: timeLineItem)) } } .store(in: &cancellables) @@ -236,4 +243,15 @@ private extension SharedVideoEditViewModel { setTappedVideoPresentationModel(model: tappedModel) } } + + func videoOrderChanged( + to: Int, + url: URL + ) { + guard let index = videoPresentationModels.firstIndex(where: { $0.url == url }) + else { return } + let video = videoPresentationModels.remove(at: index) + videoPresentationModels.insert(video, at: to) + usecase.reArrangingVideo(url: video.url, index: to) + } } From b48c6842f383dd8649e2593c02a35929bc7ae194 Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Thu, 5 Dec 2024 22:14:56 +0900 Subject: [PATCH 06/11] =?UTF-8?q?[FIX]:=20=EA=B5=AC=EA=B0=84=20=ED=8E=B8?= =?UTF-8?q?=EC=A7=91=20=EC=A0=80=EC=9E=A5=20=EB=B2=84=ED=8A=BC=EC=9D=84=20?= =?UTF-8?q?=EB=88=8C=EB=9F=AC=EB=8F=84=20=EB=B7=B0=EB=AA=A8=EB=8D=B8?= =?UTF-8?q?=EC=97=90=20=EB=B0=98=EC=98=81=EB=90=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8D=98=20=EB=B2=84=EA=B7=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModel/SharedVideoEditViewModel.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift b/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift index 77cfa9f7..5f0f3037 100644 --- a/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift +++ b/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift @@ -43,7 +43,11 @@ extension SharedVideoEditViewModel { owner.updateTappedVideoPresentationModel(upperValue: value) case .sliderEditSaveButtonDidTapped: guard let currentTappedVideoPresentationModel = owner.tappedVideoPresentationModel else { return } - + if let index = owner.videoPresentationModels.firstIndex(where: { + $0 == currentTappedVideoPresentationModel + }) { + owner.videoPresentationModels[index] = currentTappedVideoPresentationModel + } owner.usecase.trimmingVideo( url: currentTappedVideoPresentationModel.url, startTime: currentTappedVideoPresentationModel.startTime, From b1569c0db639b42e6ef458a96aca0f4f2231c52c Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Thu, 5 Dec 2024 22:15:23 +0900 Subject: [PATCH 07/11] =?UTF-8?q?[FIX]:=20=ED=81=B4=EB=9E=98=EC=8A=A4?= =?UTF-8?q?=EC=9D=B8=20URL=EC=9D=84=20=EB=B9=84=EA=B5=90=ED=95=98=EA=B3=A0?= =?UTF-8?q?=20=EC=9E=88=EC=96=B4=20=EB=B9=84=EA=B5=90=EB=90=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8D=98=20=EB=B2=84=EA=B7=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModel/SharedVideoEditViewModel.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift b/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift index 5f0f3037..d539d49b 100644 --- a/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift +++ b/Feature/Feature/SharedVideoEditView/ViewModel/SharedVideoEditViewModel.swift @@ -75,7 +75,7 @@ private extension SharedVideoEditViewModel { if let currentTappedVideoPresentationModel = owner.tappedVideoPresentationModel { guard let tappedVideo = videos.first( - where: { $0.url == currentTappedVideoPresentationModel.url }), + where: { $0.url.path == currentTappedVideoPresentationModel.url.path }), let model = await owner.makeVideoPresentationModel(video: tappedVideo) else { return } owner.setTappedVideoPresentationModel(model: model) From e09c9d5d14f7ae075e34370de0570d425df53f36 Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Thu, 5 Dec 2024 22:41:13 +0900 Subject: [PATCH 08/11] =?UTF-8?q?[FEAT]:=20=EC=85=80=20=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=20=EC=8B=9C=20=EB=B6=80=EB=93=9C=EB=9F=AC=EC=9A=B4=20=EC=95=A0?= =?UTF-8?q?=EB=8B=88=EB=A9=94=EC=9D=B4=EC=85=98=20=EB=B0=8F=20=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=ED=95=9C=20=EC=85=80=EC=9D=84=20=EA=B0=80=EC=9A=B4?= =?UTF-8?q?=EB=8D=B0=20=ED=99=94=EB=A9=B4=EC=9C=BC=EB=A1=9C=20=ED=8F=AC?= =?UTF-8?q?=EC=BB=A4=EC=8B=B1=ED=95=98=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SharedVideoEditViewController.swift | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Feature/Feature/SharedVideoEditView/SharedVideoEditViewController.swift b/Feature/Feature/SharedVideoEditView/SharedVideoEditViewController.swift index 02da1e83..c00d907e 100644 --- a/Feature/Feature/SharedVideoEditView/SharedVideoEditViewController.swift +++ b/Feature/Feature/SharedVideoEditView/SharedVideoEditViewController.swift @@ -458,19 +458,20 @@ extension SharedVideoEditViewController: UICollectionViewDropDelegate { var updatedItems = currentItems updatedItems.insert(contentsOf: draggedItems, at: targetIndex) + coordinator.items.forEach { item in + coordinator.drop(item.dragItem, toItemAt: destinationIndexPath) + } + applySnapShot(with: updatedItems) - guard let reorderItem = videoTimelineDataSource.itemIdentifier(for: destinationIndexPath) else { return } - collectionView.scrollToItem( at: destinationIndexPath, at: .centeredHorizontally, animated: true ) - coordinator.items.forEach { item in - coordinator.drop(item.dragItem, toItemAt: destinationIndexPath) - } + guard let reorderItem = videoTimelineDataSource.itemIdentifier(for: destinationIndexPath) else { return } + input.send(.timelineCellOrderDidChanged(to: targetIndex, url: reorderItem.url)) } } From 09e03d3937ed6369bbe96c597c9e8dfd86c5da72 Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Thu, 5 Dec 2024 23:06:43 +0900 Subject: [PATCH 09/11] =?UTF-8?q?[REFACTOR]:=20=EB=B6=88=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EC=BD=94=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Domain/UseCase/VideoUseCase.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/Domain/UseCase/VideoUseCase.swift b/Domain/UseCase/VideoUseCase.swift index dc1b5453..23dabe41 100644 --- a/Domain/UseCase/VideoUseCase.swift +++ b/Domain/UseCase/VideoUseCase.swift @@ -108,9 +108,7 @@ private extension VideoUseCase { editVideoRepository.editedVideos .sink(with: self) { (owner, videos) in - print(videos) owner.editingVideos = videos -// videos.forEach { owner.editingVideos[$0.url.path] = $0 } owner.editedVideos.send(videos) } .store(in: &cancellables) From f897e0c47b6a4dcf694d07cd6eeea4c874d0698b Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Fri, 6 Dec 2024 00:59:50 +0900 Subject: [PATCH 10/11] =?UTF-8?q?[FIX]:=20=EB=A6=AC=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=EC=9D=98=20=EC=9D=B8=EB=8D=B1=EC=8A=A4=EB=A5=BC=20=EA=B8=B0?= =?UTF-8?q?=EB=B0=98=EC=9C=BC=EB=A1=9C=20=EC=83=88=20=EB=B9=84=EB=94=94?= =?UTF-8?q?=EC=98=A4=20=EB=AA=A9=EB=A1=9D=20=EC=83=9D=EC=84=B1=20=EB=B0=8F?= =?UTF-8?q?=20=EB=8C=80=EC=9E=85=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Domain/UseCase/VideoUseCase.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Domain/UseCase/VideoUseCase.swift b/Domain/UseCase/VideoUseCase.swift index 23dabe41..4efe43dd 100644 --- a/Domain/UseCase/VideoUseCase.swift +++ b/Domain/UseCase/VideoUseCase.swift @@ -139,10 +139,11 @@ private extension VideoUseCase { let video = editingVideos.remove(at: oldIndex) editingVideos.insert(video, at: index) - let newVideos = editingVideos.enumerated().map { (index, video) in + let listIndexOrderedVideo = editingVideos.enumerated().map { (index, video) in updatedVideo(video: video, index: index) } - + + editingVideos = listIndexOrderedVideo return newVideos } From 119ef68c328d3828fae527c28aec44913f4f8e2f Mon Sep 17 00:00:00 2001 From: 051198Hz Date: Fri, 6 Dec 2024 01:00:04 +0900 Subject: [PATCH 11/11] =?UTF-8?q?[REFACTOR]:=20=EC=A3=BC=EC=84=9D=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Data/Data/Element/EditVideoElement.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/Data/Data/Element/EditVideoElement.swift b/Data/Data/Element/EditVideoElement.swift index 334541be..7924ac05 100644 --- a/Data/Data/Element/EditVideoElement.swift +++ b/Data/Data/Element/EditVideoElement.swift @@ -18,14 +18,12 @@ struct EditVideoElement: Codable, Hashable { let endTime: Double func hash(into hasher: inout Hasher) { -// hasher.combine(url.lastPathComponent) hasher.combine(name) } static func == (lhs: EditVideoElement, rhs: EditVideoElement) -> Bool { return lhs.name == rhs.name } - // lhs.url.lastPathComponent == rhs.url.lastPathComponent && } struct User: Codable, Hashable {