Add a little heart overlay for favorites
- ID
3c2551b- date
2023-06-08 12:10:21+00:00- author
Alex Chan <alex@alexwlchan.net>- parent
7dd10e9- message
Add a little heart overlay for favorites- changed files
2 files, 12 additions, 12 deletions
Changed files
BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift (1271) → BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift (1422)
diff --git a/BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift b/BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift
index 2eed657..dba8cd7 100644
--- a/BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift
+++ b/BlinkReviewer/BlinkReviewer/Views/ThumbnailImage.swift
@@ -6,13 +6,14 @@
//
import SwiftUI
+import Photos
/// Renders a square thumbnail for an image.
///
/// The image will be expanded to fill the square, and may be clipped
/// if the original aspect ratio isn't square.
struct ThumbnailImage: View {
- var thumbnail: NSImage
+ var asset: PHAsset
var isSelected: Bool
var size: CGFloat {
@@ -20,7 +21,7 @@ struct ThumbnailImage: View {
}
var body: some View {
- Image(nsImage: thumbnail)
+ Image(nsImage: asset.getThumbnail())
.resizable()
// Note: it's taken several attempts to get this working correctly;
// it behaves differently in the running app to the SwiftUI preview.
@@ -34,14 +35,13 @@ struct ThumbnailImage: View {
.scaledToFill()
.frame(width: size, height: size, alignment: .center)
.clipped()
- }
-}
-
-struct ThumbnailItem_Previews: PreviewProvider {
- static var previews: some View {
- ThumbnailImage(
- thumbnail: NSImage(named: "IMG_5934")!,
- isSelected: true
- )
+ .overlay(alignment: Alignment(horizontal: .leading, vertical: .bottom)) {
+ if (asset.isFavorite) {
+ Image(systemName: "heart.fill")
+ .foregroundColor(.white)
+ .padding(2)
+ .shadow(radius: 2.0)
+ }
+ }
}
}
BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift (2829) → BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift (2810)
diff --git a/BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift b/BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift
index fa3d18b..caa6486 100644
--- a/BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift
+++ b/BlinkReviewer/BlinkReviewer/Views/ThumbnailList.swift
@@ -32,7 +32,7 @@ struct ThumbnailList: View {
// the thumbnails every time you change position.
ForEach(Array(displayAssets().enumerated()), id: \.element.localIdentifier) { index, asset in
ThumbnailImage(
- thumbnail: asset.getThumbnail(),
+ asset: asset,
isSelected: displayAssets()[displaySelectedAssetIndex()].localIdentifier == asset.localIdentifier
).onTapGesture {
selectedAssetIndex = assets.count - 1 - index