openhands / src /components /features /home /shared /toggle-button.tsx
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
3201ca6 verified
Raw
History Blame Contribute Delete
1 kB
import { useTranslation } from "react-i18next";
import {
ComboboxCaretIcon,
comboboxCaretButtonClassName,
} from "#/ui/combobox-caret";
import { cn } from "#/utils/utils";
import { I18nKey } from "#/i18n/declaration";
interface ToggleButtonProps {
isOpen: boolean;
disabled: boolean;
getToggleButtonProps: (
props?: Record<string, unknown>,
) => Record<string, unknown>;
iconClassName?: string;
}
export function ToggleButton({
isOpen,
disabled,
getToggleButtonProps,
iconClassName,
}: ToggleButtonProps) {
const { t } = useTranslation("openhands");
return (
<button
{...getToggleButtonProps({
disabled,
className: cn(
comboboxCaretButtonClassName,
"text-current",
isOpen && "rotate-180",
disabled && "cursor-not-allowed opacity-60",
),
})}
type="button"
aria-label={t(I18nKey.COMMON$TOGGLE_MENU)}
>
<ComboboxCaretIcon className={iconClassName} />
</button>
);
}