Skip to main content
Glama

Convex MCP server

Official
by get-convex
useSessionStorage.ts1.19 kB
import { convexToJson, jsonToConvex, Value } from "convex/values"; import { useCallback, useState } from "react"; function useSessionStorage<T extends Value>( key: string, ): [T | undefined, (value: T) => void]; function useSessionStorage<T extends Value>( // eslint-disable-line no-redeclare key: string, defaultValue: T | (() => T), ): [T, (value: T) => void]; function useSessionStorage<T extends Value>( // eslint-disable-line no-redeclare key: string, defaultValue?: T | (() => T), ) { const [value, setValueInternal] = useState(() => { if (typeof sessionStorage !== "undefined") { const existing = sessionStorage.getItem(key); if (existing) { try { return jsonToConvex(JSON.parse(existing)) as T; } catch (e) { console.error(e); } } } if (typeof defaultValue === "function") { return defaultValue(); } return defaultValue; }); const setValue = useCallback( (value: T) => { sessionStorage.setItem(key, JSON.stringify(convexToJson(value))); setValueInternal(value); }, [key], ); return [value, setValue] as const; } export default useSessionStorage;

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/get-convex/convex-backend'

If you have feedback or need assistance with the MCP directory API, please join our Discord server