import { Progress, Tooltip } from 'antd';
import React, { memo, useEffect, useMemo } from 'react';
const RenderProgress = memo(
(props: {
defaultOpen?: boolean;
percent: number;
steps?: number;
download?: boolean;
label?: React.ReactNode;
successPercent?: number;
successColor?: string;
}) => {
const { defaultOpen, percent, download, label, successPercent } = props;
const [open, setOpen] = React.useState(false);
const strokeColor = useMemo(() => {
if (download) {
return 'var(--ant-color-primary)';
}
if (percent <= 50) {
return 'var(--ant-color-success)';
}
if (percent <= 80) {
return 'var(--ant-color-warning)';
}
return 'var(--ant-color-error)';
}, [percent]);
useEffect(() => {
setOpen(defaultOpen || false);
}, [defaultOpen]);
const renderProgress = useMemo(() => {
return (
);
}, [percent, successPercent, strokeColor]);
return (
<>
{label ? (
{renderProgress}
) : (
renderProgress
)}
>
);
}
);
export default RenderProgress;