mirror of
https://github.com/multica-ai/multica.git
synced 2026-06-17 03:38:32 +02:00
- Add CoreProvider to @multica/core/platform — single component for API/stores/WS/QueryClient init - Delete 13 platform files across web (6) and desktop (7), each app keeps only navigation.tsx - Extract AppSidebar + DashboardLayout to @multica/views/layout - Extract LoginPage to @multica/views/auth - Extract AgentsPage (1,279 lines) to @multica/views/agents (11 files) - Extract InboxPage (468 lines) to @multica/views/inbox (5 files) - Extract SettingsPage + 6 tabs (1,277 lines) to @multica/views/settings (9 files) - Fix AppLink to use forwardRef for Base UI render prop compatibility - Fix Tailwind @source to scan .ts files (status config with bg-info/bg-warning) - Suppress next-themes React 19 script tag warning - Add WebProviders wrapper for Server→Client function passing - Wire all desktop routes to shared views, remove PlaceholderPage - Net: +106 / -4,094 lines Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
14 lines
472 B
TypeScript
14 lines
472 B
TypeScript
import type { StorageAdapter } from "../types/storage";
|
|
|
|
/** SSR-safe localStorage. Works in both Next.js (SSR) and Electron (always client). */
|
|
export const defaultStorage: StorageAdapter = {
|
|
getItem: (k) =>
|
|
typeof window !== "undefined" ? localStorage.getItem(k) : null,
|
|
setItem: (k, v) => {
|
|
if (typeof window !== "undefined") localStorage.setItem(k, v);
|
|
},
|
|
removeItem: (k) => {
|
|
if (typeof window !== "undefined") localStorage.removeItem(k);
|
|
},
|
|
};
|