Updates
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user