diff --git a/Apps/Examples/Examples/FioriSwiftUICore/FormCells/SwitchExample.swift b/Apps/Examples/Examples/FioriSwiftUICore/FormCells/SwitchExample.swift index ca1889f0ef..a7f6db117e 100644 --- a/Apps/Examples/Examples/FioriSwiftUICore/FormCells/SwitchExample.swift +++ b/Apps/Examples/Examples/FioriSwiftUICore/FormCells/SwitchExample.swift @@ -6,7 +6,8 @@ struct SwitchExample: View { @State var v1: Bool = false @State var v2: Bool = true @State var v3: Bool = true - + @State var v4: Bool = true + struct CustomTitleStyle: TitleStyle { @Environment(\.isEnabled) var isEnabled func makeBody(_ configuration: TitleConfiguration) -> some View { @@ -30,6 +31,7 @@ struct SwitchExample: View { SwitchView(title: "Custom Style", isOn: self.$v3) .titleStyle(CustomTitleStyle()) .switchStyle(CustomSwitchStyle()) + SwitchView(title: "Very long title, layout depend on title width. long long long long long long long long long long long long long long long long long long long long long long long", isOn: self.$v4) } } } diff --git a/Sources/FioriSwiftUICore/Models/ModelDefinitions.swift b/Sources/FioriSwiftUICore/Models/ModelDefinitions.swift index 6a47b4d606..0e376500fb 100644 --- a/Sources/FioriSwiftUICore/Models/ModelDefinitions.swift +++ b/Sources/FioriSwiftUICore/Models/ModelDefinitions.swift @@ -592,7 +592,10 @@ public protocol SearchListPickerItemModel: OptionListPickerComponent { // sourcery: add_env_props = "filterFeedbackBarStyle" // sourcery: generated_component_not_configurable // sourcery: add_env_props = "fioriToggleStyle" -public protocol SwitchPickerItemModel: SwitchPickerComponent {} +public protocol _SwitchPickerItemModel: SwitchPickerComponent {} + +@available(*, unavailable, renamed: "_SwitchPickerItemModel", message: "Will be removed in the future release. Please create SwitchView with other initializers instead.") +public protocol SwitchPickerItemModel {} // sourcery: add_env_props = "filterFeedbackBarStyle" // sourcery: generated_component_not_configurable diff --git a/Sources/FioriSwiftUICore/Views/SortFilter/_SortFilterCFGItemContainer.swift b/Sources/FioriSwiftUICore/Views/SortFilter/_SortFilterCFGItemContainer.swift index 7abf3c022f..368f209ff8 100644 --- a/Sources/FioriSwiftUICore/Views/SortFilter/_SortFilterCFGItemContainer.swift +++ b/Sources/FioriSwiftUICore/Views/SortFilter/_SortFilterCFGItemContainer.swift @@ -286,7 +286,7 @@ extension _SortFilterCFGItemContainer: View { func switcher(row r: Int, column c: Int) -> some View { VStack { - SwitchPickerItem(value: Binding(get: { self._items[r][c].switch.workingValue }, set: { self._items[r][c].switch.workingValue = $0 }), name: self._items[r][c].switch.name, hint: nil) + SwitchView(title: AttributedString(self._items[r][c].switch.name), isOn: Binding(get: { self._items[r][c].switch.workingValue ?? false }, set: { self._items[r][c].switch.workingValue = $0 })) } } diff --git a/Sources/FioriSwiftUICore/Views/SwitchPickerItem+View.swift b/Sources/FioriSwiftUICore/Views/_SwitchPickerItem+View.swift similarity index 95% rename from Sources/FioriSwiftUICore/Views/SwitchPickerItem+View.swift rename to Sources/FioriSwiftUICore/Views/_SwitchPickerItem+View.swift index 714fc55cf0..7eb0ef17e2 100644 --- a/Sources/FioriSwiftUICore/Views/SwitchPickerItem+View.swift +++ b/Sources/FioriSwiftUICore/Views/_SwitchPickerItem+View.swift @@ -1,7 +1,7 @@ import FioriThemeManager import SwiftUI -extension SwitchPickerItem: View { +extension _SwitchPickerItem: View { public var body: some View { AnyView( Toggle(_name ?? "", isOn: .convert(from: _value, ifNilUse: false)) @@ -122,9 +122,9 @@ private struct TestSwitchPicker: View { var body: some View { VStack { - SwitchPickerItem(value: self.$v1, hint: nil) - SwitchPickerItem(value: self.$v2, hint: nil) - SwitchPickerItem(value: self.$v3, hint: nil) + _SwitchPickerItem(value: self.$v1, hint: nil) + _SwitchPickerItem(value: self.$v2, hint: nil) + _SwitchPickerItem(value: self.$v3, hint: nil) } } } diff --git a/Sources/FioriSwiftUICore/_FioriStyles/SwitchViewStyle.fiori.swift b/Sources/FioriSwiftUICore/_FioriStyles/SwitchViewStyle.fiori.swift index 3c51dbb5fe..9a2f1c36a7 100644 --- a/Sources/FioriSwiftUICore/_FioriStyles/SwitchViewStyle.fiori.swift +++ b/Sources/FioriSwiftUICore/_FioriStyles/SwitchViewStyle.fiori.swift @@ -7,10 +7,19 @@ import SwiftUI // Base Layout style public struct SwitchViewBaseStyle: SwitchViewStyle { public func makeBody(_ configuration: SwitchViewConfiguration) -> some View { - HStack { - configuration.title - Spacer() - configuration._switch + ViewThatFits { + HStack { + configuration.title + Spacer() + configuration._switch + } + VStack(alignment: .leading, spacing: 0) { + configuration.title + HStack { + Spacer() + configuration._switch + } + } } } } diff --git a/Sources/FioriSwiftUICore/_generated/ViewModels/API/SwitchPickerItem+API.generated.swift b/Sources/FioriSwiftUICore/_generated/ViewModels/API/_SwitchPickerItem+API.generated.swift similarity index 88% rename from Sources/FioriSwiftUICore/_generated/ViewModels/API/SwitchPickerItem+API.generated.swift rename to Sources/FioriSwiftUICore/_generated/ViewModels/API/_SwitchPickerItem+API.generated.swift index b989e5b75a..cfd8c8a78c 100644 --- a/Sources/FioriSwiftUICore/_generated/ViewModels/API/SwitchPickerItem+API.generated.swift +++ b/Sources/FioriSwiftUICore/_generated/ViewModels/API/_SwitchPickerItem+API.generated.swift @@ -2,7 +2,7 @@ // DO NOT EDIT import SwiftUI -public struct SwitchPickerItem { +public struct _SwitchPickerItem { @Environment(\.fioriToggleStyle) var fioriToggleStyle @Environment(\.filterFeedbackBarStyle) var filterFeedbackBarStyle @@ -10,7 +10,7 @@ public struct SwitchPickerItem { var _name: String? = nil var _hint: String? = nil - public init(model: SwitchPickerItemModel) { + public init(model: _SwitchPickerItemModel) { self.init(value: Binding(get: { model.value }, set: { model.value = $0 }), name: model.name, hint: model.hint) } diff --git a/Sources/FioriSwiftUICore/_generated/ViewModels/Boilerplate/SwitchPickerItem+View.generated.swift b/Sources/FioriSwiftUICore/_generated/ViewModels/Boilerplate/_SwitchPickerItem+View.generated.swift similarity index 65% rename from Sources/FioriSwiftUICore/_generated/ViewModels/Boilerplate/SwitchPickerItem+View.generated.swift rename to Sources/FioriSwiftUICore/_generated/ViewModels/Boilerplate/_SwitchPickerItem+View.generated.swift index 2d2f278993..be1f1b7389 100644 --- a/Sources/FioriSwiftUICore/_generated/ViewModels/Boilerplate/SwitchPickerItem+View.generated.swift +++ b/Sources/FioriSwiftUICore/_generated/ViewModels/Boilerplate/_SwitchPickerItem+View.generated.swift @@ -1,7 +1,7 @@ // Generated using Sourcery 2.1.7 — https://github.com/krzysztofzablocki/Sourcery // DO NOT EDIT -//TODO: Copy commented code to new file: `FioriSwiftUICore/Views/SwitchPickerItem+View.swift` -//TODO: Implement SwitchPickerItem `View` body +//TODO: Copy commented code to new file: `FioriSwiftUICore/Views/_SwitchPickerItem+View.swift` +//TODO: Implement _SwitchPickerItem `View` body /// - Important: to make `@Environment` properties (e.g. `horizontalSizeClass`), internally accessible /// to extensions, add as sourcery annotation in `FioriSwiftUICore/Models/ModelDefinitions.swift` @@ -13,21 +13,21 @@ import SwiftUI // FIXME: - Implement Fiori style definitions -// FIXME: - Implement SwitchPickerItem View body +// FIXME: - Implement _SwitchPickerItem View body -extension SwitchPickerItem: View { +extension _SwitchPickerItem: View { public var body: some View { <# View body #> } } -// FIXME: - Implement SwitchPickerItem specific LibraryContentProvider +// FIXME: - Implement _SwitchPickerItem specific LibraryContentProvider @available(iOS 14.0, macOS 11.0, *) -struct SwitchPickerItemLibraryContent: LibraryContentProvider { +struct _SwitchPickerItemLibraryContent: LibraryContentProvider { @LibraryContentBuilder var views: [LibraryItem] { - LibraryItem(SwitchPickerItem(model: LibraryPreviewData.Person.laurelosborn), + LibraryItem(_SwitchPickerItem(model: LibraryPreviewData.Person.laurelosborn), category: .control) } } diff --git a/Sources/FioriSwiftUICore/_generated/ViewModels/Init+Extensions/SwitchPickerItem+Init.generated.swift b/Sources/FioriSwiftUICore/_generated/ViewModels/Init+Extensions/SwitchPickerItem+Init.generated.swift deleted file mode 100644 index 922a0296dd..0000000000 --- a/Sources/FioriSwiftUICore/_generated/ViewModels/Init+Extensions/SwitchPickerItem+Init.generated.swift +++ /dev/null @@ -1,3 +0,0 @@ -// Generated using Sourcery 1.2.0 — https://github.com/krzysztofzablocki/Sourcery -// DO NOT EDIT -import SwiftUI diff --git a/sourcery/.lib/Sources/utils/Type+Extensions.swift b/sourcery/.lib/Sources/utils/Type+Extensions.swift index fca3014832..cc36cd77bf 100644 --- a/sourcery/.lib/Sources/utils/Type+Extensions.swift +++ b/sourcery/.lib/Sources/utils/Type+Extensions.swift @@ -81,7 +81,8 @@ public extension Type { "_SingleStepModel", "_StepProgressIndicatorModel", "_ObjectHeaderModel", - "_HeaderChartModel"] + "_HeaderChartModel", + "_SwitchPickerItemModel"] if deprecatedComponents.contains(name) { return name.replacingOccurrences(of: "Model", with: "")