Skip to content

Commit 5b74f4b

Browse files
fix: Odd Panels would not Collapse properly (#840)
* fix: fixed the bug that prevented 3 panels from collapsing properly * chore: left console and versioning * chore: left console and versioning
1 parent 5ae9dc3 commit 5b74f4b

File tree

4 files changed

+33
-7
lines changed

4 files changed

+33
-7
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
### 6.3.5 (2022-09-19)
4+
5+
- [835](https://github.com/influxdata/clockface/pull/840): Fixed a bug with odd numbered collapsible panels. Last panel would not collapse.
6+
37
### 6.3.4 (2022-09-19)
48

59
- [835](https://github.com/influxdata/clockface/pull/835): Added a SaveOutline Icon

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@influxdata/clockface",
3-
"version": "6.3.4",
3+
"version": "6.3.5",
44
"license": "MIT",
55
"main": "dist/index.js",
66
"style": "dist/index.css",

src/Components/DraggableResizer/Documentation/DraggableResizer.stories.tsx

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,12 @@ draggableResizerStories.add(
112112
)
113113

114114
draggableResizerExamplesStories.add(
115-
'2 Panels',
115+
'3 Panels',
116116
() => {
117-
const [position, updatePosition] = useState<number[]>([0.5])
117+
const [position, updatePosition] = useState<number[]>([0.25, 0.5])
118118
const draggableResizerPanelRef1 = createRef<DraggableResizerPanelRef>()
119119
const draggableResizerPanelRef2 = createRef<DraggableResizerPanelRef>()
120+
const draggableResizerPanelRef3 = createRef<DraggableResizerPanelRef>()
120121
const defaultBackgroundStyle = {backgroundColor: 'transparent'}
121122
const defaultBarStyle = {backgroundColor: '#ffffff'}
122123

@@ -147,16 +148,30 @@ draggableResizerExamplesStories.add(
147148
handlePositions={position}
148149
onChangePositions={handlePositions => updatePosition(handlePositions)}
149150
>
150-
<DraggableResizer.Panel ref={draggableResizerPanelRef1}>
151+
<DraggableResizer.Panel
152+
ref={draggableResizerPanelRef1}
153+
isCollapsible={true}
154+
>
151155
<div className="mockCard">
152156
<span>1</span>
153157
</div>
154158
</DraggableResizer.Panel>
155-
<DraggableResizer.Panel ref={draggableResizerPanelRef2}>
159+
<DraggableResizer.Panel
160+
ref={draggableResizerPanelRef2}
161+
isCollapsible={true}
162+
>
156163
<div className="mockCard">
157164
<span>2</span>
158165
</div>
159166
</DraggableResizer.Panel>
167+
<DraggableResizer.Panel
168+
ref={draggableResizerPanelRef3}
169+
isCollapsible={true}
170+
>
171+
<div className="mockCard">
172+
<span>3</span>
173+
</div>
174+
</DraggableResizer.Panel>
160175
</DraggableResizer>
161176
<div className="story--test-buttons">
162177
<button onClick={logRef}>Log Ref</button>
@@ -226,7 +241,10 @@ draggableResizerExamplesStories.add(
226241
<span>2</span>
227242
</div>
228243
</DraggableResizer.Panel>
229-
<DraggableResizer.Panel ref={draggableResizerPanelRef3}>
244+
<DraggableResizer.Panel
245+
ref={draggableResizerPanelRef3}
246+
isCollapsible={true}
247+
>
230248
<div className="mockCard">
231249
<span>3</span>
232250
</div>

src/Components/DraggableResizer/DraggableResizer.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ export const DraggableResizerRoot: FunctionComponent<DraggableResizerProps> = ({
4848
backgroundStyle,
4949
handleBarStyle,
5050
}) => {
51+
const PANEL_COUNT = React.Children.toArray(children).length
52+
5153
const [startPosition] = useState<number[]>(handlePositions)
5254
const [dragIndex, setDragIndex] = useState<number>(NULL_DRAG)
5355

@@ -131,7 +133,9 @@ export const DraggableResizerRoot: FunctionComponent<DraggableResizerProps> = ({
131133

132134
const calculateCollapsePosition = (direction: number, dragIndex: number) => {
133135
const totalDrag = handlePositions.length - 1
134-
const directionIndex = direction === 0 ? dragIndex : dragIndex + 2
136+
const directionOffset = PANEL_COUNT % 2 == 0 ? 2 : 3
137+
const directionIndex =
138+
direction === 0 ? dragIndex : dragIndex + directionOffset
135139
const currentPosition = handlePositions[dragIndex]
136140
let collapsedPosition = directionIndex * 0.25
137141

0 commit comments

Comments
 (0)