Add widget for lockscreen (IOS-37)
This commit is contained in:
parent
48ab745b5c
commit
50945f5285
|
@ -1,13 +1,26 @@
|
||||||
// Copyright © 2023 Mastodon gGmbH. All rights reserved.
|
// Copyright © 2023 Mastodon gGmbH. All rights reserved.
|
||||||
|
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
import MastodonLocalization
|
||||||
|
|
||||||
struct HashtagWidgetView: View {
|
struct HashtagWidgetView: View {
|
||||||
|
|
||||||
var entry: HashtagWidgetProvider.Entry
|
var entry: HashtagWidgetProvider.Entry
|
||||||
|
|
||||||
|
@Environment(\.widgetFamily) var family
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
//TODO: Lockscreen has a different design
|
switch family {
|
||||||
|
case .systemMedium, .systemLarge:
|
||||||
|
viewForMediumWidget()
|
||||||
|
case .accessoryRectangular:
|
||||||
|
viewForRectangularAccessory()
|
||||||
|
default:
|
||||||
|
Text(L10n.Widget.Common.unsupportedWidgetFamily)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func viewForMediumWidget() -> some View {
|
||||||
VStack(alignment: .leading, spacing: 0) {
|
VStack(alignment: .leading, spacing: 0) {
|
||||||
HStack {
|
HStack {
|
||||||
Text(entry.hashtag.accountName)
|
Text(entry.hashtag.accountName)
|
||||||
|
@ -48,4 +61,27 @@ struct HashtagWidgetView: View {
|
||||||
}
|
}
|
||||||
.padding(EdgeInsets(top: 12, leading: 29, bottom: 12, trailing: 29))
|
.padding(EdgeInsets(top: 12, leading: 29, bottom: 12, trailing: 29))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func viewForRectangularAccessory() -> some View {
|
||||||
|
VStack(alignment: .leading, spacing: 1) {
|
||||||
|
HStack(spacing: 3) {
|
||||||
|
Image("BrandIcon")
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
Text("|")
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.font(.system(size: UIFontMetrics.default.scaledValue(for: 9)))
|
||||||
|
Text(entry.hashtag.hashtag)
|
||||||
|
.foregroundColor(.secondary)
|
||||||
|
.font(.system(size: UIFontMetrics.default.scaledValue(for: 13)))
|
||||||
|
.fontWeight(.heavy)
|
||||||
|
|
||||||
|
}
|
||||||
|
Text(entry.hashtag.content)
|
||||||
|
.foregroundColor(.primary)
|
||||||
|
.font(.system(size: UIFontMetrics.default.scaledValue(for: 16)))
|
||||||
|
.fontWeight(.medium)
|
||||||
|
.lineLimit(3)
|
||||||
|
Spacer()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue