import { CircularProgress, IconButton, IconButtonProps, Tooltip } from "@mui/material" import { useState } from "react" export type CustomIconApi = { setWorking: (isWorking: boolean) => void } export function CustomIcon({ tooltip: tooptip, icon, color, handler, }: { tooltip?: string icon: React.ReactNode color?: IconButtonProps["color"] handler?: (api: CustomIconApi) => void }) { const [isWorking, setIsWorking] = useState(false) const api: CustomIconApi = { setWorking: setIsWorking, } const clickHandler = () => { if (handler && !isWorking) { handler(api) } } const iconButton = ( {isWorking ? : icon} ) const result = tooptip ? {iconButton} : iconButton return result }