Skip to content

Commit

Permalink
fix some warnings, add index files
Browse files Browse the repository at this point in the history
  • Loading branch information
vtabashniuk committed Apr 29, 2024
1 parent 02b0e39 commit 7aca112
Show file tree
Hide file tree
Showing 28 changed files with 88 additions and 117 deletions.
6 changes: 6 additions & 0 deletions jsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"compilerOptions": {
"baseUrl": "src"
},
"include": ["src"]
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "millionaire",
"version": "0.1.0",
"private": false,
"homepage": "https://vtabashniuk/github.io/millionaire",
"homepage": "https://vtabashniuk.github.io/millionaire",
"dependencies": {
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
Expand Down
2 changes: 1 addition & 1 deletion public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
href="https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap"
rel="stylesheet"
/>
<title>React App</title>
<title>Millionaire</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
Expand Down
Binary file removed public/logo192.png
Binary file not shown.
Binary file removed public/logo512.png
Binary file not shown.
10 changes: 0 additions & 10 deletions public/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,6 @@
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
Expand Down
3 changes: 0 additions & 3 deletions public/robots.txt

This file was deleted.

21 changes: 4 additions & 17 deletions src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,9 @@
import { Outlet } from "react-router-dom";

export default function App() {

return (
// <div className="App">
// <header className="App-header">
// <p>
// Edit <code>src/App.js</code> and save to reload.
// </p>
// <a
// className="App-link"
// href="https://reactjs.org"
// target="_blank"
// rel="noopener noreferrer"
// >
// Learn React
// </a>
// </header>
// </div>
null
<>
<Outlet />
</>
);
}
8 changes: 0 additions & 8 deletions src/App.test.js

This file was deleted.

7 changes: 6 additions & 1 deletion src/Context/MobileProvider.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { useState, useEffect } from "react";
import { MobileContext } from "./MobileContext";
import PropTypes from "prop-types";

export const MobileProvider = ({ children }) => {
const [isMobile, setIsMobile] = useState(window.innerWidth < 768);
Expand All @@ -19,4 +20,8 @@ export const MobileProvider = ({ children }) => {
return (
<MobileContext.Provider value={isMobile}>{children}</MobileContext.Provider>
);
};
};

MobileProvider.propTypes = {
children: PropTypes.element.isRequired,
};
16 changes: 13 additions & 3 deletions src/components/BurgerMenu/BurgerMenu.jsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import PropTypes from "prop-types";
import icons from "img/svg/icons.svg";
import styles from "./BurgerMenu.module.scss";
import icons from "../../img/svg/icons.svg";

const BurgerMenu = ({ isOpen, onClick }) => {
export const BurgerMenu = ({ isOpen, onClick }) => {
return (
<button
type="button"
Expand All @@ -28,4 +29,13 @@ const BurgerMenu = ({ isOpen, onClick }) => {
</button>
);
};
export default BurgerMenu;

BurgerMenu.defaultProps = {
isOpen: false,
onClick: () => {},
};

BurgerMenu.propTypes = {
isOpen: PropTypes.bool,
onClick: PropTypes.func,
};
1 change: 1 addition & 0 deletions src/components/BurgerMenu/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { BurgerMenu } from "./BurgerMenu";
14 changes: 8 additions & 6 deletions src/components/PointMenu/PointMenu.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import PropTypes from "prop-types";
import styles from "./PointMenu.module.scss";

const PointMenu = ({ questions, points, id }) => {
export const PointMenu = ({ questions, points, id }) => {
const getClassList = (item) => {
const classes = [styles.pointListItem];

Expand All @@ -18,10 +19,7 @@ const PointMenu = ({ questions, points, id }) => {
<>
<ul className={styles.pointList}>
{questions.toReversed().map((item) => (
<li
key={item.amount}
className={getClassList(item)}
>
<li key={item.amount} className={getClassList(item)}>
{Number(item.amount).toLocaleString("en", {
style: "currency",
currency: "USD",
Expand All @@ -34,4 +32,8 @@ const PointMenu = ({ questions, points, id }) => {
);
};

export default PointMenu;
PointMenu.propTypes = {
questions: PropTypes.arrayOf(PropTypes.object).isRequired,
points: PropTypes.number.isRequired,
id: PropTypes.number.isRequired,
};
1 change: 1 addition & 0 deletions src/components/PointMenu/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { PointMenu } from "./PointMenu";
9 changes: 3 additions & 6 deletions src/components/ResponsiveImage/ResponsiveImage.jsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import { useContext } from "react";
import { mobileImages, desktopImages } from "../../img";
import { MobileContext } from "../../Context";
import { MobileContext } from "Context";
import { mobileImages, desktopImages } from "img";

const ResponsiveImage = () => {
export const ResponsiveImage = () => {
const isMobile = useContext(MobileContext);

const images = isMobile ? mobileImages : desktopImages;

return (
Expand All @@ -21,5 +20,3 @@ const ResponsiveImage = () => {
</picture>
);
};

export default ResponsiveImage;
1 change: 1 addition & 0 deletions src/components/ResponsiveImage/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { ResponsiveImage } from "./ResponsiveImage";
9 changes: 6 additions & 3 deletions src/components/StartGameButton/StartGameButton.jsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
import { NavLink } from "react-router-dom";
import PropTypes from "prop-types";
import styles from "./StartGameButton.module.scss";

const StartGameButton = ({ title }) => {
export const StartGameButton = ({ title }) => {
return (
<NavLink to={"/game"} className={styles.button}>
<NavLink to={"/millionaire/game"} className={styles.button}>
{title}
</NavLink>
);
};

export default StartGameButton;
StartGameButton.propTypes = {
title: PropTypes.string.isRequired,
};
1 change: 1 addition & 0 deletions src/components/StartGameButton/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { StartGameButton } from "./StartGameButton";
35 changes: 18 additions & 17 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,32 +1,33 @@
import React from "react";
import ReactDOM from "react-dom/client";
import { createBrowserRouter, RouterProvider } from "react-router-dom";
import { MobileProvider } from "Context/MobileProvider";
import App from "App";
import { Home } from "pages/Home";
import { Game } from "pages/Game";
import { End } from "pages/End";
import "./styles/main.scss";
// import App from "./App";
import reportWebVitals from "./reportWebVitals";
import { MobileProvider } from "./Context/MobileProvider";
import Home from "./pages/Home/Home";
import Game from "./pages/Game/Game";
import End from "./pages/End/End";

const root = ReactDOM.createRoot(document.getElementById("root"));

const router = createBrowserRouter([
{ path: "/", element: <Home /> },
{ path: "/game", element: <Game /> },
{ path: "/end", element: <End /> },
{
path: "millionaire",
element: <App />,
children: [
{ path: "", element: <Home /> },
{ path: "game", element: <Game /> },
{ path: "end", element: <End /> },
],
},
]);

root.render(
<React.StrictMode>
<MobileProvider >
<RouterProvider router={router} />
{/* <App /> */}
<MobileProvider>
<RouterProvider router={router}>
<App />
</RouterProvider>
</MobileProvider>
</React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
1 change: 0 additions & 1 deletion src/logo.svg

This file was deleted.

8 changes: 3 additions & 5 deletions src/pages/End/End.jsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { useLocation } from "react-router-dom";
import ResponsiveImage from "../../components/ResponsiveImage/ResponsiveImage";
import StartGameButton from "../../components/StartGameButton/StartGameButton";
import { ResponsiveImage } from "components/ResponsiveImage";
import { StartGameButton } from "components/StartGameButton";
import styles from "./End.module.scss";

const End = () => {
export const End = () => {
const location = useLocation();

return (
Expand All @@ -28,5 +28,3 @@ const End = () => {
</>
);
};

export default End;
1 change: 1 addition & 0 deletions src/pages/End/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { End } from "./End";
21 changes: 9 additions & 12 deletions src/pages/Game/Game.jsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { useState, useContext } from "react";
import { useNavigate } from "react-router-dom";
import { MobileContext } from "../../Context";
import { MobileContext } from "Context";
import data from "questions.json";
import { BurgerMenu } from "components/BurgerMenu";
import { PointMenu } from "components/PointMenu";
import styles from "./Game.module.scss";
import data from "../../questions.json";
import BurgerMenu from "../../components/BurgerMenu/BurgerMenu";
import PointMenu from "../../components/PointMenu/PointMenu";

const Game = () => {
export const Game = () => {
const isMobile = useContext(MobileContext);
const navigate = useNavigate();
const [pointsMenu, setPointsMenu] = useState(false);
Expand All @@ -25,19 +25,18 @@ const Game = () => {
if (answer.toLowerCase() === correct_answer.toLowerCase()) {
setCorrectOption(answer);
setTimeout(() => {
setPoints(amount);
setDisabledOption(false);
if (questionId < questions.length - 1) {
setQuestionId((prevId) => (prevId += 1));
setPoints(amount);
setDisabledOption(false);
} else {
setPoints(amount);
navigate("/end", { state: { amount } });
navigate("/millionaire/end", { state: { amount } });
}
}, 750);
} else {
setWrongOption(answer);
setTimeout(() => {
navigate("/end", { state: { amount: points } });
navigate("/millionaire/end", { state: { amount: points } });
}, 750);
}
};
Expand Down Expand Up @@ -101,5 +100,3 @@ const Game = () => {
</>
);
};

export default Game;
1 change: 1 addition & 0 deletions src/pages/Game/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { Game } from "./Game";
8 changes: 3 additions & 5 deletions src/pages/Home/Home.jsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import ResponsiveImage from "../../components/ResponsiveImage/ResponsiveImage";
import StartGameButton from "../../components/StartGameButton/StartGameButton";
import { ResponsiveImage } from "components/ResponsiveImage";
import { StartGameButton } from "components/StartGameButton";
import styles from "./Home.module.scss";

const Home = () => {
export const Home = () => {
return (
<>
<div className={styles.container}>
Expand All @@ -18,5 +18,3 @@ const Home = () => {
</>
);
};

export default Home;
1 change: 1 addition & 0 deletions src/pages/Home/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { Home } from "./Home";
13 changes: 0 additions & 13 deletions src/reportWebVitals.js

This file was deleted.

5 changes: 0 additions & 5 deletions src/setupTests.js

This file was deleted.

0 comments on commit 7aca112

Please sign in to comment.