import { useCallback } from 'react'; import type { LinkProps } from 'next/link'; import { useTranslation } from 'react-i18next'; import ReactMarkdown from 'react-markdown'; import { NextLink } from '~/components/ReactMarkdownComponents/NextLink'; import { useRagSearchModal } from '../../../client/stores/rag-search'; import styles from './MessageCard.module.scss'; const moduleClass = styles['message-card'] ?? ''; const userMessageCardModuleClass = styles['user-message-card'] ?? ''; const UserMessageCard = ({ children }: { children: string }): JSX.Element => (
{children}
); const assistantMessageCardModuleClass = styles['assistant-message-card'] ?? ''; const NextLinkWrapper = (props: LinkProps & {children: string, href: string}): JSX.Element => { const { close: closeRagSearchModal } = useRagSearchModal(); const onClick = useCallback(() => { closeRagSearchModal(); }, [closeRagSearchModal]); return ( {props.children} ); }; const AssistantMessageCard = ({ children }: { children: string }): JSX.Element => { const { t } = useTranslation(); return (
growi_ai
{ children.length > 0 ? ( {children} ) : ( {t('modal_aichat.progress_label')} more_horiz ) }
); }; type Props = { role: 'user' | 'assistant', children: string, } export const MessageCard = (props: Props): JSX.Element => { const { role, children } = props; return role === 'user' ? {children} : {children}; };