diff --git a/src/FE/components/ChatMessage/ChatMessage.tsx b/src/FE/components/ChatMessage/ChatMessage.tsx index 117802a4..52962134 100644 --- a/src/FE/components/ChatMessage/ChatMessage.tsx +++ b/src/FE/components/ChatMessage/ChatMessage.tsx @@ -41,7 +41,12 @@ export const ChatMessage: FC = memo( }) => { const hasMultipleSpan = selectedMessages.find((x) => x.length > 1); return ( -
+
{selectedMessages.map((messages, index) => { return (
= memo( className={cn( messages.find((x) => x.role === ChatRole.User) ? 'flex w-full justify-end' - : 'grid grid-cols-[repeat(auto-fit,minmax(375px,1fr))] gap-4', + : 'md:grid md:grid-cols-[repeat(auto-fit,minmax(375px,1fr))] gap-4', )} > {messages.map((message) => { @@ -89,7 +94,7 @@ export const ChatMessage: FC = memo( )} > {!hasMultipleSpan && ( -
+
)} diff --git a/src/FE/components/ChatMessage/RegenerateAction.tsx b/src/FE/components/ChatMessage/RegenerateAction.tsx new file mode 100644 index 00000000..aa836e47 --- /dev/null +++ b/src/FE/components/ChatMessage/RegenerateAction.tsx @@ -0,0 +1,42 @@ +import useTranslation from '@/hooks/useTranslation'; + +import { IconRefresh } from '@/components/Icons'; + +import Tips from '../Tips/Tips'; +import { Button } from '../ui/button'; + +interface Props { + hidden?: boolean; + modelName?: string; + onRegenerate: () => any; +} + +export const RegenerateAction = (props: Props) => { + const { t } = useTranslation(); + const { hidden, onRegenerate } = props; + + const Render = () => { + return ( + { + onRegenerate(); + e.stopPropagation(); + }} + > + + + } + side="bottom" + content={t('Regenerate')!} + /> + ); + }; + + return <>{!hidden && Render()}; +}; + +export default RegenerateAction; diff --git a/src/FE/components/ChatMessage/ResponseMessageActions.tsx b/src/FE/components/ChatMessage/ResponseMessageActions.tsx index 92b53889..f32b9b01 100644 --- a/src/FE/components/ChatMessage/ResponseMessageActions.tsx +++ b/src/FE/components/ChatMessage/ResponseMessageActions.tsx @@ -5,6 +5,7 @@ import ChangeModelAction from './ChangeModelAction'; import CopyAction from './CopyAction'; import GenerateInformationAction from './GenerateInformationAction'; import PaginationAction from './PaginationAction'; +import RegenerateAction from './RegenerateAction'; export interface ResponseMessage { id: string; @@ -42,13 +43,7 @@ const ResponseMessageActions = (props: Props) => { onChangeMessage, onRegenerate, } = props; - const { - id: messageId, - siblingIds, - modelId, - modelName, - modelProviderId, - } = message; + const { id: messageId, siblingIds, modelId, modelName, parentId } = message; const currentMessageIndex = siblingIds.findIndex((x) => x === messageId); return ( @@ -68,11 +63,17 @@ const ResponseMessageActions = (props: Props) => {
+