UNPKG

@teamsparta/chat-ui

Version:
77 lines (72 loc) 2.22 kB
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;