-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
Copy pathHomeWidgetThisWeek.swift
64 lines (60 loc) · 2.53 KB
/
HomeWidgetThisWeek.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import WidgetKit
import SwiftUI
import JetpackStatsWidgetsCore
import TracksMini
struct HomeWidgetThisWeek: Widget {
private let tracks = Tracks()
static let secondsPerDay = 86400.0
private let placeholderContent = HomeWidgetThisWeekData(
siteID: 0,
siteName: "My WordPress Site",
url: "",
timeZone: TimeZone.current,
date: Date(),
stats: ThisWeekWidgetStats(days: [
ThisWeekWidgetDay(
date: Date(),
viewsCount: 130,
dailyChangePercent: -0.22),
ThisWeekWidgetDay(
date: Date(timeIntervalSinceNow: -Self.secondsPerDay),
viewsCount: 250,
dailyChangePercent: -0.06),
ThisWeekWidgetDay(
date: Date(timeIntervalSinceNow: -(Self.secondsPerDay * 2)),
viewsCount: 260,
dailyChangePercent: 0.86),
ThisWeekWidgetDay(
date: Date(timeIntervalSinceNow: -(Self.secondsPerDay * 3)),
viewsCount: 140,
dailyChangePercent: -0.3),
ThisWeekWidgetDay(
date: Date(timeIntervalSinceNow: -(Self.secondsPerDay * 4)),
viewsCount: 200,
dailyChangePercent: -0.46),
ThisWeekWidgetDay(
date: Date(timeIntervalSinceNow: -(Self.secondsPerDay * 5)),
viewsCount: 370,
dailyChangePercent: 0.19),
ThisWeekWidgetDay(
date: Date(timeIntervalSinceNow: -(Self.secondsPerDay * 6)),
viewsCount: 310,
dailyChangePercent: 0.07)
])
)
var body: some WidgetConfiguration {
IntentConfiguration(
kind: WidgetStatsConfiguration.Kind.homeThisWeek.rawValue,
intent: SelectSiteIntent.self,
provider: SiteListProvider<HomeWidgetThisWeekData>(service: StatsWidgetsService(),
placeholderContent: placeholderContent,
widgetKind: .thisWeek)
) { (entry: StatsWidgetEntry) -> StatsWidgetsView in
return StatsWidgetsView(timelineEntry: entry)
}
.configurationDisplayName(LocalizableStrings.thisWeekWidgetTitle)
.description(LocalizableStrings.thisWeekPreviewDescription)
.supportedFamilies([.systemMedium, .systemLarge])
.iOS17ContentMarginsDisabled() /// Temporarily disable additional iOS17 margins for widgets
}
}