chat / client /src /components /Conversations /RenameButton.tsx
Zhitomir's picture
chat init
aa2e6af
Raw
History Blame Contribute Delete
1.3 kB
import type { MouseEvent, ReactElement } from 'react';
import { EditIcon, CheckMark } from '~/components/svg';
import { useLocalize } from '~/hooks';
import { cn } from '~/utils';
interface RenameButtonProps {
renaming: boolean;
renameHandler: (e: MouseEvent<HTMLButtonElement>) => void;
onRename?: (e: MouseEvent<HTMLButtonElement>) => void;
appendLabel?: boolean;
className?: string;
disabled?: boolean;
}
export default function RenameButton({
renaming,
onRename,
renameHandler,
className = '',
disabled = false,
appendLabel = false,
}: RenameButtonProps): ReactElement {
const localize = useLocalize();
const handler = renaming ? onRename : renameHandler;
return (
<button
className={cn(
'group m-1.5 flex w-full cursor-pointer items-center gap-2 rounded p-2.5 text-sm hover:bg-gray-200 focus-visible:bg-gray-200 focus-visible:outline-0 radix-disabled:pointer-events-none radix-disabled:opacity-50 dark:hover:bg-gray-600 dark:focus-visible:bg-gray-600',
className,
)}
disabled={disabled}
onClick={handler}
>
{renaming ? (
<CheckMark />
) : appendLabel ? (
<>
<EditIcon /> {localize('com_ui_rename')}
</>
) : (
<EditIcon />
)}
</button>
);
}