Skip to content

Commit 071908d

Browse files
Meme generator #13 (#63)
* Meme generator #13 * Meme generator #13 * Meme generator #13 Made changes.
1 parent 2c46c9b commit 071908d

File tree

4 files changed

+126
-1
lines changed

4 files changed

+126
-1
lines changed

src/assets/activities/meme.jpg

141 KB
Loading

src/data/content.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import { GuessTheFlag } from "../pages/games/GuessFlag";
66
import {FortuneCard} from "../pages/activities/FotuneCard";
77
import {SearchWord} from "../pages/activities/getDefinition";
88
import {Jitter} from "../pages/games/Jitter";
9+
import {RandomMeme} from "../pages/activities/RandomMemes";
10+
import meme from "../assets/activities/meme.jpg"
911
import numberblocs from "../assets/numberblocks.png"
1012
import wordleicon from "../assets/games/Wordle/wordlejpg.png"
1113
import flagger from "../assets/games/flag guess/flagger.png"
@@ -18,7 +20,13 @@ export const activities = [
1820
urlTerm: "random-quotes",
1921
element: <RandomQuote />
2022
},
21-
23+
{
24+
title: "Random memes",
25+
description: "Get random meme",
26+
icon: meme,
27+
urlTerm: "random-memes",
28+
element: <RandomMeme />
29+
},
2230
{
2331
title: "Fortune Card",
2432
description: "Get your fortune",
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import {useEffect, useState} from "react";
2+
import axios from "axios";
3+
import "../../styles/pages/activities/RandomMeme.css"
4+
5+
export const RandomMeme = () => {
6+
7+
const [meme, setMeme] = useState()
8+
const [subreddit, setSubreddit] = useState("")
9+
const [link, setLink] = useState("")
10+
11+
function Submit() {
12+
setLink(subreddit)
13+
setSubreddit("")
14+
document.getElementById('rmeme-text').value = ''
15+
}
16+
17+
function GetName(val){
18+
setSubreddit("/"+val.target.value)
19+
}
20+
21+
const generateMeme = () => {
22+
axios({
23+
method: "GET",
24+
url: "https://meme-api.com/gimme"+link
25+
}).then(res => setMeme(res.data))
26+
.catch(error => console.error(error))
27+
}
28+
29+
useEffect(() => {
30+
generateMeme()
31+
}, [])
32+
33+
return (
34+
<div className="rmeme-root">
35+
<div>Enter the name of Reddit community you want to get memes from.</div>
36+
<div> Some examples are animememes, dankmemes, wholesomememes, etc. Submit empty box to get random memes</div>
37+
<div> <b>* Enter name of community without r/. For example to get anime memes and access community r/animememes, enter just animememes.</b></div>
38+
<input className="rmeme-text" placeholder="Enter name of community here" id="rmeme-text" type="text" onChange={GetName}></input>
39+
<button className="rmeme-submit" onClick={Submit}>Submit</button>
40+
{
41+
meme && (
42+
<div className="rmeme-meme"><img src={meme.url}></img></div>
43+
)
44+
}
45+
<button className="rmeme-button" onClick={generateMeme}>
46+
Generate Meme
47+
</button>
48+
</div>
49+
)
50+
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
.rmeme-root {
2+
display: flexbox;
3+
flex-direction: row;
4+
}
5+
/* .rmeme-content {
6+
margin: 10px;
7+
font-style: italic;
8+
padding: 10px;
9+
font-family: "Fira Code Light";
10+
11+
} */
12+
.rmeme-meme {
13+
margin-left: auto;
14+
margin-right: auto;
15+
}
16+
17+
.rmeme-meme img{
18+
max-width: 30rem;
19+
max-height: 30rem;
20+
object-fit: contain;
21+
}
22+
23+
.rmeme-button {
24+
font-size: 23px;
25+
background: white;
26+
border-radius: 10px;
27+
padding: 10px;
28+
margin: 10px;
29+
transition-duration: 300ms;
30+
}
31+
32+
.rmeme-button:hover {
33+
cursor: pointer;
34+
box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
35+
background: #c9c9c9;
36+
}
37+
38+
.rmeme-text {
39+
width: 20rem;
40+
height: 2rem;
41+
margin-top: 2rem;
42+
margin-bottom: 2rem;
43+
}
44+
45+
.rmeme-text::placeholder{
46+
font-size: large;
47+
}
48+
49+
.rmeme-submit {
50+
margin-left: 1rem;
51+
height: 2rem;
52+
width: 5rem;
53+
border-radius: 2rem;
54+
color: blue;
55+
background-color: white;
56+
border-color: blue;
57+
margin-bottom: 2rem;
58+
margin-top: 2rem;
59+
transition-duration: 0.3s;
60+
}
61+
62+
.rmeme-submit:hover{
63+
background-color: blue;
64+
transform: scale(1.1);
65+
color: white;
66+
cursor: pointer;
67+
}

0 commit comments

Comments
 (0)