Mercurial > public > geoquiz
diff GeoQuiz/Helpers/CityMap.swift @ 26:425078c01194
refactor code
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Wed, 09 Nov 2022 10:30:01 +0100 |
parents | GeoQuiz/Components/CityMap.swift@e281791e0494 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GeoQuiz/Helpers/CityMap.swift Wed Nov 09 10:30:01 2022 +0100 @@ -0,0 +1,51 @@ +// +// CityMap.swift +// GeoQuiz +// +// Created by Dennis Concepción Martín on 4/10/22. +// + +import SwiftUI +import MapKit + +struct CityMap: View { + @ObservedObject var gameController: CityGameController + + @StateObject var mapController: MapController + + init(game: CityGameController) { + self.gameController = game + self._mapController = StateObject(wrappedValue: MapController()) + } + + var body: some View { + VStack { + if let mapImage = mapController.image { + Image(uiImage: mapImage) + .resizable() + .scaledToFit() + .clipShape(Circle()) + .overlay { + Circle() + .strokeBorder(.white, lineWidth: 4) + } + .shadow(radius: 10) + } else { + ProgressView() + } + } + .onChange(of: gameController.correctAnswer.value) { _ in + mapController.getMapImage(lat: gameController.correctAnswer.value.lat, lon: gameController.correctAnswer.value.lon) + } + + .onAppear { + mapController.getMapImage(lat: gameController.correctAnswer.value.lat, lon: gameController.correctAnswer.value.lon) + } + } +} + +struct CityMap_Previews: PreviewProvider { + static var previews: some View { + CityMap(game: CityGameController()) + } +}