Files
Estagios_Pap_Final/themecontext.tsx

28 lines
721 B
TypeScript

import React, { createContext, useCallback, useContext, useMemo, useState } from 'react';
const ThemeContext = createContext({
isDarkMode: false,
toggleTheme: () => {},
});
export const ThemeProvider = ({ children }: { children: React.ReactNode }) => {
const [isDarkMode, setIsDarkMode] = useState(false);
// useCallback garante que a função não mude nunca
const toggleTheme = useCallback(() => {
setIsDarkMode(prev => !prev);
}, []);
const value = useMemo(() => ({
isDarkMode,
toggleTheme
}), [isDarkMode, toggleTheme]);
return (
<ThemeContext.Provider value={value}>
{children}
</ThemeContext.Provider>
);
};
export const useTheme = () => useContext(ThemeContext);