Skip to content

Commit d7cfb35

Browse files
Merge pull request #89 from konan625/master
Completed the dog http status code actuivity
2 parents 255cfdc + 6e58a4e commit d7cfb35

File tree

4 files changed

+126
-17
lines changed

4 files changed

+126
-17
lines changed
5.7 KB
Loading

src/data/content.js

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@ import { MagicSquares } from "../pages/games/MagicSquares";
33
import { TicTacToe } from "../pages/games/TicTacToe";
44
import { Wordle } from "../pages/games/Wordle";
55
import { GuessTheFlag } from "../pages/games/GuessFlag";
6-
import {FortuneCard} from "../pages/activities/FotuneCard";
7-
import {SearchWord} from "../pages/activities/getDefinition";
8-
import {Jitter} from "../pages/games/Jitter";
9-
import {RandomMeme} from "../pages/activities/RandomMemes";
6+
import { FortuneCard } from "../pages/activities/FotuneCard";
7+
import { SearchWord } from "../pages/activities/getDefinition";
8+
import { Jitter } from "../pages/games/Jitter";
9+
import { RandomMeme } from "../pages/activities/RandomMemes";
1010
import { RandomJoke } from "../pages/activities/RandomJoke";
1111
import { RandomAnimeQuote } from "../pages/activities/RandomAnimeQuote";
1212
import meme from "../assets/activities/meme.jpg"
13+
import dog from "../assets/activities/dogimage.jpeg"
1314
import numberblocs from "../assets/numberblocks.png"
1415
import wordleicon from "../assets/games/Wordle/wordlejpg.png"
1516
import flagger from "../assets/games/flag guess/flagger.png"
1617
import Calculator from "../pages/activities/Calculator"
18+
import { DogHttpCode } from "../pages/activities/DogHttpCode";
1719

1820
export const activities = [
1921
{
@@ -40,14 +42,14 @@ export const activities = [
4042
{
4143
title: "Fortune Card",
4244
description: "Get your fortune",
43-
icon: "https://aws.astrotalk.com/assets/images/wheel_of_fortune.webp" ,
45+
icon: "https://aws.astrotalk.com/assets/images/wheel_of_fortune.webp",
4446
urlTerm: "get-your-fortune",
4547
element: <FortuneCard />
4648
},
4749
{
4850
title: "Search Words",
4951
description: "Get any definition",
50-
icon: "https://www.i2symbol.com/pictures/emojis/f/2/0/4/f2042fedcbc0cdaee2967c4449b62845.png" ,
52+
icon: "https://www.i2symbol.com/pictures/emojis/f/2/0/4/f2042fedcbc0cdaee2967c4449b62845.png",
5153
urlTerm: "search-any-word",
5254
element: <SearchWord />
5355
},
@@ -64,7 +66,14 @@ export const activities = [
6466
icon: "https://cdn2.iconfinder.com/data/icons/ios7-inspired-mac-icon-set/512/Calculator_512.png",
6567
urlTerm: "calculator",
6668
element: <Calculator />
67-
}
69+
},
70+
{
71+
title: "Dog Http Status Code",
72+
description: "Get random dog images or meme",
73+
icon: dog,
74+
urlTerm: "dog-http-status",
75+
element: <DogHttpCode />
76+
},
6877
];
6978

7079
export const games = [
@@ -90,18 +99,18 @@ export const games = [
9099
element: <Jitter />,
91100
},
92101
{
93-
title:"Wordle Game",
94-
description:"The normal wordle but you can play as much as you want",
95-
icon:wordleicon,
96-
urlTerm:"Wordle",
97-
element:<Wordle/>
102+
title: "Wordle Game",
103+
description: "The normal wordle but you can play as much as you want",
104+
icon: wordleicon,
105+
urlTerm: "Wordle",
106+
element: <Wordle />
98107
},
99108
{
100-
title:"Guess The Flag",
101-
description:"Learn geography in fun way",
102-
icon:flagger,
103-
urlTerm:"GuessTheFlag",
104-
element:<GuessTheFlag/>
109+
title: "Guess The Flag",
110+
description: "Learn geography in fun way",
111+
icon: flagger,
112+
urlTerm: "GuessTheFlag",
113+
element: <GuessTheFlag />
105114
}
106115
];
107116

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import "../../styles/pages/activities/DogHttpCode.css"
2+
import { useState } from "react";
3+
4+
export const DogHttpCode = () => {
5+
const [httpCode, setHttpCode] = useState("");
6+
const [imageUrl, setImageUrl] = useState("");
7+
const [error, setError] = useState("");
8+
9+
const handleSubmit = (e) => {
10+
e.preventDefault();
11+
12+
if (httpCode < 100 || httpCode > 599 || isNaN(httpCode)) {
13+
setError("Please enter a valid HTTP status code (100-599).");
14+
setImageUrl("");
15+
} else {
16+
setError(""); //Clear any existing error
17+
setImageUrl(`https://http.dog/${httpCode}.jpg`); //Construct the image url
18+
}
19+
};
20+
21+
return (
22+
<div className="dog-root">
23+
<h1>Dog Http Status Code</h1>
24+
<form onSubmit={handleSubmit} className="dog-form">
25+
<input type="text" className="dog-input" placeholder="Enter the Http status code (e.g. 404)"
26+
value={httpCode} onChange={(e) => setHttpCode(e.target.value)} />
27+
<button type="submit" className="dog-submit">Fetch Dog Image</button>
28+
</form>
29+
30+
{error && <p style={{ color: "red" }}>{error}</p>}
31+
{imageUrl && (
32+
<div>
33+
<img
34+
src={imageUrl}
35+
alt={`Dog image for HTTP status code ${httpCode}`}
36+
style={{ marginTop: "20px", width: "300px", height: "300px" }}
37+
className="dog-image" />
38+
</div>
39+
)}
40+
</div>
41+
)
42+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
.dog-root {
2+
display: flex;
3+
flex-direction: column;
4+
align-items: center;
5+
margin-top: 20px;
6+
}
7+
8+
.dog-form {
9+
display: flex;
10+
flex-direction: row;
11+
margin: 20px 0;
12+
}
13+
14+
.dog-input {
15+
width: 25rem;
16+
height: 5rem;
17+
padding: 0.5rem;
18+
font-size: 16px;
19+
border: 1px solid #ccc;
20+
border-radius: 8px;
21+
margin-right: 10px;
22+
transition: border-color 300ms;
23+
}
24+
25+
.dog-input:focus {
26+
outline: none;
27+
border-color: blue;
28+
}
29+
30+
.dog-submit {
31+
font-size: 18px;
32+
background-color: white;
33+
border: 1px solid blue;
34+
color: blue;
35+
padding: 10px 15px;
36+
border-radius: 10px;
37+
transition: background-color 0.3s, transform 0.3s;
38+
}
39+
40+
.dog-submit:hover {
41+
cursor: pointer;
42+
background-color: rgb(10, 80, 193);
43+
color: white;
44+
transform: scale(1.1);
45+
}
46+
47+
.dog-error {
48+
color: red;
49+
font-size: 16px;
50+
margin-top: 10px;
51+
}
52+
53+
.dog-image {
54+
margin-top: 20px;
55+
max-width: 30rem;
56+
max-height: 30rem;
57+
object-fit: contain;
58+
}

0 commit comments

Comments
 (0)