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 "./CodeBlock";
// @ts-ignore
import SvgAvatarDevChat from './avatar_devchat.svg';
// @ts-ignore
import SvgAvatarUser from './avatar_spaceman.png';
import { IconCheck, IconCopy } from "@tabler/icons-react";
import { useSelector } from 'react-redux';
import {
selectGenerating,
selectResponsed,
selectMessages,
} from './chatSlice';
const MessageBlink = (props: any) => {
const { messageType, lastMessage } = props;
const generating = useSelector(selectGenerating);
const responsed = useSelector(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 DefaultMessage = (
No messages yet
);
const MessageHeader = (props: any) => {
const { type, message, contexts, onRefillClick } = props;
const [refilled, setRefilled] = React.useState(false);
return (
{
type === 'bot'
?
:
}
{type === 'bot' ? 'DevChat' : 'User'}
{type === 'user'
?
{
onRefillClick({
message: message,
contexts: contexts
});
setRefilled(true);
setTimeout(() => { setRefilled(false); }, 2000);
}}>
{refilled ? : }
: <>>
}
);
};
const MessageContainer = (props: any) => {
const { width, onRefillClick } = props;
const messages = useSelector(selectMessages);
const messageList = messages.map((item: any, index: number) => {
const { message: messageText, type: messageType, contexts } = item;
// setMessage(messageText);
return (<>
{index !== messages.length - 1 && }
>);
});
return (messageList.length > 0 ? messageList : DefaultMessage);
};
export default MessageContainer;