'use client' import type { FC } from 'react' import type { FeedbackType } from '@/app/components/base/chat/chat/type' import { ClipboardDocumentIcon, HandThumbDownIcon, HandThumbUpIcon } from '@heroicons/react/24/outline' import copy from 'copy-to-clipboard' import * as React from 'react' import { useTranslation } from 'react-i18next' import Button from '@/app/components/base/button' import { toast } from '@/app/components/base/ui/toast' import { Tooltip, TooltipContent, TooltipTrigger } from '@/app/components/base/ui/tooltip' type IResultHeaderProps = { result: string showFeedback: boolean feedback: FeedbackType onFeedback: (feedback: FeedbackType) => void } const Header: FC = ({ feedback, showFeedback, onFeedback, result, }) => { const { t } = useTranslation() return (
{t('generation.resultTitle', { ns: 'share' })}
{showFeedback && feedback.rating && feedback.rating === 'like' && ( { onFeedback({ rating: null, }) }} > {t('generation.feedback.undoLike', { ns: 'share' })} )} {showFeedback && feedback.rating && feedback.rating === 'dislike' && ( { onFeedback({ rating: null, }) }} > {t('generation.feedback.undoDislike', { ns: 'share' })} )} {showFeedback && !feedback.rating && (
{ onFeedback({ rating: 'like', }) }} > {t('generation.feedback.like', { ns: 'share' })} { onFeedback({ rating: 'dislike', }) }} > {t('generation.feedback.dislike', { ns: 'share' })}
)}
) } export default React.memo(Header)