@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
51 lines (50 loc) • 1.57 kB
TypeScript
import type { TextAreaRef } from 'antd/es/input/TextArea';
import { CSSProperties, ReactNode, Ref } from 'react';
import { FlexboxProps } from 'react-layout-kit';
import type { DraggablePanelProps } from "../../DraggablePanel";
import type { TextAreaProps } from "../../Input";
export interface ChatInputAreaProps extends Omit<ChatInputAreaInnerProps, 'classNames'> {
bottomAddons?: ReactNode;
classNames?: DraggablePanelProps['classNames'];
expand?: boolean;
heights?: {
headerHeight?: number;
inputHeight?: number;
maxHeight?: number;
minHeight?: number;
};
onSizeChange?: DraggablePanelProps['onSizeChange'];
ref?: Ref<TextAreaRef>;
setExpand?: (expand: boolean) => void;
topAddons?: ReactNode;
}
export interface ChatInputActionBarProps {
leftAddons?: ReactNode;
mobile?: boolean;
padding?: number | string;
ref?: Ref<HTMLDivElement>;
rightAddons?: ReactNode;
}
export interface ChatInputAreaInnerProps extends Omit<TextAreaProps, 'onInput'> {
className?: string;
loading?: boolean;
onInput?: (value: string) => void;
onSend?: () => void;
ref?: Ref<TextAreaRef>;
style?: CSSProperties;
}
export interface ChatSendButtonProps extends FlexboxProps {
className?: string;
leftAddons?: ReactNode;
loading?: boolean;
onSend?: () => void;
onStop?: () => void;
ref?: Ref<HTMLDivElement>;
rightAddons?: ReactNode;
style?: CSSProperties;
texts?: {
send?: string;
stop?: string;
warp?: string;
};
}