This commit is contained in:
Benjamin Toby
2025-07-20 10:56:17 +01:00
parent b6a5982f02
commit 668b596402
13 changed files with 59 additions and 100 deletions
+1
View File
@@ -69,6 +69,7 @@ export default function LinkList({
{...props}
className={twMerge(
"flex flex-row items-center gap-1",
"twui-link-list",
props.className
)}
>
@@ -1,28 +0,0 @@
import MDEditor from "@uiw/react-md-editor";
import rehypeSanitize from "rehype-sanitize";
import React from "react";
import remarkGfm from "remark-gfm";
import rehypePrismPlus from "rehype-prism-plus";
import ReactDOM from "react-dom";
export default function MarkdownEditor() {
const [value, setValue] = React.useState<any>(
`**Hello world!!!** <IFRAME SRC=\"javascript:javascript:alert(window.origin);\"></IFRAME>`
);
React.useEffect(() => {
console.log("value", value);
}, [value]);
return ReactDOM.createPortal(
<MDEditor
value={value}
onChange={setValue}
previewOptions={{
rehypePlugins: [rehypeSanitize, rehypePrismPlus],
remarkPlugins: [remarkGfm],
}}
/>,
document.getElementById("markdown-modal-root") as HTMLElement
);
}
@@ -1,7 +1,6 @@
import React from "react";
import Button from "../../layout/Button";
import Border from "../../elements/Border";
import { LocalStorageDict } from "@/package-shared/dict/local-storage-dict";
type Props = {
preview: boolean;
@@ -18,45 +17,30 @@ export default function MarkdownEditorSelectorButtons({
}: Props) {
const [ready, setReady] = React.useState(false);
const defSbsName = "TWUIMarkdownEditorDefaultSideBySide";
const defPrevName = "TWUIMarkdownEditorDefaultPreview";
React.useEffect(() => {
if (!ready) return;
if (sideBySide) {
localStorage.setItem(
LocalStorageDict["MarkdownEditorDefaultSideBySide"],
"true"
);
localStorage.setItem(defSbsName, "true");
} else {
localStorage.removeItem(
LocalStorageDict["MarkdownEditorDefaultSideBySide"]
);
localStorage.removeItem(defSbsName);
}
if (preview) {
localStorage.setItem(
LocalStorageDict["MarkdownEditorDefaultPreview"],
"true"
);
localStorage.setItem(defPrevName, "true");
} else {
localStorage.removeItem(
LocalStorageDict["MarkdownEditorDefaultPreview"]
);
localStorage.removeItem(defPrevName);
}
}, [sideBySide, preview, ready]);
React.useEffect(() => {
if (
localStorage.getItem(
LocalStorageDict["MarkdownEditorDefaultPreview"]
)
) {
if (localStorage.getItem(defPrevName)) {
setPreview(true);
}
if (
!localStorage.getItem(
LocalStorageDict["MarkdownEditorDefaultSideBySide"]
)
) {
if (!localStorage.getItem(defSbsName)) {
setSideBySide(false);
}