Skip to content

Commit dcc8d1e

Browse files
committed
feat: ✨ allow to set scrollLeft
deprecated scrollTop
1 parent 71c237c commit dcc8d1e

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/components/timeline.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ export const Timeline = React.forwardRef<TimelineState, TimelineEditor>((props,
6161
autoReRender && engineRef.current.reRender();
6262
}, [editorData]);
6363

64+
// deprecated
65+
useEffect(() => {
66+
scrollSync.current && scrollSync.current.setState({ scrollTop: scrollTop });
67+
}, [scrollTop])
68+
6469
/** 处理主动数据变化 */
6570
const handleEditorDataChange = (editorData: TimelineRow[]) => {
6671
const result = onChange(editorData);
@@ -124,12 +129,18 @@ export const Timeline = React.forwardRef<TimelineState, TimelineEditor>((props,
124129
reRender: engineRef.current.reRender.bind(engineRef.current),
125130
play: (param: Parameters<TimelineState['play']>[0]) => engineRef.current.play({ ...param }),
126131
pause: engineRef.current.pause.bind(engineRef.current),
132+
setScrollLeft: (val) =>{
133+
scrollSync.current && scrollSync.current.setState({ scrollLeft: val });
134+
},
135+
setScrollTop: (val) =>{
136+
scrollSync.current && scrollSync.current.setState({ scrollTop: val });
137+
}
127138
}));
128139

129140
return (
130141
<div ref={domRef} style={style} className={`${PREFIX} ${disableDrag ? PREFIX + '-disable' : ''}`}>
131142
<ScrollSync ref={scrollSync}>
132-
{({ scrollLeft, onScroll }) => (
143+
{({ scrollLeft, scrollTop, onScroll }) => (
133144
<>
134145
<TimeArea
135146
{...checkedProps}

src/interface/timeline.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,10 @@ export interface TimelineState {
216216
}) => boolean;
217217
/** 暂停 */
218218
pause: () => void;
219+
/** 设置scroll left */
220+
setScrollLeft: (val: number) => void;
221+
/** 设置scroll top */
222+
setScrollTop: (val: number) => void;
219223
}
220224

221225
/**
@@ -225,7 +229,8 @@ export interface TimelineState {
225229
*/
226230
export interface TimelineEditor extends EditData {
227231
/**
228-
* @description 编辑区域距离顶部滚动距离 (用于控制与编辑行滚动同步)
232+
* @description 编辑区域距离顶部滚动距离 (请使用ref.setScrollTop代替)
233+
* @deprecated
229234
*/
230235
scrollTop?: number;
231236
/**

0 commit comments

Comments
 (0)