update 0.12.2

This commit is contained in:
hufeixiong
2022-02-10 11:25:39 +08:00
parent 6f046fa430
commit f55717f7bd
7 changed files with 64 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
{
"version": "0.12.0",
"version": "0.12.2",
"license": "MIT",
"main": "dist/index.js",
"module": "dist/dooringx-lib.esm.js",

View File

@@ -195,7 +195,14 @@ const needleHeadEvent = (
config.timelineNeedleConfig.status === 'start' ||
!config.timelineNeedleConfig.isRefresh
) {
let init = initialLeft;
setNeedle((p) => {
init = p;
return p;
});
await config.timelineNeedleConfig.resetFunc();
// 重置后需要再回正
setNeedle(init);
}
setNeedle((p) => {
needleState.origin = p;
@@ -242,8 +249,39 @@ export const needleMoveEvent = (config: UserConfig) => {
needleState.isDrag = false;
needleState.startX = 0;
},
onDoubleClick: () => {
// 这个暂时搞不定,可以在起始点埋个点位得到坐标值进行计算。
};
};
const needleDoubleClick = (config: UserConfig) => {
return {
onDoubleClick: async (e: React.MouseEvent) => {
const dom = config.timelineConfig.scrollDom;
if (dom) {
const setNeedle = config.timelineNeedleConfig.setNeedle;
const left = dom.getBoundingClientRect().left + dom.scrollLeft;
const mouseLeft = e.clientX;
e.persist();
e.stopPropagation();
await config.timelineNeedleConfig.resetFunc();
config.timelineNeedleConfig.status = 'stop';
let diff = mouseLeft - left;
if (diff <= initialLeft) {
config.timelineNeedleConfig.current = 0;
diff = initialLeft;
} else if (diff > ruleWidth) {
config.timelineNeedleConfig.current = (ruleWidth - initialLeft) / 20;
diff = ruleWidth;
} else {
config.timelineNeedleConfig.current = (diff - initialLeft) / 20;
}
setNeedle(diff);
config.blockForceUpdate.forEach((v) => {
v();
});
if (timer) {
window.clearInterval(timer);
}
}
},
};
};
@@ -491,12 +529,15 @@ export function TimeLine(props: TimeLineProps) {
</div>
<div
className="yh-timeline-needle-head-wrap"
style={{
width: `calc(100% - ${leftWidth}px)`,
borderBottom: '1px solid #dadada',
overflow: 'hidden',
position: 'relative',
cursor: 'crosshair',
}}
{...needleDoubleClick(props.config)}
>
<div
className="yh-timeline-needle-head"