diff --git a/Apps/Examples/Examples/FioriSwiftUICore/FormCells/SwitchExample.swift b/Apps/Examples/Examples/FioriSwiftUICore/FormCells/SwitchExample.swift index ca1889f0e..a7f6db117 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 6a47b4d60..0e376500f 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 7abf3c022..368f209ff 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 714fc55cf..7eb0ef17e 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 3c51dbb5f..9a2f1c36a 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 b989e5b75..cfd8c8a78 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 2d2f27899..be1f1b738 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 922a0296d..000000000 --- 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 fca301483..cc36cd77b 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: "")