React feladat (2024. 12. 16. + 2024. 12. 17.)

This commit is contained in:
Tóth Ádám 2024-12-17 11:57:16 +01:00
parent 888977cca3
commit 7ed33229d7
32 changed files with 17787 additions and 1 deletions

View File

@ -0,0 +1,14 @@
import React, { use } from "react";
import { useState } from "react";
function Kaka() {
let [gyumolcs, setGyumolcs] = useState("barack")
return (
<>
<p>{gyumolcs}</p>
<button onClick={() => setGyumolcs("kaka")}>Csá fasz</button>
</>
)
}
export default Kaka

View File

@ -3,13 +3,15 @@ import ReactDOM from 'react-dom/client';
import './index.css'; import './index.css';
// import App from './App'; // import App from './App';
import Auto from "./Auto" import Auto from "./Auto"
import Kaka from "./Kaka"
import reportWebVitals from './reportWebVitals'; import reportWebVitals from './reportWebVitals';
let auto1 = {szin: "narancs", marka: "Suzuki"} let auto1 = {szin: "narancs", marka: "Suzuki"}
let auto2 = {szin: "vörös", marka: "Fiat"} let auto2 = {szin: "vörös", marka: "Fiat"}
const root = ReactDOM.createRoot(document.getElementById('root')); const root = ReactDOM.createRoot(document.getElementById('root'));
root.render( root.render(
<React.StrictMode> <React.StrictMode>
<Auto auto1={auto1} auto2={auto2}/> {/* <Auto auto1={auto1} auto2={auto2}/> */}
<Kaka />
</React.StrictMode> </React.StrictMode>
); );

23
2024. 12. 16/test/.gitignore vendored Normal file
View File

@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

View File

@ -0,0 +1,70 @@
# Getting Started with Create React App
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Available Scripts
In the project directory, you can run:
### `npm start`
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
The page will reload when you make changes.\
You may also see any lint errors in the console.
### `npm test`
Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
### `npm run build`
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### `npm run eject`
**Note: this is a one-way operation. Once you `eject`, you can't go back!**
If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
## Learn More
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
To learn React, check out the [React documentation](https://reactjs.org/).
### Code Splitting
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
### Analyzing the Bundle Size
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
### Making a Progressive Web App
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
### Advanced Configuration
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
### Deployment
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
### `npm run build` fails to minify
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)

17243
2024. 12. 16/test/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
{
"name": "test",
"version": "0.1.0",
"private": true,
"dependencies": {
"cra-template": "1.2.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-scripts": "5.0.1",
"web-vitals": "^4.2.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,45 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<script src="https://kit.fontawesome.com/f5d27edf17.js" crossorigin="anonymous"></script>
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>Dying Light</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root">
</div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -0,0 +1,25 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"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": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

View File

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View 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);
}
}

View File

@ -0,0 +1,25 @@
import logo from './logo.svg';
import './App.css';
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<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>
);
}
export default App;

View 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();
});

View File

@ -0,0 +1,37 @@
main {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
width: 100%;
}
section {
box-shadow: -5px 5px 20px rgb(0, 0, 0);
width: 70%;
margin: 20px 0;
background-color: white;
padding: 20px;
border-radius: 10px;
}
section a {
text-decoration: none;
color: black;
}
section a:hover {
text-decoration: underline;
}
p {
margin-bottom: 20px;
}
table, th, td {
border: 1px solid black;
}
section button {
padding: 20px;
}

View File

