Skip to content

Commit 539bd5b

Browse files
author
Hannah Dunsmore
committed
added all function components
2 parents 46596d6 + 7c3c9a4 commit 539bd5b

File tree

14 files changed

+580
-18
lines changed

14 files changed

+580
-18
lines changed

package-lock.json

Lines changed: 101 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
"@types/jest": "^27.5.2",
88
"@types/node": "^16.18.126",
99
"@types/react-dom": "^19.1.5",
10-
"dotenv": "^16.5.0",
10+
"dayjs": "^1.11.13",
1111
"react": "^19.1.0",
12+
"react-datepicker": "^8.3.0",
1213
"react-dom": "^19.1.0",
1314
"react-responsive-carousel": "^3.2.23",
1415
"react-router": "^7.6.0",
@@ -60,7 +61,6 @@
6061
"eslint-plugin-prettier": "^5.2.1",
6162
"globals": "^15.14.0",
6263
"jest": "^27.5.1",
63-
6464
"prettier": "3.4.2",
6565
"sass": "^1.85.0",
6666
"typescript-eslint": "^8.20.0"

src/App.tsx

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,34 @@
11
import React from "react";
22
import "./App.scss";
3-
import RoverDetails from "./Components/RoverDetails/RoverDetails";
3+
import { Link, Route, BrowserRouter as Router, Routes } from "react-router";
44
import PhotoOfTheDay from "./Components/photoOfTheDay/photoOfTheDay";
5+
import ProfilePage from "./pages/Profile/ProfilePage";
6+
import NavBar from "./Components/AddNavBar/NavBar";
7+
import RoverDetails from "./Components/RoverDetails/RoverDetails";
58

69
function App() {
7-
return <RoverDetails />;
10+
return (
11+
<div>
12+
<Router>
13+
<NavBar />
14+
<Routes>
15+
<Route path="/" element={ <> <PhotoOfTheDay /> <RoverDetails /> </> } />
16+
<Route path="/profile" element={<ProfilePage />} />
17+
<Route
18+
path="*"
19+
element={
20+
<div>
21+
Sorry, that page does not exist, try these:
22+
<div>
23+
<Link to="/profile">Profile Page</Link>
24+
</div>
25+
</div>
26+
}
27+
/>
28+
</Routes>
29+
</Router>
30+
</div>
31+
);
832
}
933

1034
export default App;
273 KB
Loading
1.41 MB
Loading
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
@import "../../Styles/GlobalStyles.scss";
2+
3+
body {
4+
background-color: $blueBackground;
5+
font-family: $PublicSans;
6+
}
7+
8+
.navBarContainer {
9+
display: flex;
10+
background: $blueBackground;
11+
justify-content: space-between;
12+
13+
}
14+
15+
.homeButton {
16+
display: flex;
17+
flex-direction: column;
18+
align-items: center;
19+
}
20+
21+
.profilePageButton {
22+
display: flex;
23+
flex-direction: column;
24+
align-items: center;
25+
26+
}
27+
28+
#astroButton {
29+
width: 5vw;
30+
min-width: 50px;
31+
32+
}
33+
34+
#earthButton {
35+
width: 5vw;
36+
min-width: 50px;
37+
38+
}
39+
40+
a {
41+
margin: 15px 10px 10px 10px;
42+
color: $orangeBackground;
43+
padding: 2.5px 20px;
44+
border: solid 2px $orangeBackground;
45+
text-decoration: none;
46+
border-radius: 25px;
47+
}
48+
49+
50+
51+
a:hover {
52+
53+
color: $whiteFontColor;
54+
box-shadow: 0px 0px 3px 3px $greyBackground;
55+
}
56+
57+
a:active {
58+
box-shadow: none;
59+
color: $orangeBackground;
60+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import "@testing-library/jest-dom";
2+
import { render, screen } from "@testing-library/react";
3+
import userEvent from "@testing-library/user-event";
4+
import React from "react";
5+
import NavBar from "./NavBar";
6+
import { BrowserRouter } from "react-router";
7+
8+
describe(NavBar, () => {
9+
it("Should change current location to profile when link is clicked", () => {
10+
render(
11+
<BrowserRouter>
12+
<NavBar />
13+
</BrowserRouter>,
14+
);
15+
const linkProfile = screen.getByText("Profile");
16+
userEvent.click(linkProfile);
17+
});
18+
});
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import React from "react";
2+
import "./NavBar.scss";
3+
import { Link } from "react-router";
4+
import imageAstro from "./Images/astronautcartoon.png";
5+
import imageEarth from "./Images/cartoon earth.png";
6+
7+
export default function NavBar() {
8+
return (
9+
<div>
10+
<header className="navBarHeader">
11+
<nav className="navBarContainer">
12+
<div>
13+
<Link to="/" className="homeButton" id="homeLink">
14+
<img src={imageEarth} alt="imageEarth" id="earthButton" />
15+
Home
16+
</Link>
17+
</div>
18+
<div>
19+
<Link to="/profile" className="profilePageButton" id="profileLink">
20+
<img
21+
src={imageAstro}
22+
alt="cartoon astronaut illustration"
23+
id="astroButton"
24+
/>
25+
Profile
26+
</Link>
27+
</div>
28+
</nav>
29+
</header>
30+
</div>
31+
);
32+
}

src/Components/RoverDetails/RoverDetails.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
@import "../../Styles/GlobalStyles.scss";
22

33
#rover-information-container {
4+
margin-top: 60px;
45

56
#rover-header {
67
color: whitesmoke;

0 commit comments

Comments
 (0)