提交 ccc8a177 authored 作者: 王鹏飞's avatar 王鹏飞

refactor(admin): scope editor node dialogs to instances

上级 2129a2d5
...@@ -117,7 +117,7 @@ const renderChapterSection = (elem, children, editor) => { ...@@ -117,7 +117,7 @@ const renderChapterSection = (elem, children, editor) => {
size: size, size: size,
family: family, family: family,
}; };
localStorage.setItem("chapterItemNum", JSON.stringify(data)); editor.emit("wangeditor-customer:legacy-dialog", { key: "chapterItemNum", payload: data });
callback && callback(data); callback && callback(data);
} /* 其他... */, } /* 其他... */,
}, },
......
...@@ -123,7 +123,7 @@ const renderChapterHeader = (elem, children, editor) => { ...@@ -123,7 +123,7 @@ const renderChapterHeader = (elem, children, editor) => {
size: size, size: size,
family: family, family: family,
}; };
localStorage.setItem("chapterTitleNum", JSON.stringify(data)); editor.emit("wangeditor-customer:legacy-dialog", { key: "chapterTitleNum", payload: data });
callback && callback(data); callback && callback(data);
} /* 其他... */, } /* 其他... */,
}, },
......
...@@ -229,7 +229,7 @@ const renderExpandRead = (elem, children, editor) => { ...@@ -229,7 +229,7 @@ const renderExpandRead = (elem, children, editor) => {
flex, flex,
theme, theme,
}; };
localStorage.setItem("chapterExpand", JSON.stringify(data)); editor.emit("wangeditor-customer:legacy-dialog", { key: "chapterExpand", payload: data });
}, },
}, },
}, },
......
...@@ -115,7 +115,7 @@ const renderExpandRead = (elem, children, editor) => { ...@@ -115,7 +115,7 @@ const renderExpandRead = (elem, children, editor) => {
theme, theme,
fontsize, fontsize,
}; };
localStorage.setItem("chapterExpand", JSON.stringify(data)); editor.emit("wangeditor-customer:legacy-dialog", { key: "chapterExpand", payload: data });
}, },
}, },
}, },
......
...@@ -83,9 +83,7 @@ const renderGalleryInline = (elem, children, editor) => { ...@@ -83,9 +83,7 @@ const renderGalleryInline = (elem, children, editor) => {
ev.stopPropagation(); ev.stopPropagation();
ev.preventDefault(); ev.preventDefault();
localStorage.setItem( editor.emit("wangeditor-customer:legacy-dialog", { key: "galleryNum", payload: {
"galleryNum",
JSON.stringify({
title, title,
random: random, random: random,
i: Math.random(), i: Math.random(),
...@@ -93,8 +91,7 @@ const renderGalleryInline = (elem, children, editor) => { ...@@ -93,8 +91,7 @@ const renderGalleryInline = (elem, children, editor) => {
flex: flex, flex: flex,
theme, theme,
fontsize, fontsize,
}), } });
);
}, },
}, },
}, },
......
...@@ -205,16 +205,13 @@ const renderGallery = (elem, children, editor) => { ...@@ -205,16 +205,13 @@ const renderGallery = (elem, children, editor) => {
ev.stopPropagation(); ev.stopPropagation();
ev.preventDefault(); ev.preventDefault();
localStorage.setItem( editor.emit("wangeditor-customer:legacy-dialog", { key: "galleryNum", payload: {
"galleryNum",
JSON.stringify({
title, title,
random: random, random: random,
i: Math.random(), i: Math.random(),
galleryList: galleryList, galleryList: galleryList,
flex: flex, flex: flex,
}), } });
);
callback && callback(title, random, galleryList, flex); callback && callback(title, random, galleryList, flex);
}, },
}, },
...@@ -284,16 +281,13 @@ const renderGallery = (elem, children, editor) => { ...@@ -284,16 +281,13 @@ const renderGallery = (elem, children, editor) => {
ev.stopPropagation(); ev.stopPropagation();
ev.preventDefault(); ev.preventDefault();
localStorage.setItem( editor.emit("wangeditor-customer:legacy-dialog", { key: "galleryNum", payload: {
"galleryNum",
JSON.stringify({
title, title,
random: random, random: random,
i: Math.random(), i: Math.random(),
galleryList: galleryList, galleryList: galleryList,
flex: flex, flex: flex,
}), } });
);
callback && callback(title, random, galleryList, flex); callback && callback(title, random, galleryList, flex);
}, },
}, },
......
...@@ -90,9 +90,7 @@ const renderChapterLink = (elem, children, editor) => { ...@@ -90,9 +90,7 @@ const renderChapterLink = (elem, children, editor) => {
ev.stopPropagation(); ev.stopPropagation();
ev.preventDefault(); ev.preventDefault();
localStorage.setItem( editor.emit("wangeditor-customer:legacy-dialog", { key: "linkNum", payload: {
"linkNum",
JSON.stringify({
title, title,
linktype, linktype,
random: random, random: random,
...@@ -101,8 +99,7 @@ const renderChapterLink = (elem, children, editor) => { ...@@ -101,8 +99,7 @@ const renderChapterLink = (elem, children, editor) => {
chapters, chapters,
theme, theme,
fontsize, fontsize,
}), } });
);
} /* 其他... */, } /* 其他... */,
}, },
}, },
......
...@@ -215,10 +215,10 @@ const renderPractice = (elem, children, editor) => { ...@@ -215,10 +215,10 @@ const renderPractice = (elem, children, editor) => {
try { try {
callback && callback(practiceNum, title); callback && callback(practiceNum, title);
} catch (e) {} } catch (e) {}
localStorage.setItem( editor.emit("wangeditor-customer:legacy-dialog", {
"practiceNum", key: "practiceNum",
JSON.stringify({ practiceNum, title, theme, random: Math.random() }), payload: { practiceNum, title, theme, random: Math.random() },
); });
} /* 其他... */, } /* 其他... */,
}, },
}, },
......
...@@ -118,9 +118,7 @@ const renderChapterTooltip = (elem, children, editor) => { ...@@ -118,9 +118,7 @@ const renderChapterTooltip = (elem, children, editor) => {
ev.stopPropagation(); ev.stopPropagation();
ev.preventDefault(); ev.preventDefault();
localStorage.setItem( editor.emit("wangeditor-customer:legacy-dialog", { key: "tooltipNum", payload: {
"tooltipNum",
JSON.stringify({
title, title,
tooltipType, tooltipType,
random: random, random: random,
...@@ -129,8 +127,7 @@ const renderChapterTooltip = (elem, children, editor) => { ...@@ -129,8 +127,7 @@ const renderChapterTooltip = (elem, children, editor) => {
content, content,
i: Math.random(), i: Math.random(),
fontsize, fontsize,
}), } });
);
} /* 其他... */, } /* 其他... */,
}, },
}, },
......
...@@ -22,7 +22,6 @@ import timesave from "@/assets/images/timesave.png"; ...@@ -22,7 +22,6 @@ import timesave from "@/assets/images/timesave.png";
import relativeTime from "dayjs/plugin/relativeTime"; import relativeTime from "dayjs/plugin/relativeTime";
dayjs.extend(relativeTime); dayjs.extend(relativeTime);
import { storageChange } from "@/utils/storage.js";
import ImageModal from "./features/image/ImageDialog"; import ImageModal from "./features/image/ImageDialog";
import VideoModal from "./features/video/VideoDialog"; import VideoModal from "./features/video/VideoDialog";
...@@ -50,7 +49,6 @@ const tabsMenu = [ ...@@ -50,7 +49,6 @@ const tabsMenu = [
{ key: "style", title: "样式模版" }, { key: "style", title: "样式模版" },
]; ];
storageChange();
const WangEditorCustomer = (props, ref) => { const WangEditorCustomer = (props, ref) => {
const { const {
...@@ -102,59 +100,39 @@ const WangEditorCustomer = (props, ref) => { ...@@ -102,59 +100,39 @@ const WangEditorCustomer = (props, ref) => {
const [isOnline, setIsOnline] = useState(false); const [isOnline, setIsOnline] = useState(false);
const handleSetItemEvent = (e) => { const handleLegacyDialog = ({ key, payload }) => {
if (e.key === "chapterTitleNum") { if (key === "chapterTitleNum") {
setTitleInfo(JSON.parse(e.newValue)); setTitleInfo(payload);
setTitleVisible(true); setTitleVisible(true);
setTimeout(() => { } else if (key === "chapterItemNum") {
window.localStorage.removeItem("chapterTitleNum"); setSectionInfo(payload);
}, 100);
} else if (e.key === "chapterItemNum") {
setSectionInfo(JSON.parse(e.newValue));
setSectionVisible(true); setSectionVisible(true);
setTimeout(() => { } else if (key === "practiceNum") {
window.localStorage.removeItem("chapterItemNum"); const { practiceNum, title, theme } = payload;
}, 100);
} else if (e.key === "practiceNum") {
const { practiceNum, title, theme } = JSON.parse(e.newValue);
dispatch(setPracticeRandom({ practiceNum, practiceTitle: title, practiceTheme: theme })); dispatch(setPracticeRandom({ practiceNum, practiceTitle: title, practiceTheme: theme }));
setPracticeVisible(true); setPracticeVisible(true);
setTimeout(() => { } else if (key === "galleryNum") {
window.localStorage.removeItem("practiceNum"); setGalleryInfo(payload);
}, 100);
} else if (e.key === "galleryNum") {
setGalleryInfo(JSON.parse(e.newValue));
setGalleryVisible(true); setGalleryVisible(true);
setTimeout(() => { } else if (key === "tooltipNum") {
window.localStorage.removeItem("galleryNum"); setTooltipInfo(payload);
}, 100);
} else if (e.key === "tooltipNum") {
setTooltipInfo(JSON.parse(e.newValue));
setTooltipVisible(true); setTooltipVisible(true);
setTimeout(() => { } else if (key === "linkNum") {
window.localStorage.removeItem("tooltipNum"); setLinkInfo(payload);
}, 100);
} else if (e.key === "linkNum") {
setLinkInfo(JSON.parse(e.newValue));
setLinkVisible(true); setLinkVisible(true);
setTimeout(() => { } else if (key === "chapterExpand") {
window.localStorage.removeItem("linkNum"); setExpandInfo(payload);
}, 100);
} else if (e.key === "chapterExpand") {
setExpandInfo(JSON.parse(e.newValue));
setExpandVisible(true); setExpandVisible(true);
setTimeout(() => {
window.localStorage.removeItem("chapterExpand");
}, 100);
} }
}; };
useEffect(() => { useEffect(() => {
window.addEventListener("setItemEvent", handleSetItemEvent); if (!editor) return;
editor.on("wangeditor-customer:legacy-dialog", handleLegacyDialog);
return () => { return () => {
window.removeEventListener("setItemEvent", handleSetItemEvent); editor.off("wangeditor-customer:legacy-dialog", handleLegacyDialog);
}; };
}, []); }, [editor]);
const closePanel = () => { const closePanel = () => {
dispatch(setPracticeRandom({ practiceNum: null, practiceTitle: null })); dispatch(setPracticeRandom({ practiceNum: null, practiceTitle: null }));
......
export const storageChange = () => {
let orignalSetItem = localStorage.setItem;
localStorage.setItem = function (key, newValue) {
let setItemEvent = new Event("setItemEvent");
setItemEvent.key = key;
setItemEvent.newValue = newValue;
setItemEvent.oldValue = localStorage.getItem(key);
window.dispatchEvent(setItemEvent);
orignalSetItem.apply(this, arguments);
};
};
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论