diff --git a/src/components/DrawBot.jsx b/src/components/DrawBot.jsx
new file mode 100644
index 0000000..50d0fd3
--- /dev/null
+++ b/src/components/DrawBot.jsx
@@ -0,0 +1,47 @@
+import React, { useContext, useState } from "react";
+import { Button, Input, Avatar } from "@douyinfe/semi-ui";
+import { IconSend } from "@douyinfe/semi-icons";
+import { BotMessageContext } from "../pages/Editor";
+import botIcon from "../assets/bot.png";
+
+export default function DrawBot() {
+ const [message, setMessage] = useState("");
+ const { botMessages } = useContext(BotMessageContext);
+
+ return (
+
+
+ {botMessages.map((m, i) => (
+
+
+ {m.sender === "bot" ? "drawBOT" : "You"}
+
+
+
+ {m.sender === "bot" ? "drawBOT" : "You"}
+
+
{m.message}
+
+
+ ))}
+
+
+
+ );
+}
diff --git a/src/components/sidebar.jsx b/src/components/sidebar.jsx
index 9b6a040..b11f912 100644
--- a/src/components/sidebar.jsx
+++ b/src/components/sidebar.jsx
@@ -7,12 +7,14 @@ import timeLineDark from "../assets/process_dark.png";
import todo from "../assets/calendar.png";
import { Tooltip, SideSheet, List, Badge } from "@douyinfe/semi-ui";
import {
+ BotMessageContext,
MessageContext,
SettingsContext,
UndoRedoContext,
} from "../pages/Editor";
import Todo from "./Todo";
import Chat from "./Chat";
+import DrawBot from "./DrawBot";
export default function Sidebar() {
const SidesheetType = {
@@ -26,9 +28,12 @@ export default function Sidebar() {
const { undoStack } = useContext(UndoRedoContext);
const { messages } = useContext(MessageContext);
const { settings } = useContext(SettingsContext);
+ const { botMessages } = useContext(BotMessageContext);
const [sidesheet, setSidesheet] = useState(SidesheetType.NONE);
const [seen, setSeen] = useState(0);
+ const [seenBot, setSeenBot] = useState(0);
const [count, setCount] = useState(messages.length - seen);
+ const [botCount, setBotCount] = useState(botMessages.length - seenBot);
const getTitle = (type) => {
switch (type) {
@@ -40,21 +45,28 @@ export default function Sidebar() {
className="w-7"
alt="chat icon"
/>
- Timeline
+ Timeline
);
case SidesheetType.CHAT:
return (

-
Chat
+
Chat
);
case SidesheetType.TODO:
return (

-
To-do list
+
To-do list
+
+ );
+ case SidesheetType.BOT:
+ return (
+
+

+
drawBOT
);
default:
@@ -70,6 +82,8 @@ export default function Sidebar() {
return ;
case SidesheetType.CHAT:
return ;
+ case SidesheetType.BOT:
+ return ;
default:
break;
}
@@ -77,9 +91,20 @@ export default function Sidebar() {
useEffect(() => {
if (sidesheet !== SidesheetType.CHAT) {
- setCount((c) => messages.length - seen);
+ setCount(messages.length - seen);
}
- }, [messages.length, seen, sidesheet, SidesheetType.CHAT]);
+ if (sidesheet !== SidesheetType.BOT) {
+ setBotCount(botMessages.length - seenBot);
+ }
+ }, [
+ sidesheet,
+ seen,
+ messages.length,
+ SidesheetType.CHAT,
+ seenBot,
+ botMessages.length,
+ SidesheetType.BOT,
+ ]);
return (
<>
@@ -126,17 +151,33 @@ export default function Sidebar() {
/>
-
-
+
+
+
+
{
+ if (sidesheet === SidesheetType.CHAT) {
+ setSeen(messages.length);
+ } else if (sidesheet === SidesheetType.BOT) {
+ setSeenBot(botMessages.length);
+ }
setSidesheet(SidesheetType.NONE);
- setSeen(messages.length);
}}
width={340}
title={getTitle(sidesheet)}
diff --git a/src/pages/editor.jsx b/src/pages/editor.jsx
index 0429967..00f5d15 100644
--- a/src/pages/editor.jsx
+++ b/src/pages/editor.jsx
@@ -24,6 +24,7 @@ export const UndoRedoContext = createContext();
export const SelectContext = createContext();
export const TaskContext = createContext();
export const MessageContext = createContext();
+export const BotMessageContext = createContext();
export const TypeContext = createContext();
export default function Editor(props) {
@@ -57,6 +58,9 @@ export default function Editor(props) {
});
const [tasks, setTasks] = useState([]);
const [messages, setMessages] = useState([]);
+ const [botMessages, setBotMessages] = useState([
+ { sender: "bot", message: "Hey there! How can I help you?" },
+ ]);
const [undoStack, setUndoStack] = useState([]);
const [redoStack, setRedoStack] = useState([]);
const [selectedElement, setSelectedElement] = useState({
@@ -579,7 +583,11 @@ export default function Editor(props) {
-
+
+
+
)}