File size: 1,172 Bytes
9b906ea | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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>
);
}
|