mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-23 10:46:12 +01:00
* feat: Refactor ChatForm and StopButton components for improved styling and localization * feat: Refactor AudioRecorder, ChatForm, AttachFile, and SendButton components for improved styling and layout * feat: Add RevokeAllKeys component and update styling for buttons and inputs * feat: Refactor ClearChats component and update ClearConvos functionality for improved clarity and user experience * feat: Remove ClearConvos component and update related imports and functionality in Avatar and DeleteCacheButton components * feat: Rename DeleteCacheButton to DeleteCache and update related imports; enhance confirmation message in localization * feat: Update ChatForm layout for RTL support and improve component structure * feat: Adjust ChatForm layout for improved RTL support and alignment * feat: Refactor Bookmark components to use new UI elements and improve styling * feat: Update FileSearch and ShareAgent components for improved button styling and layout * feat: Update ChatForm and TextareaHeader styles for improved UI consistency * feat: Refactor Nav components for improved styling and layout adjustments * feat: Update button sizes and padding for improved UI consistency across chat components * feat: Remove ClearChatsButton test file as part of code cleanup
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import React, { forwardRef } from 'react';
|
|
import { useWatch } from 'react-hook-form';
|
|
import type { Control } from 'react-hook-form';
|
|
import { TooltipAnchor } from '~/components/ui';
|
|
import { SendIcon } from '~/components/svg';
|
|
import { useLocalize } from '~/hooks';
|
|
import { cn } from '~/utils';
|
|
|
|
type SendButtonProps = {
|
|
disabled: boolean;
|
|
control: Control<{ text: string }>;
|
|
};
|
|
|
|
const SubmitButton = React.memo(
|
|
forwardRef((props: { disabled: boolean }, ref: React.ForwardedRef<HTMLButtonElement>) => {
|
|
const localize = useLocalize();
|
|
return (
|
|
<TooltipAnchor
|
|
description={localize('com_nav_send_message')}
|
|
render={
|
|
<button
|
|
ref={ref}
|
|
aria-label={localize('com_nav_send_message')}
|
|
id="send-button"
|
|
disabled={props.disabled}
|
|
className={cn(
|
|
'rounded-full bg-text-primary p-2 text-text-primary outline-offset-4 transition-all duration-200 disabled:cursor-not-allowed disabled:text-text-secondary disabled:opacity-10',
|
|
)}
|
|
data-testid="send-button"
|
|
type="submit"
|
|
>
|
|
<span className="" data-state="closed">
|
|
<SendIcon size={24} />
|
|
</span>
|
|
</button>
|
|
}
|
|
></TooltipAnchor>
|
|
);
|
|
}),
|
|
);
|
|
|
|
const SendButton = React.memo(
|
|
forwardRef((props: SendButtonProps, ref: React.ForwardedRef<HTMLButtonElement>) => {
|
|
const data = useWatch({ control: props.control });
|
|
return <SubmitButton ref={ref} disabled={props.disabled || !data.text} />;
|
|
}),
|
|
);
|
|
|
|
export default SendButton;
|