diff --git a/Sources/DSKit/SwiftUI/View+CornerRadius.swift b/Sources/DSKit/SwiftUI/View+CornerRadius.swift new file mode 100644 index 0000000..a1c9c1e --- /dev/null +++ b/Sources/DSKit/SwiftUI/View+CornerRadius.swift @@ -0,0 +1,17 @@ +import SwiftUI + +public extension View { + func cornerRadius(_ radius: CGFloat, corners: UIRectCorner) -> some View { + clipShape( RoundedCorner(radius: radius, corners: corners) ) + } +} + +struct RoundedCorner: Shape { + var radius: CGFloat = .infinity + var corners: UIRectCorner = .allCorners + + func path(in rect: CGRect) -> Path { + let path = UIBezierPath(roundedRect: rect, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius)) + return Path(path.cgPath) + } +}