A mi me gusta trabajar los context de la siguiente manera:
Ya luego el index.js queda solo:
Y para modificarlo sería (estoy usando tailwindcss por lo que solo pondré la lógica acá):
Al tener un botón con el handleClick, cambiará el valor del theme (valor del context), cambiando así las clases. Para los componentes que no tengan action pero que si cambien clases, solo se destructura { theme } = useContext(ThemeContext)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?