import { useContext } from "react"; import appContext from "../stores/appContext"; import { globalStateService, memoService } from "../services"; import { parseHtmlToRawText } from "../helpers/marked"; import { formatMemoContent } from "./Memo"; import "../less/preferences-section.less"; interface Props {} const PreferencesSection: React.FC = () => { const { globalState } = useContext(appContext); const { useTinyUndoHistoryCache, shouldHideImageUrl, shouldSplitMemoWord, shouldUseMarkdownParser } = globalState; const demoMemoContent = `👋 你好呀~\n我是一个demo:\n* 👏 欢迎使用memos;`; const handleOpenTinyUndoChanged = () => { globalStateService.setAppSetting({ useTinyUndoHistoryCache: !useTinyUndoHistoryCache, }); }; const handleSplitWordsValueChanged = () => { globalStateService.setAppSetting({ shouldSplitMemoWord: !shouldSplitMemoWord, }); }; const handleHideImageUrlValueChanged = () => { globalStateService.setAppSetting({ shouldHideImageUrl: !shouldHideImageUrl, }); }; const handleUseMarkdownParserChanged = () => { globalStateService.setAppSetting({ shouldUseMarkdownParser: !shouldUseMarkdownParser, }); }; const handleExportBtnClick = async () => { const formatedMemos = memoService.getState().memos.map((m) => { return { ...m, }; }); const jsonStr = JSON.stringify(formatedMemos); const element = document.createElement("a"); element.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(jsonStr)); element.setAttribute("download", "data.json"); element.style.display = "none"; document.body.appendChild(element); element.click(); document.body.removeChild(element); }; const handleFormatMemosBtnClick = async () => { const memos = memoService.getState().memos; for (const m of memos) { memoService.updateMemo(m.id, parseHtmlToRawText(m.content)); } }; return ( <>

Memo 显示相关

编辑器

其他

); }; export default PreferencesSection;