React form
This commit is contained in:
8
2025. 01. 24/test/src/About.jsx
Normal file
8
2025. 01. 24/test/src/About.jsx
Normal file
@@ -0,0 +1,8 @@
|
||||
function About() {
|
||||
return (
|
||||
<p>Körtefa</p>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export default About
|
||||
18
2025. 01. 24/test/src/AllRoutes.jsx
Normal file
18
2025. 01. 24/test/src/AllRoutes.jsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Routes, Route } from 'react-router-dom';
|
||||
import Home from './Home';
|
||||
import Footer from './Footer';
|
||||
import Random from './Random';
|
||||
|
||||
|
||||
function AllRoutes() {
|
||||
return (
|
||||
<Routes>
|
||||
<Route path="/" element={ <Home/> }></Route>
|
||||
<Route path="footer" element={ <Footer/> }></Route>
|
||||
<Route path='random-img' element={ <Random/> }></Route>
|
||||
</Routes>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export default AllRoutes
|
||||
38
2025. 01. 24/test/src/App.css
Normal file
38
2025. 01. 24/test/src/App.css
Normal file
@@ -0,0 +1,38 @@
|
||||
.App {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.App-logo {
|
||||
height: 40vmin;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
.App-logo {
|
||||
animation: App-logo-spin infinite 20s linear;
|
||||
}
|
||||
}
|
||||
|
||||
.App-header {
|
||||
background-color: #282c34;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: calc(10px + 2vmin);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.App-link {
|
||||
color: #61dafb;
|
||||
}
|
||||
|
||||
@keyframes App-logo-spin {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
17
2025. 01. 24/test/src/App.js
Normal file
17
2025. 01. 24/test/src/App.js
Normal file
@@ -0,0 +1,17 @@
|
||||
import './App.css';
|
||||
import { Routes, Route } from 'react-router-dom';
|
||||
import Home from './Home';
|
||||
|
||||
|
||||
function App() {
|
||||
return (
|
||||
<>
|
||||
<Routes>
|
||||
<Route path='/' element={ <Home/> }></Route>
|
||||
<Route path='random-img' element={ <About/> }></Route>
|
||||
</Routes>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export default App;
|
||||
8
2025. 01. 24/test/src/App.test.js
Normal file
8
2025. 01. 24/test/src/App.test.js
Normal file
@@ -0,0 +1,8 @@
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import App from './App';
|
||||
|
||||
test('renders learn react link', () => {
|
||||
render(<App />);
|
||||
const linkElement = screen.getByText(/learn react/i);
|
||||
expect(linkElement).toBeInTheDocument();
|
||||
});
|
||||
33
2025. 01. 24/test/src/Body.jsx
Normal file
33
2025. 01. 24/test/src/Body.jsx
Normal file
@@ -0,0 +1,33 @@
|
||||
function Body() {
|
||||
return (
|
||||
<main>
|
||||
<section id="introduction">
|
||||
<h1>Introduction</h1>
|
||||
<p>
|
||||
Dying Light 2 Stay Human is a 2022 action role-playing game developed and published by Techland. The game is a sequel to Dying Light, and was released for PlayStation 4, PlayStation 5, Windows, Xbox One, and Xbox Series X/S on 4 February 2022. A cloud version for the Nintendo Switch is in development. It received generally favorable reviews, with praise directed at the combat, parkour system, and open world, but criticism for the story. It sold 5 million units in its first month of release.
|
||||
</p>
|
||||
</section>
|
||||
<section id="gameplay">
|
||||
<h1>Gameplay</h1>
|
||||
<p>
|
||||
Dying Light 2 is an action role-playing survival horror video game featuring a zombie apocalyptic-themed open world. Set 22 years after Dying Light, it stars a new protagonist named Aiden Caldwell (voiced by Jonah Scott), who has various parkour skills. Players can perform actions such as climbing ledges, sliding, leaping off from edges, and wall running to quickly navigate the city. It was confirmed that there are over 3000 parkour animations to give a more fluid free-running experience. Tools such as a grappling hook and a paraglider also aid traversal in the city. Aiden can also use the undead to break his fall. The game is mostly melee-based with the majority of fighting using melee weapons. The melee weapons have a limited lifespan and will degrade as the player uses them in combat. Long-range weapons such as crossbows, shotguns, and spears can be used as well. Weapons can be upgraded with different blueprints and components which can be found by breaking down weapons for craft parts.
|
||||
</p>
|
||||
</section>
|
||||
<section id="story">
|
||||
<h1>Story</h1>
|
||||
<p>
|
||||
The game takes place after the events of Dying Light; the 2015 rabies-like outbreak in the fictional country of Harran (the setting of Dying Light) ended with the “death” of all of the people in Harran. The international organization called the Global Relief Effort (GRE) was eventually able to develop a vaccine for the Harran Virus, ending the threat of a global pandemic, but the GRE continued experimenting on the virus in secret, intending to use it as a biological weapon.
|
||||
|
||||
In 2021, a mutated variant of the virus, named the Tachytransmissive Harran Virus (THV), escaped a GRE lab and started a second, more deadly pandemic that spread faster than the first, sweeping across the world and causing millions to transform into monsters. In an event called "The Fall", the GRE’s vaccine and "Antizin" (antidote that delays the symptoms) became ineffective against the new strain of THV, but if an individual were to be infected their symptoms could be suppressed with ultraviolet light, which could also be used to ward off and harm the infected.
|
||||
|
||||
By 2036, fifteen years after the Fall, much of the world's population has been wiped out, human civilization has been reduced to a handful of scattered settlements, with the fictional walled European city of Villedor being one of the largest. Originally quarantined by the GRE, Villedor was spared the worst of the pandemic thanks to its quarantine walls keeping the hordes of infected out of the city. Control of the city is split between several factions, including the militaristic Peacekeepers, the independent Survivors, and the violent Renegades.
|
||||
|
||||
The main protagonist Aiden Caldwell is a Pilgrim: an individual brave enough to make the dangerous trek between human settlements. He decides to travel to Villedor in order to search for his lost sister, Mia.
|
||||
</p>
|
||||
</section>
|
||||
</main>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export default Body
|
||||
14
2025. 01. 24/test/src/Footer.jsx
Normal file
14
2025. 01. 24/test/src/Footer.jsx
Normal file
@@ -0,0 +1,14 @@
|
||||
import React from "react";
|
||||
|
||||
|
||||
function Footer() {
|
||||
return (
|
||||
<footer>
|
||||
<span><i class="fa-solid fa-copyright"></i>2024, All right reserved</span>
|
||||
<a href="https://dyinglightgame.com/dying-light-2"><span>Dying Light 2: Stay Human</span></a>
|
||||
<a href="/"><img src="../dl-logo.png" alt=""></img></a>
|
||||
</footer>
|
||||
)
|
||||
}
|
||||
|
||||
export default Footer
|
||||
16
2025. 01. 24/test/src/Home.jsx
Normal file
16
2025. 01. 24/test/src/Home.jsx
Normal file
@@ -0,0 +1,16 @@
|
||||
import Nav from "./Nav"
|
||||
import Body from "./Body"
|
||||
import "./css/Home.css"
|
||||
|
||||
|
||||
function Home() {
|
||||
return (
|
||||
<>
|
||||
<Nav/>
|
||||
<Body/>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export default Home
|
||||
17
2025. 01. 24/test/src/Nav.jsx
Normal file
17
2025. 01. 24/test/src/Nav.jsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import { Link } from "react-router-dom"
|
||||
|
||||
|
||||
function Nav() {
|
||||
return (
|
||||
<nav>
|
||||
<a href="/"><img src="logo.png" alt=""/></a>
|
||||
<div className="menu">
|
||||
<a href="https://en.wikipedia.org/wiki/Dying_Light_2">About the game</a><br />
|
||||
<Link to="random-img">Generate random image of a weapon</Link>
|
||||
</div>
|
||||
</nav>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export default Nav
|
||||
25
2025. 01. 24/test/src/Random.js
Normal file
25
2025. 01. 24/test/src/Random.js
Normal file
@@ -0,0 +1,25 @@
|
||||
import Nav from "./Nav"
|
||||
import "./css/Random.css"
|
||||
|
||||
|
||||
function Random() {
|
||||
return (
|
||||
<>
|
||||
<Nav/>
|
||||
<main className="container">
|
||||
<h1>Image generator</h1>
|
||||
<button onClick={() => RandomGenerate()}>Generate</button>
|
||||
<img src="" alt="" className="random-img"/>
|
||||
</main>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
function RandomGenerate() {
|
||||
const images = ["../character.jpg", "../towerraid.jpg", "../gameplay.jpg", "../wallpaper300.png"]
|
||||
document.querySelector(".random-img").src = images[Math.floor(Math.random() * images.length)]
|
||||
}
|
||||
|
||||
|
||||
export default Random
|
||||
43
2025. 01. 24/test/src/css/Home.css
Normal file
43
2025. 01. 24/test/src/css/Home.css
Normal file
@@ -0,0 +1,43 @@
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: black;
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
nav {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
background-color: white;
|
||||
margin-bottom: 100px;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
nav img {
|
||||
margin-left: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
nav .menu {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-evenly;
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
main {
|
||||
display: flex;
|
||||
align-self: center;
|
||||
flex-direction: column;
|
||||
align-self: center;
|
||||
width: 60%;
|
||||
padding: 20px;
|
||||
background-color: white;
|
||||
border-radius: 20px;
|
||||
}
|
||||
24
2025. 01. 24/test/src/css/Random.css
Normal file
24
2025. 01. 24/test/src/css/Random.css
Normal file
@@ -0,0 +1,24 @@
|
||||
.container {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 12px;
|
||||
margin-bottom: 30px;
|
||||
border-radius: 20px;
|
||||
cursor: pointer;
|
||||
transition: 400ms ease-in-out;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: rgb(200, 200, 200);
|
||||
}
|
||||
|
||||
.random-img {
|
||||
border: 2px solid black;
|
||||
}
|
||||
15
2025. 01. 24/test/src/index.css
Normal file
15
2025. 01. 24/test/src/index.css
Normal file
@@ -0,0 +1,15 @@
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
background-image: url("../public/wallpaper.png");
|
||||
backdrop-filter: blur(3px);
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
|
||||
monospace;
|
||||
}
|
||||
19
2025. 01. 24/test/src/index.js
Normal file
19
2025. 01. 24/test/src/index.js
Normal file
@@ -0,0 +1,19 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom/client';
|
||||
import './index.css';
|
||||
import AllRoutes from './AllRoutes';
|
||||
import reportWebVitals from './reportWebVitals';
|
||||
import { BrowserRouter } from 'react-router-dom';
|
||||
|
||||
|
||||
const root = ReactDOM.createRoot(document.getElementById('root'));
|
||||
root.render(
|
||||
<BrowserRouter>
|
||||
<AllRoutes />
|
||||
</BrowserRouter>
|
||||
);
|
||||
|
||||
// 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
2025. 01. 24/test/src/logo.svg
Normal file
1
2025. 01. 24/test/src/logo.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
13
2025. 01. 24/test/src/reportWebVitals.js
Normal file
13
2025. 01. 24/test/src/reportWebVitals.js
Normal file
@@ -0,0 +1,13 @@
|
||||
const reportWebVitals = onPerfEntry => {
|
||||
if (onPerfEntry && onPerfEntry instanceof Function) {
|
||||
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
|
||||
getCLS(onPerfEntry);
|
||||
getFID(onPerfEntry);
|
||||
getFCP(onPerfEntry);
|
||||
getLCP(onPerfEntry);
|
||||
getTTFB(onPerfEntry);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export default reportWebVitals;
|
||||
5
2025. 01. 24/test/src/setupTests.js
Normal file
5
2025. 01. 24/test/src/setupTests.js
Normal file
@@ -0,0 +1,5 @@
|
||||
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
||||
// allows you to do things like:
|
||||
// expect(element).toHaveTextContent(/react/i)
|
||||
// learn more: https://github.com/testing-library/jest-dom
|
||||
import '@testing-library/jest-dom';
|
||||
Reference in New Issue
Block a user