|
@@ -13,11 +13,13 @@ import { defaultProject, topicData } from "@/config/data";
|
|
|
import { TopicItem } from "@/types";
|
|
|
import { buildTopic } from "./mindMap";
|
|
|
import { TopicType } from "@/enum";
|
|
|
+import HistoryPanel from "@/components/HistoryPanel";
|
|
|
|
|
|
export default function MindMap() {
|
|
|
const { rightToobarActive, initMindMap, setMindProjectInfo } =
|
|
|
useModel("mindMapModel");
|
|
|
const graphRef = useRef<HTMLDivElement>(null);
|
|
|
+ const { showHistory } = useModel("appModel");
|
|
|
|
|
|
useEffect(() => {
|
|
|
graphRef.current && initMindMap(graphRef.current);
|
|
@@ -73,37 +75,44 @@ export default function MindMap() {
|
|
|
topics.push(mainTopic);
|
|
|
}
|
|
|
}
|
|
|
- setMindProjectInfo({
|
|
|
- name: graphInfo.name,
|
|
|
- desc: graphInfo?.desc || "",
|
|
|
- version: graphInfo.version,
|
|
|
- author: graphInfo?.author || "",
|
|
|
- theme: graphInfo?.theme || defaultProject.theme,
|
|
|
- structure: graphInfo?.structure || defaultProject.structure,
|
|
|
- pageSetting: {
|
|
|
- backgroundType:
|
|
|
- graphInfo?.backgroundType ||
|
|
|
- defaultProject.pageSetting.backgroundType,
|
|
|
- backgroundColor:
|
|
|
- graphInfo?.backgroundColor ||
|
|
|
- defaultProject.pageSetting.backgroundColor,
|
|
|
- backgroundImage:
|
|
|
- graphInfo?.backgroundImage ||
|
|
|
- defaultProject.pageSetting.backgroundImage,
|
|
|
- branchY: graphInfo?.branchY || defaultProject.pageSetting.branchY,
|
|
|
- branchX: graphInfo?.branchX || defaultProject.pageSetting.branchX,
|
|
|
- subTopicY: graphInfo?.subTopicY || defaultProject.pageSetting.subTopicY,
|
|
|
- subTopicX: graphInfo?.subTopicX || defaultProject.pageSetting.subTopicX,
|
|
|
- alignSameTopic:
|
|
|
- graphInfo?.alignSameTopic ||
|
|
|
- defaultProject.pageSetting.alignSameTopic,
|
|
|
- showWatermark:
|
|
|
- graphInfo?.showWatermark || defaultProject.pageSetting.showWatermark,
|
|
|
- watermarkText:
|
|
|
- graphInfo?.watermarkText || defaultProject.pageSetting.watermarkText,
|
|
|
+ setMindProjectInfo(
|
|
|
+ {
|
|
|
+ name: graphInfo.name,
|
|
|
+ desc: graphInfo?.desc || "",
|
|
|
+ version: graphInfo.version,
|
|
|
+ author: graphInfo?.author || "",
|
|
|
+ theme: graphInfo?.theme || defaultProject.theme,
|
|
|
+ structure: graphInfo?.structure || defaultProject.structure,
|
|
|
+ pageSetting: {
|
|
|
+ backgroundType:
|
|
|
+ graphInfo?.backgroundType ||
|
|
|
+ defaultProject.pageSetting.backgroundType,
|
|
|
+ backgroundColor:
|
|
|
+ graphInfo?.backgroundColor ||
|
|
|
+ defaultProject.pageSetting.backgroundColor,
|
|
|
+ backgroundImage:
|
|
|
+ graphInfo?.backgroundImage ||
|
|
|
+ defaultProject.pageSetting.backgroundImage,
|
|
|
+ branchY: graphInfo?.branchY || defaultProject.pageSetting.branchY,
|
|
|
+ branchX: graphInfo?.branchX || defaultProject.pageSetting.branchX,
|
|
|
+ subTopicY:
|
|
|
+ graphInfo?.subTopicY || defaultProject.pageSetting.subTopicY,
|
|
|
+ subTopicX:
|
|
|
+ graphInfo?.subTopicX || defaultProject.pageSetting.subTopicX,
|
|
|
+ alignSameTopic:
|
|
|
+ graphInfo?.alignSameTopic ||
|
|
|
+ defaultProject.pageSetting.alignSameTopic,
|
|
|
+ showWatermark:
|
|
|
+ graphInfo?.showWatermark ||
|
|
|
+ defaultProject.pageSetting.showWatermark,
|
|
|
+ watermarkText:
|
|
|
+ graphInfo?.watermarkText ||
|
|
|
+ defaultProject.pageSetting.watermarkText,
|
|
|
+ },
|
|
|
+ topics,
|
|
|
},
|
|
|
- topics,
|
|
|
- }, true);
|
|
|
+ true
|
|
|
+ );
|
|
|
}, [data]);
|
|
|
|
|
|
const params = useParams();
|
|
@@ -115,6 +124,12 @@ export default function MindMap() {
|
|
|
}
|
|
|
}, []);
|
|
|
|
|
|
+ const handleRevert = () => {
|
|
|
+ if (params?.id) {
|
|
|
+ run({ id: params.id });
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
useEffect(() => {
|
|
|
document.addEventListener(
|
|
|
"mousewheel",
|
|
@@ -162,6 +177,14 @@ export default function MindMap() {
|
|
|
<Layout className="w-100vw h-100vh">
|
|
|
<Layout.Content className={styles.container + " relative"}>
|
|
|
<div ref={graphRef} className="w-full h-full"></div>
|
|
|
+ {showHistory ? (
|
|
|
+ <div className="absolute bottom-0 left-0 h-95vh w-200px shadow-md">
|
|
|
+ <HistoryPanel
|
|
|
+ graphId={params.id ? params.id : ""}
|
|
|
+ onRevert={handleRevert}
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ ) : null}
|
|
|
<HeaderToolbar />
|
|
|
<RightToolbar />
|
|
|
<Footer />
|