/* * @Author: yangzonglong * @Date: 2021-07-22 16:45:05 * @version: v1.0.0 * @Descripttion: Loading * @LastEditors: yangzonglong * @LastEditTime: 2021-09-09 17:12:12 * @Auditor: */ import React, { useState, useEffect, useRef } from 'react'; import LoadingUI from './LoadingUI'; import style from './loading.module.scss'; const bgStyle: React.CSSProperties = { background: 'rgba(35, 37, 40, 0.45)' } interface MaskProps { isBg?: boolean }; const Mask = ({ isBg }: MaskProps) => { if(!isBg) return null; return
}; interface LoadingProps { visible: boolean; hideMask?: boolean // 为true时 不显示mask } const Loading: React.FC = ({ visible, hideMask }) => { const timeout = useRef(null); const [loading, setLoading] = useState(false); useEffect(() => { if (timeout.current) { window.clearTimeout(timeout.current); timeout.current = null; } timeout.current = window.setTimeout(() => { setLoading(visible); timeout.current = null; }, 200) }, [visible]); return ( <> {visible && } {!hideMask && loading && } {loading && } ) } export default Loading;