From 78e14c65aaefa5229d4540cd2d006b837e691d59 Mon Sep 17 00:00:00 2001 From: dscyrescotti Date: Wed, 26 Jun 2024 21:16:08 +0700 Subject: [PATCH] feat: update photo preview --- .../Elements/Geometries/Stroke/Strokes/PenStroke.swift | 3 +-- Memola/Canvas/Tool/Core/Tool.swift | 8 ++++---- Memola/Features/Memo/PhotoPreview/PhotoItem.swift | 1 + Memola/Features/Memo/PhotoPreview/PhotoPreview.swift | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Memola/Canvas/Elements/Geometries/Stroke/Strokes/PenStroke.swift b/Memola/Canvas/Elements/Geometries/Stroke/Strokes/PenStroke.swift index d0cce4a..3f1aa47 100644 --- a/Memola/Canvas/Elements/Geometries/Stroke/Strokes/PenStroke.swift +++ b/Memola/Canvas/Elements/Geometries/Stroke/Strokes/PenStroke.swift @@ -61,12 +61,11 @@ final class PenStroke: Stroke, @unchecked Sendable { convenience init(object: StrokeObject) { let style = StrokeStyle(rawValue: object.style) ?? .marker - #warning("TODO: revisit here and check if there is any crash") self.init( bounds: object.bounds, color: object.color, style: style, - createdAt: object.createdAt ?? .now, // sometimes crash here + createdAt: object.createdAt ?? .now, thickness: object.thickness ) self.object = object diff --git a/Memola/Canvas/Tool/Core/Tool.swift b/Memola/Canvas/Tool/Core/Tool.swift index c68c7c3..18502f7 100644 --- a/Memola/Canvas/Tool/Core/Tool.swift +++ b/Memola/Canvas/Tool/Core/Tool.swift @@ -125,10 +125,10 @@ public class Tool: NSObject, ObservableObject { func selectPhoto(_ image: UIImage, for canvasID: NSManagedObjectID) { guard let (resizedImage, dimension) = resizePhoto(of: image) else { return } - let photoItem = bookmarkPhoto(of: resizedImage, in: dimension, with: canvasID) - isLoadingPhoto = false + let photoItem = bookmarkPhoto(of: resizedImage, and: image, in: dimension, with: canvasID) withAnimation { selectedPhotoItem = photoItem + isLoadingPhoto = false } } @@ -153,7 +153,7 @@ public class Tool: NSObject, ObservableObject { return (newImage, dimension) } - private func bookmarkPhoto(of image: UIImage, in dimension: CGSize, with canvasID: NSManagedObjectID) -> PhotoItem? { + private func bookmarkPhoto(of image: UIImage, and previewImage: UIImage, in dimension: CGSize, with canvasID: NSManagedObjectID) -> PhotoItem? { guard let data = image.jpegData(compressionQuality: 1) else { return nil } let fileManager = FileManager.default guard let directory = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else { @@ -180,7 +180,7 @@ public class Tool: NSObject, ObservableObject { var photoBookmark: PhotoItem? do { let bookmark = try file.bookmarkData(options: .minimalBookmark) - photoBookmark = PhotoItem(id: file, image: image, dimension: dimension, bookmark: bookmark) + photoBookmark = PhotoItem(id: file, image: image, previewImage: previewImage, dimension: dimension, bookmark: bookmark) } catch { NSLog("[Memola] - \(error.localizedDescription)") } diff --git a/Memola/Features/Memo/PhotoPreview/PhotoItem.swift b/Memola/Features/Memo/PhotoPreview/PhotoItem.swift index d38272e..79e2539 100644 --- a/Memola/Features/Memo/PhotoPreview/PhotoItem.swift +++ b/Memola/Features/Memo/PhotoPreview/PhotoItem.swift @@ -11,6 +11,7 @@ import Foundation struct PhotoItem: Identifiable, Equatable { var id: URL let image: UIImage + let previewImage: UIImage let dimension: CGSize let bookmark: Data diff --git a/Memola/Features/Memo/PhotoPreview/PhotoPreview.swift b/Memola/Features/Memo/PhotoPreview/PhotoPreview.swift index 1fcf43e..16e7399 100644 --- a/Memola/Features/Memo/PhotoPreview/PhotoPreview.swift +++ b/Memola/Features/Memo/PhotoPreview/PhotoPreview.swift @@ -12,10 +12,10 @@ struct PhotoPreview: View { @ObservedObject var tool: Tool var body: some View { - Image(uiImage: photoItem.image) + Image(uiImage: photoItem.previewImage) .resizable() - .scaledToFill() - .frame(width: 100, height: 100) + .scaledToFit() + .frame(height: 100) .cornerRadius(5) .overlay { RoundedRectangle(cornerRadius: 5)