// src/App.jsx
import { createContext, useCallback, useContext, useMemo, useState } from "react";
const ThemeContext = createContext(null);
function ThemeProvider({ children }) {
const [theme, setTheme] = useState("light");
const [unrelatedCount, setUnrelatedCount] = useState(0); // unrelated state
const toggleTheme = useCallback(() => {
setTheme((t) => (t === "light" ? "dark" : "light"));
}, []);
// value only changes (a new object) when theme or toggleTheme actually change —
// not when unrelatedCount changes.
const value = useMemo(() => ({ theme, toggleTheme }), [theme, toggleTheme]);
return (
Current theme: {theme}
; } function App() { return (