feat: read content from search params (#1607)

This commit is contained in:
Max Malm 2023-04-27 01:15:40 +02:00 committed by GitHub
parent 3fad718807
commit dbb544dc92
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 1 deletions

View file

@ -14,6 +14,7 @@ import ResourceIcon from "./ResourceIcon";
import showResourcesSelectorDialog from "./ResourcesSelectorDialog";
import showCreateResourceDialog from "./CreateResourceDialog";
import "@/less/memo-editor.less";
import { clearContentQueryParam, getContentQueryParam } from "@/helpers/utils";
const listItemSymbolList = ["- [ ] ", "- [x] ", "- [X] ", "* ", "- "];
const emptyOlReg = /^(\d+)\. $/;
@ -22,6 +23,10 @@ const getEditorContentCache = (): string => {
return storage.get(["editorContentCache"]).editorContentCache ?? "";
};
const getInitialContent = (): string => {
return getContentQueryParam() ?? getEditorContentCache();
};
const setEditorContentCache = (content: string) => {
storage.set({
editorContentCache: content,
@ -286,6 +291,7 @@ const MemoEditor = () => {
editorStore.clearResourceList();
setEditorContentCache("");
editorRef.current?.setContent("");
clearContentQueryParam();
};
const handleCancelEdit = () => {
@ -378,7 +384,7 @@ const MemoEditor = () => {
const editorConfig = useMemo(
() => ({
className: `memo-editor`,
initialContent: getEditorContentCache(),
initialContent: getInitialContent(),
placeholder: t("editor.placeholder"),
fullscreen: state.fullscreen,
onContentChange: handleContentChange,

View file

@ -105,3 +105,18 @@ export const formatBytes = (bytes: number) => {
i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
};
export const getContentQueryParam = (): string | undefined => {
const urlParams = new URLSearchParams(window.location.search);
return urlParams.get("content") ?? undefined;
};
export const clearContentQueryParam = () => {
const urlParams = new URLSearchParams(window.location.search);
urlParams.delete("content");
let url = window.location.pathname;
if (urlParams.toString()) {
url += `?${urlParams.toString()}`;
}
window.history.replaceState({}, "", url);
};