From bd7d31cf679472a5eaf6ae0170b46314aaa0f12e Mon Sep 17 00:00:00 2001 From: Nikita Semenov Date: Fri, 10 Feb 2023 17:53:21 +0300 Subject: [PATCH] fix: code review notes --- .../Containers/ContainerTableViewCell.swift | 18 +++++++ .../Wrappers/Containers/ContainerView.swift | 24 ++++++++++ ...ontainerTableViewCell+Configurations.swift | 40 ---------------- .../ContainerView+Configurations.swift | 47 ------------------- 4 files changed, 42 insertions(+), 87 deletions(-) delete mode 100644 TIUIElements/Sources/Wrappers/Extensions/ContainerTableViewCell+Configurations.swift delete mode 100644 TIUIElements/Sources/Wrappers/Extensions/ContainerView+Configurations.swift diff --git a/TIUIElements/Sources/Wrappers/Containers/ContainerTableViewCell.swift b/TIUIElements/Sources/Wrappers/Containers/ContainerTableViewCell.swift index 3892e327..585ed55c 100644 --- a/TIUIElements/Sources/Wrappers/Containers/ContainerTableViewCell.swift +++ b/TIUIElements/Sources/Wrappers/Containers/ContainerTableViewCell.swift @@ -53,4 +53,22 @@ open class ContainerTableViewCell: BaseInitializableCell, WrappedV open func createView() -> View { return View() } + + // MARK: - Open methods + + public func configureContainerTableViewCell(appearance: BaseWrappedViewHolderAppearance) { + contentInsets = appearance.subviewAppearance.layout.insets + configureUIView(appearance: appearance) + } +} + +// MARK: - AppearanceConfigurable + +extension ContainerTableViewCell: AppearanceConfigurable where View: AppearanceConfigurable, + View.Appearance: WrappedViewAppearance { + + public func configure(appearance: DefaultWrappedViewHolderAppearance) { + configureContainerTableViewCell(appearance: appearance) + wrappedView.configure(appearance: appearance.subviewAppearance) + } } diff --git a/TIUIElements/Sources/Wrappers/Containers/ContainerView.swift b/TIUIElements/Sources/Wrappers/Containers/ContainerView.swift index 77036515..77e07dd8 100644 --- a/TIUIElements/Sources/Wrappers/Containers/ContainerView.swift +++ b/TIUIElements/Sources/Wrappers/Containers/ContainerView.swift @@ -20,6 +20,7 @@ // THE SOFTWARE. // +import TIUIKitCore import UIKit public final class ContainerView: BaseInitializableView, WrappedViewHolder { @@ -48,3 +49,26 @@ public final class ContainerView: BaseInitializableView, WrappedVi contentEdgeConstraints = configureWrappedViewLayout() } } + +// MARK: - ConfigurableView + +extension ContainerView: ConfigurableView where View: ConfigurableView { + + public func configure(with viewModel: View.ViewModelType) { + wrappedView.configure(with: viewModel) + } +} + +// MARK: - AppearanceConfigurable + +extension ContainerView: AppearanceConfigurable where View: AppearanceConfigurable, + View.Appearance: WrappedViewAppearance { + + public typealias Appearance = UIView.DefaultWrappedViewHolderAppearance + + public func configure(appearance: Appearance) { + wrappedView.configure(appearance: appearance.subviewAppearance) + configureUIView(appearance: appearance) + contentInsets = appearance.subviewAppearance.layout.insets + } +} diff --git a/TIUIElements/Sources/Wrappers/Extensions/ContainerTableViewCell+Configurations.swift b/TIUIElements/Sources/Wrappers/Extensions/ContainerTableViewCell+Configurations.swift deleted file mode 100644 index 4cb425ba..00000000 --- a/TIUIElements/Sources/Wrappers/Extensions/ContainerTableViewCell+Configurations.swift +++ /dev/null @@ -1,40 +0,0 @@ -// -// Copyright (c) 2023 Touch Instinct -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the Software), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import TIUIKitCore -import UIKit - -extension ContainerTableViewCell: AppearanceConfigurable where View: AppearanceConfigurable, - View.Appearance: WrappedViewAppearance { - - public func configure(appearance: DefaultWrappedViewHolderAppearance) { - configureContainerTableViewCell(appearance: appearance) - wrappedView.configure(appearance: appearance.subviewAppearance) - } -} - -extension ContainerTableViewCell { - public func configureContainerTableViewCell(appearance: BaseWrappedViewHolderAppearance) { - contentInsets = appearance.subviewAppearance.layout.insets - configureUIView(appearance: appearance) - } -} diff --git a/TIUIElements/Sources/Wrappers/Extensions/ContainerView+Configurations.swift b/TIUIElements/Sources/Wrappers/Extensions/ContainerView+Configurations.swift deleted file mode 100644 index d35e0201..00000000 --- a/TIUIElements/Sources/Wrappers/Extensions/ContainerView+Configurations.swift +++ /dev/null @@ -1,47 +0,0 @@ -// -// Copyright (c) 2023 Touch Instinct -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the Software), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import TIUIKitCore -import UIKit - -// MARK: - ConfigurableView - -extension ContainerView: ConfigurableView where View: ConfigurableView { - - public func configure(with viewModel: View.ViewModelType) { - wrappedView.configure(with: viewModel) - } -} - -// MARK: - AppearanceConfigurable - -extension ContainerView: AppearanceConfigurable where View: AppearanceConfigurable, - View.Appearance: WrappedViewAppearance { - - public typealias Appearance = UIView.DefaultWrappedViewHolderAppearance - - public func configure(appearance: Appearance) { - wrappedView.configure(appearance: appearance.subviewAppearance) - configureUIView(appearance: appearance) - contentInsets = appearance.subviewAppearance.layout.insets - } -}