Skip to content

Commit cde98bd

Browse files
committed
feat: done preview
1 parent 999b26d commit cde98bd

File tree

4 files changed

+47
-36
lines changed

4 files changed

+47
-36
lines changed

example/src/App.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export default function App() {
4545

4646
const onPicker = async () => {
4747
try {
48-
const singleSelectedMode = true;
48+
const singleSelectedMode = false;
4949

5050
const response = await openPicker({
5151
selectedAssets: images,

ios/CustomPhotoPicker/Cell.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class Cell: TLPhotoCollectionViewCell {
3131

3232
// Xử lý sự kiện Long Press
3333
@objc private func handleLongPress(_ gestureRecognizer: UILongPressGestureRecognizer) {
34-
guard gestureRecognizer.state == .began
34+
guard gestureRecognizer.state == .began && !self.isCameraCell
3535
else {
3636
return
3737
}

ios/CustomPhotoPicker/CustomPhotoPickerViewController.swift

Lines changed: 44 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,37 +10,11 @@ import Foundation
1010
import Photos
1111
import TLPhotoPicker
1212

13-
class CustomPhotoPickerViewController: TLPhotosPickerViewController, ViewerControllerDataSource {
13+
class CustomPhotoPickerViewController: TLPhotosPickerViewController {
1414
var dismissPhotoPicker: ((_ withTLPHAssets: [TLPHAsset]) -> Void)?
1515

1616
var viewerController: ViewerController?
1717

18-
func numberOfItemsInViewerController(_: ViewerController) -> Int {
19-
var count = 0
20-
21-
for section in 0 ..< collectionView.numberOfSections {
22-
count += collectionView.numberOfItems(inSection: section)
23-
}
24-
25-
return count
26-
}
27-
28-
func viewerController(_: ViewerController, viewableAt indexPath: IndexPath) -> Viewable {
29-
let viewable = PreviewItem(id: UUID().uuidString)
30-
31-
if let cell = collectionView?.cellForItem(at: indexPath) as? Cell, let placeholder = cell.imageView?.image, let asset = cell.asset {
32-
viewable.assetID = asset.localIdentifier
33-
34-
if asset.duration > 0 {
35-
viewable.type = .video
36-
}
37-
38-
viewable.placeholder = placeholder
39-
}
40-
41-
return viewable
42-
}
43-
4418
override func viewDidLoad() {
4519
super.viewDidLoad()
4620
if config.isPreview {
@@ -69,11 +43,11 @@ class CustomPhotoPickerViewController: TLPhotosPickerViewController, ViewerContr
6943
let footerView = PreviewFooterView()
7044
footerView.viewDelegate = self
7145

72-
self.viewerController?.delegate = self
73-
7446
self.viewerController!.footerView = footerView
7547
}
7648

49+
self.viewerController?.delegate = self
50+
7751
self.present(self.viewerController!, animated: true, completion: nil)
7852
}
7953
}
@@ -113,6 +87,34 @@ class CustomPhotoPickerViewController: TLPhotosPickerViewController, ViewerContr
11387
}
11488
}
11589

90+
extension CustomPhotoPickerViewController: ViewerControllerDataSource {
91+
func numberOfItemsInViewerController(_: ViewerController) -> Int {
92+
var count = 0
93+
94+
for section in 0 ..< collectionView.numberOfSections {
95+
count += collectionView.numberOfItems(inSection: section)
96+
}
97+
98+
return count
99+
}
100+
101+
func viewerController(_: ViewerController, viewableAt indexPath: IndexPath) -> Viewable {
102+
let viewable = PreviewItem(id: UUID().uuidString)
103+
104+
if let cell = collectionView?.cellForItem(at: indexPath) as? Cell, let placeholder = cell.imageView?.image, let asset = cell.asset {
105+
viewable.assetID = asset.localIdentifier
106+
107+
if asset.duration > 0 {
108+
viewable.type = .video
109+
}
110+
111+
viewable.placeholder = placeholder
112+
}
113+
114+
return viewable
115+
}
116+
}
117+
116118
extension CustomPhotoPickerViewController: PreviewHeaderViewDelegate {
117119
func headerView(_: PreviewHeaderView, didPressClearButton _: UIButton) {
118120
self.viewerController?.dismiss(nil)
@@ -235,11 +237,22 @@ extension CustomPhotoPickerViewController: PreviewFooterViewDelegate {
235237

236238
extension CustomPhotoPickerViewController: ViewerControllerDelegate {
237239
func viewerController(_ viewerController: ViewerController, didChangeFocusTo indexPath: IndexPath) {
238-
guard let footerView = viewerController.footerView as? PreviewFooterView else { return }
240+
if indexPath.row == 0 {
241+
let cell = self.collectionView.cellForItem(at: indexPath) as? TLPhotoCollectionViewCell
242+
243+
if cell?.isCameraCell == true {
244+
viewerController.dismiss(nil)
245+
return
246+
}
247+
}
248+
249+
guard let footerView = viewerController.footerView as? PreviewFooterView
250+
else { return }
239251

240252
guard let button = footerView.selectButton else { return }
241253

242-
guard let cell = self.collectionView.cellForItem(at: indexPath) as? TLPhotoCollectionViewCell, let localID = cell.asset?.localIdentifier else { return }
254+
guard let cell = self.collectionView.cellForItem(at: indexPath) as? TLPhotoCollectionViewCell, let localID = cell.asset?.localIdentifier
255+
else { return }
243256

244257
guard let asset = TLPHAsset.asset(with: localID) else { return }
245258

ios/Preview/PreviewItem.swift

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,12 @@ class PreviewItem: Viewable {
2727
}
2828

2929
func media(_ completion: @escaping (_ image: UIImage?, _ error: NSError?) -> Void) {
30-
if let assetID = self.assetID {
30+
if let assetID = assetID {
3131
if let asset = PHAsset.fetchAssets(withLocalIdentifiers: [assetID], options: nil).firstObject {
3232
PreviewItem.image(for: asset) { image in
3333
completion(image, nil)
3434
}
3535
}
36-
} else {
37-
completion(self.placeholder, nil)
3836
}
3937
}
4038

0 commit comments

Comments
 (0)