@@ -44,6 +44,10 @@ struct StoreInfoData {
4444 /// Conversion at the range (eg: today)
4545 ///
4646 var conversion : String
47+
48+ /// Time when the widget was last refreshed (eg: 10.24PM)
49+ ///
50+ var updatedTime : String
4751}
4852
4953/// Type that provides data entries to the widget system.
@@ -67,7 +71,8 @@ final class StoreInfoProvider: TimelineProvider {
6771 revenue: Self . formattedAmountString ( for: 132.234 , with: dependencies? . storeCurrencySettings) ,
6872 visitors: " 67 " ,
6973 orders: " 23 " ,
70- conversion: Self . formattedConversionString ( for: 23 / 67 ) ) )
74+ conversion: Self . formattedConversionString ( for: 23 / 67 ) ,
75+ updatedTime: Self . currentFormattedTime ( ) ) )
7176 }
7277
7378 /// Quick Snapshot. Required when previewing the widget.
@@ -94,7 +99,8 @@ final class StoreInfoProvider: TimelineProvider {
9499 revenue: Self . formattedAmountString ( for: todayStats. revenue, with: dependencies. storeCurrencySettings) ,
95100 visitors: " \( todayStats. totalVisitors) " ,
96101 orders: " \( todayStats. totalOrders) " ,
97- conversion: Self . formattedConversionString ( for: todayStats. conversion) ) )
102+ conversion: Self . formattedConversionString ( for: todayStats. conversion) ,
103+ updatedTime: Self . currentFormattedTime ( ) ) )
98104
99105 let reloadDate = Date ( timeIntervalSinceNow: reloadInterval)
100106 let timeline = Timeline < StoreInfoEntry > ( entries: [ entry] , policy: . after( reloadDate) )
@@ -160,6 +166,15 @@ private extension StoreInfoProvider {
160166 return numberFormatter. string ( from: conversionRate as NSNumber ) ?? Constants . valuePlaceholderText
161167 }
162168
169+ /// Returns the current time formatted as `10:24 PM` or `22:24` depending on the phone settings.
170+ ///
171+ static func currentFormattedTime( ) -> String {
172+ let timeFormatter = DateFormatter ( )
173+ timeFormatter. timeStyle = . short
174+ timeFormatter. dateStyle = . none
175+ return timeFormatter. string ( from: Date ( ) )
176+ }
177+
163178 enum Constants {
164179 static let valuePlaceholderText = " - "
165180 }
0 commit comments