Skip to content

Commit

Permalink
Expose configuration to ignore EpoxySwiftUIHostingController safe area (
Browse files Browse the repository at this point in the history
#161)

* Expose the configuration to ignore the safe area of EpoxySwiftUIHostingController

* Lint

* Update bar model comment

* Update Sources/EpoxyBars/BarModel/SwiftUI.View+BarModel.swift

Co-authored-by: Bryn Bodayle <[email protected]>

---------

Co-authored-by: Miguel Jimenez <[email protected]>
Co-authored-by: Bryn Bodayle <[email protected]>
  • Loading branch information
3 people authored Nov 10, 2023
1 parent 0f65f79 commit e46fab4
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
8 changes: 6 additions & 2 deletions Sources/EpoxyBars/BarModel/SwiftUI.View+BarModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,21 @@ extension View {
/// - dataID: An ID that uniquely identifies this item relative to other items in the
/// same collection.
/// - reuseBehavior: The reuse behavior of the `EpoxySwiftUIHostingView`.
/// - ignoreSafeArea: Whether or not the underlying `EpoxySwiftUIHostingController` will ignore its safe area.
/// Only set this to `false` when installing this BarModel using `BarContainerInsetBehavior.barHeightContentInset` or `BarContainerInsetBehavior.none`.
public func barModel(
dataID: AnyHashable? = nil,
reuseBehavior: SwiftUIHostingViewReuseBehavior = .reusable)
reuseBehavior: SwiftUIHostingViewReuseBehavior = .reusable,
ignoreSafeArea: Bool = true)
-> BarModel<EpoxySwiftUIHostingView<Self>>
{
EpoxySwiftUIHostingView<Self>.barModel(
dataID: dataID,
content: .init(rootView: self, dataID: dataID),
style: .init(
reuseBehavior: reuseBehavior,
initialContent: .init(rootView: self, dataID: dataID)))
initialContent: .init(rootView: self, dataID: dataID),
ignoreSafeArea: ignoreSafeArea))
.linkDisplayLifecycle()
}
}
15 changes: 13 additions & 2 deletions Sources/EpoxyCore/SwiftUI/EpoxySwiftUIHostingView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public final class EpoxySwiftUIHostingView<RootView: View>: UIView, EpoxyableVie
epoxyContent = EpoxyHostingContent(rootView: style.initialContent.rootView)
viewController = EpoxySwiftUIHostingController(
rootView: .init(content: epoxyContent, environment: epoxyEnvironment),
ignoreSafeArea: true)
ignoreSafeArea: style.ignoreSafeArea)

dataID = style.initialContent.dataID ?? DefaultDataID.noneProvided as AnyHashable

Expand Down Expand Up @@ -97,13 +97,24 @@ public final class EpoxySwiftUIHostingView<RootView: View>: UIView, EpoxyableVie
// MARK: Public

public struct Style: Hashable {
public init(reuseBehavior: SwiftUIHostingViewReuseBehavior, initialContent: Content) {

// MARK: Lifecycle

public init(
reuseBehavior: SwiftUIHostingViewReuseBehavior,
initialContent: Content,
ignoreSafeArea: Bool = true)
{
self.reuseBehavior = reuseBehavior
self.initialContent = initialContent
self.ignoreSafeArea = ignoreSafeArea
}

// MARK: Public

public var reuseBehavior: SwiftUIHostingViewReuseBehavior
public var initialContent: Content
public var ignoreSafeArea: Bool

public static func == (lhs: Style, rhs: Style) -> Bool {
lhs.reuseBehavior == rhs.reuseBehavior
Expand Down

0 comments on commit e46fab4

Please sign in to comment.