import { keyframes } from "@emotion/react"; import { Center, Text, Flex, Avatar, Accordion, Box, Stack, Container, Divider, ActionIcon, Tooltip } from "@mantine/core"; import React from "react"; import CodeBlock from "@/views/CodeBlock"; // @ts-ignore import SvgAvatarDevChat from '@/views/avatar_devchat.svg'; // @ts-ignore import SvgAvatarUser from '@/views/avatar_spaceman.png'; import { IconCheck, IconCopy } from "@tabler/icons-react"; import { useAppDispatch, useAppSelector } from '@/views/hooks'; import { selectGenerating, selectResponsed, selectMessages, } from './chatSlice'; import { setContexts, setValue, } from './inputSlice'; const MessageBlink = (props: any) => { const { messageType, lastMessage } = props; const generating = useAppSelector(selectGenerating); const responsed = useAppSelector(selectResponsed); const blink = keyframes({ '50%': { opacity: 0 }, }); return (generating && messageType === 'bot' && lastMessage ? | : <>); }; const MessageContext = (props: any) => { const { contexts } = props; return (contexts && { contexts?.map((item: any, index: number) => { const { context } = item; return ( {'command' in context ? context.command : context.path} { context.content ?
{context.content}
:
No content
}
); }) }
); }; const MessageHeader = (props: any) => { const { type, message, contexts } = props; const dispatch = useAppDispatch(); const [refilled, setRefilled] = React.useState(false); return ( { type === 'bot' ? : } {type === 'bot' ? 'DevChat' : 'User'} {type === 'user' ? { dispatch(setValue(message)); dispatch(setContexts(contexts)); setRefilled(true); setTimeout(() => { setRefilled(false); }, 2000); }}> {refilled ? : } : <> } ); }; const MessageContainer = (props: any) => { const { width } = props; const messages = useAppSelector(selectMessages); return messages.map((item: any, index: number) => { const { message: messageText, type: messageType, contexts } = item; // setMessage(messageText); return {index !== messages.length - 1 && } ; }); }; export default MessageContainer;