@@ -101,31 +101,44 @@ struct HomeView: View {
101101 ) in
102102 DispatchQueue . main. async {
103103 isLoading = false
104-
105- switch result {
106- case . success( let response) :
107- featured = response. featured
108- events = response. events
109- talks = response. talks
110- speakers = response. speakers
111- case . failure( let error) :
112- self . errorMessage = error. localizedDescription
113- }
104+ handleFetchResult ( result)
114105 }
115106 }
116107 }
117108
118109 private func refreshData( ) async {
110+ isLoading = true
111+ errorMessage = nil
112+
119113 do {
120114 let response : HomeViewResponse = try await APIService . shared. fetchData ( from: Router . instance. home_json_url ( ) . absoluteString)
121- featured = response . featured
122- events = response . events
123- talks = response. talks
124- speakers = response . speakers
115+ DispatchQueue . main . async {
116+ isLoading = false
117+ handleResponse ( response)
118+ }
125119 } catch {
126- errorMessage = error. localizedDescription
120+ DispatchQueue . main. async {
121+ isLoading = false
122+ errorMessage = error. localizedDescription
123+ }
124+ }
125+ }
126+
127+ private func handleFetchResult( _ result: Result < HomeViewResponse , NetworkError > ) {
128+ switch result {
129+ case . success( let response) :
130+ handleResponse ( response)
131+ case . failure( let error) :
132+ self . errorMessage = error. localizedDescription
127133 }
128134 }
135+
136+ private func handleResponse( _ response: HomeViewResponse ) {
137+ featured = response. featured
138+ events = response. events
139+ talks = response. talks
140+ speakers = response. speakers
141+ }
129142}
130143
131144#Preview {
0 commit comments