import React, { useContext, useEffect, useState } from "react"; import chatIcon from "../assets/chat.png"; import botIcon from "../assets/bot.png"; import teamIcon from "../assets/group.png"; import timeLine from "../assets/process.png"; import todo from "../assets/calendar.png"; import { Tooltip, SideSheet, List, Badge } from "@douyinfe/semi-ui"; import { MessageContext, UndoRedoContext } from "../pages/editor"; import Todo from "./todo"; import Chat from "./chat"; export default function Sidebar() { const SidesheetType = { NONE: 0, CHAT: 1, TEAM: 2, TODO: 3, TIMELINE: 4, BOT: 5, }; const { undoStack } = useContext(UndoRedoContext); const { messages } = useContext(MessageContext); const [sidesheet, setSidesheet] = useState(SidesheetType.NONE); const [seen, setSeen] = useState(0) const [count, setCount] = useState(messages.length-seen); const getTitle = (type) => { switch (type) { case SidesheetType.TIMELINE: return (
chat icon
Timeline
); case SidesheetType.CHAT: return (
chat icon
Chat
); case SidesheetType.TODO: return (
todo icon
To-do list
); default: break; } }; const getContent = (type) => { switch (type) { case SidesheetType.TIMELINE: return renderTimeline(); case SidesheetType.TODO: return ; case SidesheetType.CHAT: return ; default: break; } }; useEffect(() => { if (sidesheet !== SidesheetType.CHAT) { setCount((c) => messages.length - seen); } }, [messages.length, seen, sidesheet, SidesheetType.CHAT]); return ( <>
{ setSidesheet(SidesheetType.NONE); setSeen(messages.length); }} width={340} title={getTitle(sidesheet)} style={{ paddingBottom: "16px" }} bodyStyle={{ padding: "0px" }} > {getContent(sidesheet)} ); function renderTimeline() { if (undoStack.length > 0) { return ( {[...undoStack].reverse().map((e) => (
{e.message}
))}
); } else { return (
You havent added anything to your diagram yet.
); } } }