X-Git-Url: https://git.r.bdr.sh/rbdr/map/blobdiff_plain/91fd86189477e6c690c6487d51d80bc58c8ecb63..75a0e4509a70055851b085f3f7293ae1cf48164c:/Map/Views/MapRender.swift?ds=sidebyside diff --git a/Map/Views/MapRender.swift b/Map/Views/MapRender.swift index 7623b61..aa97e22 100644 --- a/Map/Views/MapRender.swift +++ b/Map/Views/MapRender.swift @@ -14,8 +14,10 @@ struct MapRenderView: View { @Environment(\.colorScheme) var colorScheme - var content: String - let evolution: Stage + @Binding var content: String + @Binding var evolution: Stage + + @State var parsedMap: ParsedMap = ParsedMap.empty let mapSize = CGSize(width: 1300.0, height: 1000.0) @@ -23,10 +25,6 @@ struct MapRenderView: View { let vertexSize = CGSize(width: 25.0, height: 25.0) let padding = CGFloat(30.0) - var parsedMap: ParsedMap { - return Map.parse(content: content) - } - var body: some View { ZStack(alignment: .topLeading) { @@ -50,13 +48,19 @@ struct MapRenderView: View { }.frame( width: mapSize.width, height: mapSize.height + 2 * padding, alignment: .topLeading - ).padding(padding) + ).onAppear { + self.parsedMap = Map.parse(content: content) + }.padding(padding).onChange(of: content) { newState in + self.parsedMap = Map.parse(content: newState) + } } } struct MapRenderView_Previews: PreviewProvider { static var previews: some View { - MapRenderView(content: "", evolution: Stage.stages(.general)).environment( + MapRenderView( + content: Binding.constant(""), evolution: Binding.constant(Stage.stages(.general)) + ).environment( \.managedObjectContext, PersistenceController.preview.container.viewContext) } }