All files / contexts GlobalContext.tsx

100% Statements 31/31
100% Branches 2/2
100% Functions 3/3
100% Lines 31/31

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69                      5x             5x 5x   5x 4x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x   3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x         2x     5x                          
import React, { useEffect, useState } from "react";
import { createContext, ReactNode } from "react";
import Cookie from "js-cookie";
 
type globalContextData = {
  nameProfiler: string;
  lightState: boolean;
  setNameProfiler: (nome) => void;
  changelight: (state) => void;
};
 
export const GlobalContext = createContext({} as globalContextData);
 
type globalProviderProps = {
  children: ReactNode;
};
 
export function GlobalProvider({ children }: globalProviderProps) {
  const [nameProfiler, setNameProfiler] = useState(null);
  const [lightState, setlightState] = useState(false);
 
  useEffect(() => {
    if (lightState) {
      document.documentElement.style.setProperty("--white", "#333");
      document.documentElement.style.setProperty("--background", "#525355");
      document.documentElement.style.setProperty("--gray-line", "#dcdde0");
      document.documentElement.style.setProperty("--text", "#fff");
      document.documentElement.style.setProperty("--text-hihlight", "#b3b9ff");
      document.documentElement.style.setProperty("--title", "#ccc");
      document.documentElement.style.setProperty("--red", "#922235");
      document.documentElement.style.setProperty("--green", "#348b1e");
      document.documentElement.style.setProperty("--blue", "#444b9c");
      document.documentElement.style.setProperty("--blue-dark", "#3251d8");
      document.documentElement.style.setProperty("--blue-twitter", "#2aa9e0");
      Cookie.set("darkMod", "true");
    } else {
      document.documentElement.style.setProperty("--white", "#fff");
      document.documentElement.style.setProperty("--background", "#f2f3f5");
      document.documentElement.style.setProperty("--gray-line", "#dcdde0");
      document.documentElement.style.setProperty("--text", "#666666");
      document.documentElement.style.setProperty("--text-hihlight", "#b3b9ff");
      document.documentElement.style.setProperty("--title", "#2e384d");
      document.documentElement.style.setProperty("--red", "#e83f5b");
      document.documentElement.style.setProperty("--green", "#4cD62b");
      document.documentElement.style.setProperty("--blue", "#5965E0");
      document.documentElement.style.setProperty("--blue-dark", "#4965E0");
      document.documentElement.style.setProperty("--blue-twitter", "#2aa9e0");
      Cookie.set("darkMod", "false");
    }
  }, [lightState]);
 
  function changelight(state) {
    setlightState(state);
  }
 
  return (
    <GlobalContext.Provider
      value={{
        nameProfiler,
        lightState,
        setNameProfiler,
        changelight,
      }}
    >
      {children}
    </GlobalContext.Provider>
  );
}