2023-03-11 18:30:33 +01:00
|
|
|
//
|
|
|
|
// https://mczachurski.dev
|
|
|
|
// Copyright © 2023 Marcin Czachurski and the repository contributors.
|
2023-03-28 10:35:38 +02:00
|
|
|
// Licensed under the Apache License 2.0.
|
2023-03-11 18:30:33 +01:00
|
|
|
//
|
2023-04-01 12:10:59 +02:00
|
|
|
|
2023-03-11 18:30:33 +01:00
|
|
|
import SwiftUI
|
|
|
|
import WidgetKit
|
2023-04-07 16:59:18 +02:00
|
|
|
import EnvironmentKit
|
2023-03-11 18:30:33 +01:00
|
|
|
|
2023-05-01 07:50:24 +02:00
|
|
|
struct PhotoMediumWidgetView: View {
|
|
|
|
var entry: PhotoProvider.Entry
|
2023-03-11 18:30:33 +01:00
|
|
|
|
|
|
|
var body: some View {
|
|
|
|
if let uiImage = entry.image, let uiAvatar = entry.avatar {
|
2023-03-12 06:51:14 +01:00
|
|
|
self.getWidgetBody(uiImage: Image(uiImage: uiImage), uiAvatar: Image(uiImage: uiAvatar))
|
2023-03-11 18:30:33 +01:00
|
|
|
} else {
|
2023-03-12 06:51:14 +01:00
|
|
|
self.getWidgetBody(uiImage: Image("Placeholder"), uiAvatar: Image("Avatar"))
|
|
|
|
.unredacted()
|
|
|
|
}
|
|
|
|
}
|
2023-04-01 12:10:59 +02:00
|
|
|
|
2023-03-12 06:51:14 +01:00
|
|
|
@ViewBuilder
|
|
|
|
private func getWidgetBody(uiImage: Image, uiAvatar: Image) -> some View {
|
|
|
|
VStack {
|
|
|
|
Spacer()
|
|
|
|
HStack {
|
|
|
|
uiAvatar
|
2023-04-10 21:53:15 +02:00
|
|
|
.avatar(size: 24)
|
2023-03-11 18:30:33 +01:00
|
|
|
|
2023-03-12 06:51:14 +01:00
|
|
|
Text(entry.displayName ?? "")
|
2023-04-11 07:41:57 +02:00
|
|
|
.font(.system(size: 15))
|
2023-04-10 21:53:15 +02:00
|
|
|
.foregroundColor(.white.opacity(0.8))
|
2023-03-12 06:51:14 +01:00
|
|
|
.fontWeight(.semibold)
|
2023-03-12 07:46:14 +01:00
|
|
|
.shadow(color: .black, radius: 2)
|
2023-03-12 06:51:14 +01:00
|
|
|
Spacer()
|
2023-03-11 18:30:33 +01:00
|
|
|
}
|
|
|
|
.padding(.leading, 8)
|
|
|
|
.padding(.bottom, 8)
|
|
|
|
}
|
2023-09-16 10:39:21 +02:00
|
|
|
.widgetBackground {
|
2023-03-12 06:51:14 +01:00
|
|
|
uiImage
|
|
|
|
.resizable()
|
|
|
|
.aspectRatio(contentMode: .fill)
|
|
|
|
.widgetURL(URL(string: "\(AppConstants.statusUri)/\(entry.statusId ?? "")"))
|
|
|
|
}
|
2023-03-11 18:30:33 +01:00
|
|
|
}
|
|
|
|
}
|