Skip to main content
Glama
monostate

100ms Raydium Sniper MCP

by monostate
useTheme.ts1.46 kB
import { useCallback, useEffect, useState } from "react"; type Theme = "light" | "dark" | "system"; const useTheme = (): [Theme, (mode: Theme) => void] => { const [theme, setTheme] = useState<Theme>(() => { const savedTheme = localStorage.getItem("theme") as Theme; return savedTheme || "system"; }); useEffect(() => { const darkModeMediaQuery = window.matchMedia( "(prefers-color-scheme: dark)", ); const handleDarkModeChange = (e: MediaQueryListEvent) => { if (theme === "system") { updateDocumentTheme(e.matches ? "dark" : "light"); } }; const updateDocumentTheme = (newTheme: "light" | "dark") => { document.documentElement.classList.toggle("dark", newTheme === "dark"); }; // Set initial theme based on current mode if (theme === "system") { updateDocumentTheme(darkModeMediaQuery.matches ? "dark" : "light"); } else { updateDocumentTheme(theme); } darkModeMediaQuery.addEventListener("change", handleDarkModeChange); return () => { darkModeMediaQuery.removeEventListener("change", handleDarkModeChange); }; }, [theme]); return [ theme, useCallback((newTheme: Theme) => { setTheme(newTheme); localStorage.setItem("theme", newTheme); if (newTheme !== "system") { document.documentElement.classList.toggle("dark", newTheme === "dark"); } }, []), ]; }; export default useTheme;

Latest Blog Posts

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/monostate/100ms-SPL-Token-Sniper-MCP'

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