import React, { useEffect, useState } from 'react'; import { iIOTExecutePowerProps } from './interface'; import './style/index.less'; const prefixCls = 'iot-execute-power-out'; const IOTExecutePower: React.FC = ({ title, streamId, curValue, subTitle, icon, btnIcon, disabled, streamName, executeValue, isBuild = false, handler, ...rest }) => { const [clickActive, setClickActive] = useState(false); const [textActive, setTextActive] = useState(false); let timer1: any = null; let timer2: any = null; useEffect(() => { if (clickActive) { timer1 = setTimeout(() => { setClickActive(false); }, 1500) } }, [clickActive]) useEffect(() => { if (textActive) { timer2 = setTimeout(() => { setTextActive(false); }, 1000) } }, [textActive]) return ( <>
{ icon?.show && (
) }
{title}
{ subTitle?.show && (
{subTitle['value']}
) }
{ if (!executeValue || clickActive) return; const item: any = { value: executeValue, streamId, }; handler?.(item); clearTimeout(timer1); clearTimeout(timer2); setClickActive(true); timer2 = setTimeout(() => { setTextActive(true); }, 500) }}> 执行 { clickActive && ( 执行 ) }
{disabled && (
)}
{/* {getContent()} */}
); }; export default IOTExecutePower;