From 58ac11eaf74d29fbbd8fe4681a6e15d5250b116a Mon Sep 17 00:00:00 2001 From: Javier Cicchelli Date: Tue, 19 Mar 2024 01:06:09 +0100 Subject: [PATCH] Implemented the FullWidthModifier modifier in the UI library, and implemented the "fullWidth(alignment: )" function for its View+Modifiers extension. --- .../Sources/Extensions/View+Modifiers.swift | 18 ++++++++ .../Sources/Modifiers/FullWidthModifier.swift | 43 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 Libraries/UI/Kit/Sources/Extensions/View+Modifiers.swift create mode 100644 Libraries/UI/Kit/Sources/Modifiers/FullWidthModifier.swift diff --git a/Libraries/UI/Kit/Sources/Extensions/View+Modifiers.swift b/Libraries/UI/Kit/Sources/Extensions/View+Modifiers.swift new file mode 100644 index 0000000..a3cf82a --- /dev/null +++ b/Libraries/UI/Kit/Sources/Extensions/View+Modifiers.swift @@ -0,0 +1,18 @@ +// +// View+Modifiers.swift +// ReviewsUIKit +// +// Created by Javier Cicchelli on 19/03/2024. +// Copyright © 2024 Röck+Cöde VoF. All rights reserved. +// + +import SwiftUI + +extension View { + + // MARK: Functions + public func fullWidth(alignment: Alignment = .leading) -> some View { + modifier(FullWidthModifier(alignment: alignment)) + } + +} diff --git a/Libraries/UI/Kit/Sources/Modifiers/FullWidthModifier.swift b/Libraries/UI/Kit/Sources/Modifiers/FullWidthModifier.swift new file mode 100644 index 0000000..d834b47 --- /dev/null +++ b/Libraries/UI/Kit/Sources/Modifiers/FullWidthModifier.swift @@ -0,0 +1,43 @@ +// +// FullWidthModifier.swift +// ReviewsUIKit +// +// Created by Javier Cicchelli on 19/03/2024. +// Copyright © 2024 Röck+Cöde VoF. All rights reserved. +// + +import SwiftUI + +struct FullWidthModifier: ViewModifier { + + // MARK: Constants + private let alignment: Alignment + + // MARK: Initialisers + init(alignment: Alignment) { + self.alignment = alignment + } + + // MARK: Functions + func body(content: Content) -> some View { + content + .frame( + maxWidth: .infinity, + alignment: alignment + ) + } + +} + +// MARK: - Previews +#Preview { + Group { + Text("Hello, world!") + .modifier(FullWidthModifier(alignment: .leading)) + Text("Hello, world!") + .modifier(FullWidthModifier(alignment: .center)) + Text("Hello, world!") + .modifier(FullWidthModifier(alignment: .trailing)) + } + .padding(.horizontal) +}