import { ViewPlugin, ViewUpdate } from '@codemirror/view' export const persistence = ViewPlugin.fromClass( class { saveTimeout?: ReturnType update(update: ViewUpdate) { if (update.docChanged) { if (this.saveTimeout) clearTimeout(this.saveTimeout) this.saveTimeout = setTimeout(() => { setContent(update.state.doc.toString()) }, 500) } } destroy() { if (this.saveTimeout) clearTimeout(this.saveTimeout) } } ) export const getContent = () => { return localStorage.getItem('shrimp-editor-content') || '' } export const setContent = (data: string) => { localStorage.setItem('shrimp-editor-content', data) }