Skip to content

Commit 7d90458

Browse files
authored
Support the initial hidden position not including the supported positions (#345)
1 parent 5d5f14a commit 7d90458

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

Framework/Sources/FloatingPanelCore.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class FloatingPanelCore: NSObject, UIGestureRecognizerDelegate {
9797
}
9898

9999
private func move(from: FloatingPanelPosition, to: FloatingPanelPosition, animated: Bool, completion: (() -> Void)? = nil) {
100-
assert(layoutAdapter.isValid(to), "Can't move to '\(to)' position because it's not valid in the layout")
100+
assert(layoutAdapter.validPositions.contains(to), "Can't move to '\(to)' position because it's not valid in the layout")
101101
guard let vc = viewcontroller else {
102102
completion?()
103103
return

Framework/Sources/FloatingPanelLayout.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,10 @@ class FloatingPanelLayoutAdapter {
211211
return layout.supportedPositions
212212
}
213213

214+
var validPositions: Set<FloatingPanelPosition> {
215+
return supportedPositions.union([.hidden])
216+
}
217+
214218
var topMostState: FloatingPanelPosition {
215219
return supportedPositions.sorted(by: { $0.rawValue < $1.rawValue }).first ?? .hidden
216220
}
@@ -516,7 +520,7 @@ class FloatingPanelLayoutAdapter {
516520

517521
setBackdropAlpha(of: state)
518522

519-
if isValid(state) == false {
523+
if validPositions.contains(state) == false {
520524
state = layout.initialPosition
521525
}
522526

@@ -538,10 +542,6 @@ class FloatingPanelLayoutAdapter {
538542
activateInteractiveLayout(of: state)
539543
}
540544

541-
func isValid(_ state: FloatingPanelPosition) -> Bool {
542-
return supportedPositions.union([.hidden]).contains(state)
543-
}
544-
545545
private func layoutSurfaceIfNeeded() {
546546
#if !TEST
547547
guard surfaceView.window != nil else { return }
@@ -560,8 +560,8 @@ class FloatingPanelLayoutAdapter {
560560
private func checkLayoutConsistance() {
561561
// Verify layout configurations
562562
assert(supportedPositions.count > 0)
563-
assert(supportedPositions.contains(layout.initialPosition),
564-
"Does not include an initial position (\(layout.initialPosition)) in supportedPositions (\(supportedPositions))")
563+
assert(validPositions.contains(layout.initialPosition),
564+
"Does not include an initial position (\(layout.initialPosition)) in (\(validPositions))")
565565

566566
if layout is FloatingPanelIntrinsicLayout {
567567
assert(layout.insetFor(position: .full) == nil, "Return `nil` for full position on FloatingPanelIntrinsicLayout")

0 commit comments

Comments
 (0)