openhands / src /components /shared /buttons /openhands-logo-button.tsx
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
9b906ea verified
Raw
History Blame Contribute Delete
1.17 kB
import { useTranslation } from "react-i18next";
import OpenHandsLogo from "#/assets/branding/openhands-logo.svg?react";
import { NavigationLink } from "#/components/shared/navigation-link";
import { I18nKey } from "#/i18n/declaration";
import { cn } from "#/utils/utils";
const DEFAULT_LOGO_WIDTH = 46;
const DEFAULT_LOGO_HEIGHT = 30;
export type OpenHandsLogoButtonProps = {
className?: string;
/** Applied to the root `<svg>` (e.g. `max-w-none` so Tailwind preflight doesn’t clamp wide marks inside a narrow flex slot). */
logoClassName?: string;
logoWidth?: number;
logoHeight?: number;
};
export function OpenHandsLogoButton({
className,
logoClassName,
logoWidth = DEFAULT_LOGO_WIDTH,
logoHeight = DEFAULT_LOGO_HEIGHT,
}: OpenHandsLogoButtonProps = {}) {
const { t } = useTranslation("openhands");
const ariaLabel = t(I18nKey.BRANDING$OPENHANDS_LOGO);
return (
<NavigationLink
to="/conversations"
aria-label={ariaLabel}
className={cn(className)}
>
<OpenHandsLogo
width={logoWidth}
height={logoHeight}
className={cn("shrink-0", logoClassName)}
/>
</NavigationLink>
);
}