@@ -29,23 +29,11 @@ final class HubMenuViewModel: ObservableObject {
2929 return url
3030 }
3131
32- var storeTitle : String {
33- stores. sessionManager. defaultSite? . name ?? Localization . myStore
34- }
32+ @Published private( set) var storeTitle = Localization . myStore
3533
36- var storeURL : URL {
37- guard let urlString = stores. sessionManager. defaultSite? . url, let url = URL ( string: urlString) else {
38- return WooConstants . URLs. blog. asURL ( )
39- }
40- return url
41- }
42- var woocommerceAdminURL : URL {
43- guard let urlString = stores. sessionManager. defaultSite? . adminURL, let url = URL ( string: urlString) else {
44- return stores. sessionManager. defaultSite? . adminURLWithFallback ( ) ??
45- WooConstants . URLs. blog. asURL ( )
46- }
47- return url
48- }
34+ @Published private( set) var storeURL : URL ?
35+
36+ @Published private( set) var woocommerceAdminURL : URL ?
4937
5038 /// Child items
5139 ///
@@ -61,8 +49,6 @@ final class HubMenuViewModel: ObservableObject {
6149
6250 private var storePickerCoordinator : StorePickerCoordinator ?
6351
64- private var cancellables = Set < AnyCancellable > ( )
65-
6652 init ( siteID: Int64 ,
6753 navigationController: UINavigationController ? = nil ,
6854 featureFlagService: FeatureFlagService = ServiceLocator . featureFlagService,
@@ -139,9 +125,27 @@ final class HubMenuViewModel: ObservableObject {
139125 }
140126
141127 private func observeSiteForUIUpdates( ) {
142- stores. site. sink { site in
143- // This will be useful in the future for updating some info of the screen depending on the store site info
144- } . store ( in: & cancellables)
128+ stores. site
129+ . compactMap { site -> URL ? in
130+ guard let urlString = site? . url, let url = URL ( string: urlString) else {
131+ return nil
132+ }
133+ return url
134+ }
135+ . assign ( to: & $storeURL)
136+
137+ stores. site
138+ . compactMap { $0? . name }
139+ . assign ( to: & $storeTitle)
140+
141+ stores. site
142+ . compactMap { site -> URL ? in
143+ guard let urlString = site? . adminURL, let url = URL ( string: urlString) else {
144+ return site? . adminURLWithFallback ( )
145+ }
146+ return url
147+ }
148+ . assign ( to: & $woocommerceAdminURL)
145149 }
146150}
147151
0 commit comments