Swiftpack.co - tokijh/ViewCondition as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by tokijh.
tokijh/ViewCondition 1.0.0
✨ Super sweet syntactic sugar for SwiftUI.View initializers.
⭐️ 89
🕓 2 years ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/tokijh/ViewCondition.git", from: "1.0.0")

ViewCondition

✨ Super sweet syntactic sugar for SwiftUI.View initializers.

At a Glance

struct BorderTextView: View {
  var color: Color?

  @ViewBuilder
  var body: some View {
    Text("Hello")
      .if(let: color) {
        $0.border($1)
      }
  }
}

This is equivalent to:

struct BorderTextView: View {
  var color: Color?

  @ViewBuilder
  var body: some View {
    let text = Text("Hello")
    if let color = color {
      text.border(color) // border doesn't allow optional
    } else {
      text
    }
  }
}

Operators

if let

let color: Color?
Text("Hello")
  .if(let: color) {
    $0.border($1)
  }

if

let text = ""
Text("Hello")
  .if(text == "Hello") {
    $0.bold()
  }

ifNot

let text = ""
Text("Hello")
  .ifNot(text == "Hello") {
    $0.bold()
  }

then

let text = ""
Text("Hello")
  .then {
    if text == "Hello" {
      $0.bold()
    } else {
      $0.italic()
    }
  }

⚠️ Becareful

If you don't return view in else, the view may not come out.

Installation

Using Swift Package Manager:

import PackageDescription

let package = Package(
  name: "MyAwesomeApp",
  dependencies: [
    .package(url: "https://github.com/tokijh/ViewCondition.git", from: "1.0.0")
  ]
)

Special thanks to..

License

ViewCondition is under MIT license. See the LICENSE file for more info.

GitHub

link
Stars: 89
Last commit: 2 years ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Release Notes

1.0.0
2 years ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics