import { TooltipPositionContext } from "@root/src/contexts/TooltipPositionContext"; import { ButtonHTMLAttributes, ReactNode, useCallback, useContext, useMemo, } from "react"; interface RoundButtonBaseProps { children: ReactNode; buttonProps?: ButtonHTMLAttributes; tooltipText?: string; } const RoundButtonBase: React.FC = ({ children, buttonProps, tooltipText, }) => { const tooltipPosition = useContext(TooltipPositionContext); const chooseTooltipPosition = useCallback(() => { if (tooltipPosition === "top") return "tooltip-top"; if (tooltipPosition === "bottom") return "tooltip-bottom"; if (tooltipPosition === "left") return "tooltip-left"; if (tooltipPosition === "right") return "tooltip-right"; }, [tooltipPosition]); const roundButtonBase = useMemo(() => { const tooltipDivProps = { className: "tooltip" + " " + chooseTooltipPosition(), "data-tip": tooltipText, }; if (!tooltipText || !tooltipPosition) return ( ); else { return (
); } }, [ buttonProps, children, chooseTooltipPosition, tooltipPosition, tooltipText, ]); return roundButtonBase; }; export default RoundButtonBase;