@ -0,0 +1,72 @@
import React from "react";
import "./Body.css"
function Body() {
return (
<>
<main>
<section id="introduction">
<a href="https://en.wikipedia.org/wiki/Dying_Light" target="_blank"><h2>Introduction</h2></a>
<p>
Dying Light is a 2015 survival horror video game developed by Techland and published by Warner Bros. Interactive Entertainment. The game's story follows undercover agent Kyle Crane who is sent to infiltrate a quarantine zone in a fictional Middle Eastern city called Harran. It features an enemy-infested, open world city with a dynamic daynight cycle, in which zombies are slow and clumsy during daytime and extremely aggressive at night. The gameplay is focused on weapons-based combat and parkour, allowing players to choose fight or flight when presented with dangers. The game features an asymmetrical multiplayer mode (originally set to be a pre-order bonus), and a four-player co-operative multiplayer mode.
</p>
<p>
The development of the game began in early 2012, after the team completed the development of Dead Island. The game's parkour system emphasizes natural movement. To implement that, Techland had to abandon most of the story elements and construct them again from scratch. To create a story that would suit the taste of the American audience, the writing team collaborated with Dan Jolley. The story was inspired by both Heart of Darkness and The Plague. Announced in May 2013, it was released in January 2015 for Linux, PlayStation 4, Windows, and Xbox One. The game was planned to be released on PlayStation 3 and Xbox 360, but these versions were cancelled due to hardware limitations.
</p>
</section>
<section id="gameplay">
<a href="https://en.wikipedia.org/wiki/Dying_Light" target="_blank"><h2>Gameplay</h2></a>
<p>
Dying Light is a survival horror video game played from a first-person perspective. The game is set in an open world environment called Harran; initially, an area named the Slums can be freely explored, later adding a second area, accessible via sewers, called Old Town. Players traverse this urban environment, which is overrun by zombies. There is an emphasis on parkour mechanics, which allow players to perform actions such as climbing ledges, leaping from edges, sliding, jumping between roofs and zip-lining. A grappling hook allows players to climb up buildings and quickly travel between places. As players explore the game's world, they can scavenge supplies and loot, which can be used to craft new weapons or sold to vendors. The player character can utilise his "survivor sense" to identify all nearby loot and use lock picks to open locked chests and locked vehicles. Players can also complete various side missions by accepting tasks issued by the non-playable characters in the game's safe zones. As players explore Harran, they can also pick up various collectibles such as notes and journals, and listen to voice mail recordings.
</p>
<p>
Dying Light contains a dynamic daynight cycle. During the day, players can set traps, save random survivors, and make their way to airdrops. The infected are slow, apathetic, and easily visible and they can be easily avoided. Players can use environmental traps, such as spikes, electrified fences, and gas tanks, to kill the infected. At night, the infected transform to become much more dangerous. Without daylight, the senses of the infected become more acute and accurate. They can sprint after the player character, inflict more damage, and gain the ability to jump and climb buildings. For players to avoid contact, they need to use their "survivor sense" to locate and avoid the infected. If the player character is spotted, they can use distractions and traps to reduce the number of infected. Players' main defence against the infected is ultraviolet light, which slows their movement. At safehouses, players can adjust the time of day, skipping night altogether if the player does not feel ready.
</p>
</section>
<section id="about-characters">
<a href="https://dyinglight.fandom.com/wiki/Category:Characters" target="_blank"><h2>About characters</h2></a>
<table>
<tr>
<th>Name</th>
<th>Information</th>
</tr>
<tr>
<td>Kyle Crane</td>
<td>
Kyle Crane is the protagonist of Dying Light, Dying Light: The Following, and Dying Light: The Beast, and is mentioned in Dying Light 2 Stay Human.
He was voiced by Roger Craig Smith.
</td>
</tr>
<tr>
<td>
Kadir Suleiman (Rais)
</td>
<td>
Kadir Suleiman, better known as Rais, is a main character featured in Dying Light, serving as the primary antagonist.
</td>
</tr>
</table>
</section>
<section id="random-weapons">
<a href="https://dyinglight.fandom.com/wiki/Weapons_(Dying_Light)" target="_blank"><h2>Random weapons</h2></a>
<button onClick={() => revealWeapon()}>Reveal a random weapon</button>
<div id="show-random-weapon"></div>
</section>
</main>
</>
)
}
function revealWeapon() {
const randomArray = ["../weapon1.png", "../weapon2.png", "../weapon3.png"]
let randomWeaponDiv = document.getElementById("show-random-weapon")
randomWeaponDiv.innerHTML = ""
let img = document.createElement("img")
img.src = randomArray[Math.floor(Math.random() * 3)]
randomWeaponDiv.appendChild(img)
}
export default Body

View File

@ -0,0 +1,22 @@
footer {
display: flex;
align-items: center;
justify-content: space-between;
background: linear-gradient(to left, rgb(10, 10, 10), rgb(25, 25, 25));
height: 100%;
padding: 4px 10px;
color: white;
}
footer span i {
margin-right: 10px;
}
footer a {
text-decoration: none;
color: white;
}
footer a:hover {
text-decoration: underline;
}

View File

@ -0,0 +1,14 @@
import React from "react";
import "./Footer.css"
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

View File

@ -0,0 +1,33 @@
nav {
display: flex;
align-items: center;
justify-content: space-between;
background: linear-gradient(to left, rgb(10, 10, 10), rgb(25, 25, 25));
color: white;
position: sticky;
top: 0;
z-index: 999;
}
nav a {
text-decoration: none;
color: white;
}
nav img {
cursor: pointer;
}
nav ul {
display: flex;
}
nav ul li {
margin-right: 30px;
list-style: none;
cursor: pointer;
}
nav ul li:hover {
text-decoration: underline;
}

View File

@ -0,0 +1,21 @@
import React from "react";
import "./Header.css"
function Header() {
return (
<>
<nav>
<a href="/"><img src="../dl-logo.png" alt=""></img></a>
<ul>
<a href="/"><li>Home page</li></a>
<a href="#introduction"><li>Introduction</li></a>
<a href="#gameplay"><li>Gameplay</li></a>
<a href="#about-characters"><li>About characters</li></a>
<a href="#random-weapons"><li>Random weapons</li></a>
</ul>
</nav>
</>
)
}
export default Header

View 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/dl-background.jpg");
backdrop-filter: blur(3px);
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}

View File

@ -0,0 +1,21 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import Header from './Header';
import Body from './Body';
import Footer from './Footer'
import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<Header />
<Body />
<Footer />
</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();

View 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

View 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;

View 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';