@teamsparta/chat-ui
Version:
simple chat-ui
77 lines (72 loc) • 2.22 kB
JSX
import { ChatContainer, MessageManager } from "../lib";
import CustomBannerSample from "./CustomChatSample";
import React from "react";
const ChatContainerSample = () => {
const messageManager = MessageManager.getInstance();
const handleSend = async (query) => {
messageManager.addUserMessage(query);
await new Promise((resolve) => setTimeout(resolve, 5000)); // 5초 기다립니다.
messageManager.addPeerMessage("답장입니다.");
};
const config = {
initialMessages: [
{
role: "custom",
content: <CustomBannerSample />,
},
{
role: "peer",
profileSrc: "/rtan_profile.png",
content:
"안녕하세요! 강의 내용 중 이해가 되지 않거나, 진행이 어려운 부분이 있다면 르탄봇에게 언제든지 물어보세요!",
date: new Date(),
},
],
profileConfig: {
name: "척척박사 르탄봇",
status: "online",
description: "바로 응답",
profileImage: "/rtan_profile.png",
theme: "dark",
handleThumbUp: () => {
console.log("thumb up");
},
handleThumbDown: () => {
console.log("thumb down");
},
},
presetQuestions: [
{
title: "자주 묻는 질문",
style: "highlight",
handler: () => {
handleSend("자주 묻는 질문");
},
},
{
title: "안녕하세요.",
handler: () => {
handleSend("안녕하세요.");
},
},
],
};
const buttonClick = () => {
messageManager.addPeerMessage("답장입니다.");
};
const buttonClick2 = () => {
messageManager.addCustomMessage(<CustomBannerSample />);
};
const buttonClick3 = () => {
messageManager.streamPeerMessage("스트림 메시지입니다.");
};
return (
<div style={{ height: "800px" }}>
<button onClick={buttonClick}>답장 추가하기</button>
<button onClick={buttonClick2}>커스텀 채팅 추가</button>
<button onClick={buttonClick3}>스트림 채팅 추가</button>
<ChatContainer config={config} handleSendMessage={handleSend} />
</div>
);
};
export default ChatContainerSample;