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;