summaryrefslogtreecommitdiff
path: root/Jel/Models
diff options
context:
space:
mode:
Diffstat (limited to 'Jel/Models')
-rw-r--r--Jel/Models/ViewConditionalMethod.swift23
1 files changed, 23 insertions, 0 deletions
diff --git a/Jel/Models/ViewConditionalMethod.swift b/Jel/Models/ViewConditionalMethod.swift
new file mode 100644
index 0000000..195a8dc
--- /dev/null
+++ b/Jel/Models/ViewConditionalMethod.swift
@@ -0,0 +1,23 @@
+//
+// ViewConditionalMethod.swift
+// Jel
+//
+// Created by zerocool on 12/25/23.
+//
+
+import SwiftUI
+
+extension View {
+ /// Applies the given transform if the given condition evaluates to `true`.
+ /// - Parameters:
+ /// - condition: The condition to evaluate.
+ /// - transform: The transform to apply to the source `View`.
+ /// - Returns: Either the original `View` or the modified `View` if the condition is `true`.
+ @ViewBuilder func `if`<Content: View>(_ condition: @autoclosure () -> Bool, transform: (Self) -> Content) -> some View {
+ if condition() {
+ transform(self)
+ } else {
+ self
+ }
+ }
+}