// // StarredWidget.swift // NetNewsWire Widget Extension // // Created by Stuart Breckenridge on 18/11/20. // Copyright © 2020 Ranchero Software. All rights reserved. // import WidgetKit import SwiftUI struct StarredWidgetView : View { @Environment(\.widgetFamily) var family: WidgetFamily @Environment(\.sizeCategory) var sizeCategory: ContentSizeCategory var entry: Provider.Entry var body: some View { if entry.widgetData.starredArticles.count == 0 { inboxZero .widgetURL(WidgetDeepLink.starred.url) } else { GeometryReader { metrics in HStack(alignment: .top, spacing: 4) { VStack(alignment: .leading, spacing: -4) { starredImage Spacer() Text(L10n.localizedCount(entry.widgetData.currentStarredCount)).bold().font(.callout).minimumScaleFactor(0.5).lineLimit(1) Text(L10n.starred.lowercased()).bold().font(Font.system(.footnote).lowercaseSmallCaps()).minimumScaleFactor(0.5).lineLimit(1) } .frame(width: metrics.size.width * 0.15) .padding(.trailing, 4) VStack(alignment:.leading, spacing: 0) { ForEach(0.. Int { var reduceAccessibilityCount: Int = 0 if SizeCategories().isSizeCategoryLarge(category: sizeCategory) { reduceAccessibilityCount = 1 } if family == .systemLarge { return entry.widgetData.currentStarredCount >= 7 ? (7 - reduceAccessibilityCount) : entry.widgetData.currentStarredCount } return entry.widgetData.currentStarredCount >= 3 ? (3 - reduceAccessibilityCount) : entry.widgetData.currentStarredCount } var inboxZero: some View { VStack(alignment: .center) { Spacer() Image(systemName: "star.fill") .resizable() .aspectRatio(contentMode: .fit) .frame(width: 30) .foregroundColor(.yellow) Text(L10n.starredWidgetNoItemsTitle) .font(.headline) .foregroundColor(.primary) Text(L10n.starredWidgetNoItems) .font(.caption) .foregroundColor(.gray) Spacer() } .multilineTextAlignment(.center) .padding() } }