import React, { useState, useEffect } from 'react'; import useLongPress from "./LongPress"; import { iIOTElementDoubleButtonProps } from "./interface"; import './style/index.less'; const prefixCls = 'iot-element-double-button'; const IOTDoubleButton: React.FC = ({ subTitle, streamId, btnTitle, leftBtn, //按钮图标 rightBtn, handler = (val: any) => { }, ...rest }) => { const [timer, setTimer] = useState(0); const [isNoStop, setIsNoStop] = useState(false); // 不停止长按 // 长按控制 const onLongPress = (type: string) => { const time = setInterval(() => { handler(type) }, 500); setTimer(time) }; useEffect(() => { if (!isNoStop && timer) { clearInterval(timer); } }, [isNoStop, timer]); // 左 const changeLeftHnadler = useLongPress( () => { setIsNoStop(true); onLongPress('left') }, () => { handler('left') }, () => { setIsNoStop(false) }); // 右 const changeRightHnadler = useLongPress( () => { setIsNoStop(true); onLongPress('right') }, () => { handler('right') }, () => { setIsNoStop(false) }); return (
{btnTitle}
) } export default IOTDoubleButton;