All files / pages main.tsx

100% Statements 9/9
100% Branches 6/6
100% Functions 3/3
100% Lines 9/9

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 70 71 72 73 74 75 76 77                                              3x   3x 3x 1x   2x       3x                                                           1x   1x   1x                  
import React, { useContext, useEffect } from "react";
import Head from "next/head";
import { GetServerSideProps } from "next";
import { ChallengeProvider } from "../contexts/ChallengeContext";
 
import { ExperienceBar } from "../components/ExperienceBar";
import { Changecolor } from "../components/ChangeColor";
import Profile from "../components/Profile";
import styles from "../styles/pages/Home.module.css";
import CompletedChallenges from "../components/CompletedChallenges";
import Countdown from "../components/Countdown";
import { ChallengeBox } from "../components/ChallengeBox";
import { CountdownProvider } from "../contexts/CountdownContext";
import { GlobalContext } from "../contexts/GlobalContext";
 
type PropsDate = {
  level: number;
  currentExperience: number;
  challengesCompleted: number;
  darkMod: string;
};
 
export default function Main(props: PropsDate) {
  const { changelight } = useContext(GlobalContext);
 
  useEffect(() => {
    if (props.darkMod == "true") {
      changelight(true);
    } else {
      changelight(false);
    }
  }, []);
 
  return (
    <ChallengeProvider
      level={props.level}
      currentExperience={props.currentExperience}
      challengesCompleted={props.challengesCompleted}
    >
      <div className={styles.container}>
        <Head>
          <title>Inicio </title>
        </Head>
        <ExperienceBar />
        <Changecolor />
 
        <CountdownProvider>
          <section>
            <div>
              <Profile />
              <CompletedChallenges />
              <Countdown />
            </div>
            <div>
              <ChallengeBox />
            </div>
          </section>
        </CountdownProvider>
      </div>
    </ChallengeProvider>
  );
}
 
export const getServerSideProps: GetServerSideProps = async (ctx) => {
  const { level, currentExperience, challengesCompleted, darkMod } =
    ctx.req.cookies;
 
  return {
    props: {
      level: Number(level) | 1,
      currentExperience: Number(currentExperience) || 0,
      challengesCompleted: Number(challengesCompleted) || 0,
      darkMod: darkMod,
    },
  };
};