Remove extra `path` element (#341)

The blue capsule in the PathDemo, rendered to HTML:

```diff
 <svg style="width: 100%;height: 100%; overflow: visible;">
   <rect
     x="0.0"
     height="100%"
     width="100%"
     y="0.0"
     ry="50%"
     stroke-width="0.0"
   ></rect>
-  <path style="stroke-width: 0.0;" d=""></path>
 </svg>
```

* Run swiftformat

* Remove excess `path` element
This commit is contained in:
Jed Fox 2020-12-22 18:03:00 -05:00 committed by GitHub
parent 3c97be617a
commit 8e5ad7f67f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 12 additions and 10 deletions

View File

@ -76,10 +76,10 @@ public class MountedElement<R: Renderer> {
var typeConstructorName: String { var typeConstructorName: String {
switch element { switch element {
case .app: fatalError(""" case .app: fatalError("""
`App` values aren't supposed to be reconciled, thus the type constructor name is not stored \ `App` values aren't supposed to be reconciled, thus the type constructor name is not stored \
for `App` elements. Please report this crash as a bug at \ for `App` elements. Please report this crash as a bug at \
https://github.com/swiftwasm/Tokamak/issues/new https://github.com/swiftwasm/Tokamak/issues/new
""") """)
case let .scene(scene): return scene.typeConstructorName case let .scene(scene): return scene.typeConstructorName
case let .view(view): return view.typeConstructorName case let .view(view): return view.typeConstructorName
} }
@ -172,7 +172,7 @@ extension TypeInfo {
// swiftlint:disable force_try // swiftlint:disable force_try
// Extract the view from the AnyView for modification, apply Environment changes: // Extract the view from the AnyView for modification, apply Environment changes:
if genericTypes.contains(where: { $0 is EnvironmentModifier.Type }), if genericTypes.contains(where: { $0 is EnvironmentModifier.Type }),
let modifier = try! property(named: "modifier").get(from: element) as? EnvironmentModifier let modifier = try! property(named: "modifier").get(from: element) as? EnvironmentModifier
{ {
modifier.modifyEnvironment(&modifiedEnv) modifier.modifyEnvironment(&modifiedEnv)
} }

View File

@ -99,7 +99,7 @@ extension _AnyScene {
) -> MountedScene<R> { ) -> MountedScene<R> {
var title: String? var title: String?
if let titledSelf = scene as? TitledScene, if let titledSelf = scene as? TitledScene,
let text = titledSelf.title let text = titledSelf.title
{ {
title = _TextProxy(text).rawText title = _TextProxy(text).rawText
} }

View File

@ -67,7 +67,7 @@ public struct Picker<Label: View, SelectionValue: Hashable, Content: View>: View
// update the binding. // update the binding.
ForEach(0..<children.count) { index in ForEach(0..<children.count) { index in
if let forEach = mapAnyView(children[index], transform: { (v: ForEachProtocol) in v }), if let forEach = mapAnyView(children[index], transform: { (v: ForEachProtocol) in v }),
forEach.elementType == SelectionValue.self forEach.elementType == SelectionValue.self
{ {
let nestedChildren = forEach.children let nestedChildren = forEach.children

View File

@ -132,6 +132,7 @@ public typealias AnyView = TokamakCore.AnyView
public typealias EmptyView = TokamakCore.EmptyView public typealias EmptyView = TokamakCore.EmptyView
// MARK: Text // MARK: Text
public typealias TextAlignment = TokamakCore.TextAlignment public typealias TextAlignment = TokamakCore.TextAlignment
// MARK: App & Scene // MARK: App & Scene

View File

@ -20,8 +20,8 @@ import TokamakShim
public struct ColorDemo: View { public struct ColorDemo: View {
var color: Color { var color: Color {
guard let v0d = Double(v0), guard let v0d = Double(v0),
let v1d = Double(v1), let v1d = Double(v1),
let v2d = Double(v2) let v2d = Double(v2)
else { else {
return .white return .white
} }

View File

@ -34,7 +34,7 @@ extension ModifiedContent: ViewDeferredToRenderer where Content: View, Modifier:
public var deferredBody: AnyView { public var deferredBody: AnyView {
if let domModifier = modifier as? DOMViewModifier { if let domModifier = modifier as? DOMViewModifier {
if let adjacentModifier = content as? AnyModifiedContent, if let adjacentModifier = content as? AnyModifiedContent,
!(adjacentModifier.anyModifier.isOrderDependent || domModifier.isOrderDependent) !(adjacentModifier.anyModifier.isOrderDependent || domModifier.isOrderDependent)
{ {
// Flatten non-order-dependent modifiers // Flatten non-order-dependent modifiers
var attr = domModifier.attributes var attr = domModifier.attributes

View File

@ -95,6 +95,7 @@ extension Path: ViewDeferredToRenderer {
elements: [Element], elements: [Element],
strokeStyle: StrokeStyle = .zero strokeStyle: StrokeStyle = .zero
) -> AnyView { ) -> AnyView {
if elements.isEmpty { return AnyView(EmptyView()) }
var d = [String]() var d = [String]()
for element in elements { for element in elements {
switch element { switch element {