diff --git a/packages/repl/package.json b/packages/repl/package.json index 428a7fe..8233bc0 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -24,6 +24,7 @@ "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "filesize": "^10.1.6", + "idb-keyval": "^6.2.1", "lucide-solid": "^0.445.0", "md5": "^2.3.0", "monaco-editor": "0.52.0", diff --git a/packages/repl/src/App.tsx b/packages/repl/src/App.tsx index c13d922..873acbf 100644 --- a/packages/repl/src/App.tsx +++ b/packages/repl/src/App.tsx @@ -1,10 +1,8 @@ import type { RunnerController } from './components/runner/Runner.tsx' import { ColorModeProvider, ColorModeScript } from '@kobalte/core' -import { - QueryClient, - QueryClientProvider, -} from '@tanstack/solid-query' +import { QueryClient } from '@tanstack/solid-query' +import { PersistQueryClientProvider } from '@tanstack/solid-query-persist-client' import { LucidePartyPopper } from 'lucide-solid' import { workerInit } from 'mtcute-repl-worker/client' import { createSignal, lazy, onCleanup, onMount, Show } from 'solid-js' @@ -17,6 +15,7 @@ import { SettingsDialog, type SettingsTab } from './components/settings/Settings import { Updater } from './components/Updater.tsx' import { Resizable, ResizableHandle, ResizablePanel } from './lib/components/ui/resizable.tsx' import { Toaster } from './lib/components/ui/sonner.tsx' +import { createIdbPersister } from './store/query-persist.ts' const Editor = lazy(() => import('./components/editor/Editor.tsx')) @@ -41,6 +40,7 @@ export function App() { if (localBuild === null || new Date(localBuild) !== new Date(latestBuild)) { localStorage.setItem('repl:buildVersion', latestBuild) + queryClient.clear() setTimeout(() => { toast.custom(t => (
- +