Skip to content

Commit 4278327

Browse files
committed
feat(Container): support afterResizing callback
1 parent 28e1f0e commit 4278327

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/Container/index.tsx

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import * as React from 'react';
2-
import { Subject, merge, animationFrameScheduler } from 'rxjs';
3-
import { filter, share, observeOn, map } from 'rxjs/operators';
2+
import { animationFrameScheduler, merge, Subject } from 'rxjs';
3+
import { filter, map, observeOn, share, tap } from 'rxjs/operators';
44

55
import {
66
BarAction,
7+
BarActionType,
78
ChildProps,
89
ResizerContext,
910
SizeRelatedInfo,
@@ -23,6 +24,7 @@ import {
2324
interface Props extends React.HTMLAttributes<HTMLDivElement> {
2425
vertical?: boolean;
2526
beforeApplyResizer?: (resizer: Resizer) => void;
27+
afterResizing?: () => void;
2628
}
2729

2830
class Container extends React.PureComponent<Props> {
@@ -45,6 +47,7 @@ class Container extends React.PureComponent<Props> {
4547
calculateCoordinateOffset(current, original)[this.axis],
4648
getSizeRelatedInfo: () => this.makeSizeInfos(),
4749
}),
50+
tap((scanResult) => this.monitorBarStatusChanges(scanResult)),
4851
),
4952
).pipe(
5053
filter(({ discard }) => !discard),
@@ -118,6 +121,15 @@ class Container extends React.PureComponent<Props> {
118121
this.sizeRelatedInfoAction$.next(resizer.getResult());
119122
}
120123

124+
private monitorBarStatusChanges({ type }: BarActionScanResult) {
125+
if (
126+
type === BarActionType.DEACTIVATE &&
127+
typeof this.props.afterResizing === 'function'
128+
) {
129+
this.props.afterResizing();
130+
}
131+
}
132+
121133
private triggerBarAction = (action: BarAction) => {
122134
this.barActions$.next(action);
123135
};

0 commit comments

Comments
 (0)