ViewCondition
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.