merge commit

This commit is contained in:
2025-08-25 22:16:00 +02:00
23927 changed files with 1148493 additions and 2711691 deletions
@@ -0,0 +1,163 @@
import React, { useEffect, useRef, useState } from "react"
import Navbar from "../../components/Navbar/Navbar"
import Footer from "../../components/Footer/Footer"
import Background from "../../assets/backgrounds/Background.jsx"
import Walke from "../../assets/pictures/walke.jpg"
import Busi from "../../assets/pictures/busi.jpg"
import Gege from "../../assets/pictures/gege.jpg"
import Zsola from "../../assets/pictures/zsola.jpg"
import Donat from "../../assets/pictures/donat.jpg"
import Turo from "../../assets/pictures/turo.jpg"
import Piskor from "../../assets/pictures/piskor.jpg"
const About = () => {
const [visible, setVisible] = useState(false)
const sectionRef = useRef(null)
const teamMembers = [
{
name: "Magda Donát",
role: "Backend fejlesztő",
photo: Donat,
},
{
name: "Máté Gergely",
role: "UI/UX designer",
photo: Gege,
},
{
name: "Walke Gábor",
role: "UI/UX designer, Frontend fejlesztő",
photo: Walke,
},
{
name: "Piskor Barnabás",
role: "Frontend fejlesztő",
photo: Piskor,
},
{
name: "Buús Levente",
role: "UI/UX designer",
photo: Busi,
},
{
name: "Pintér Zsolt",
role: "UI/UX designer",
photo: Zsola,
},
{
name: "Thuróczy Attila",
role: "UI/UX designer",
photo: Turo,
},
]
useEffect(() => {
const observer = new IntersectionObserver(
([entry]) => {
if (entry.isIntersecting) setVisible(true)
},
{ threshold: 0.3 }
)
if (sectionRef.current) observer.observe(sectionRef.current)
return () => observer.disconnect()
}, [])
return (
<div className="flex flex-col min-h-screen overflow-y-auto relative">
{/* Háttér fix pozíció, a teljes képernyőre */}
<div className="fixed top-0 left-0 w-full h-full z-[-10]">
<Background />
</div>
{/* Navbar fix */}
<div className="fixed top-0 left-0 right-0 z-30">
<Navbar />
</div>
{/* Tartalom */}
<main className="flex-grow text-white px-6 pt-16 mt-0 mb-20">
{/* Vissza gomb */}
<div className="fixed top-4 left-4 z-50 group">
<div className="absolute top-full mt-1 left-1/2 -translate-x-1/2 scale-0 group-hover:scale-100 transition transform bg-zinc-800 text-sm text-white px-3 py-1 rounded shadow-lg">
Főoldalra
</div>
</div>
<section
ref={sectionRef}
className={`max-w-5xl mx-auto transition-all duration-1000 ease-out ${
visible ? "opacity-100 translate-y-0" : "opacity-0 translate-y-10"
}`}
>
{/* Rólunk cím */}
<h1 className="mt-24 text-5xl font-extrabold text-green-300 mb-10 text-center tracking-wide drop-shadow-lg">
<span className="inline-block animate-pulse mr-2"></span> Rólunk
</h1>
{/* Leírás */}
<p className="text-lg leading-relaxed text-zinc-200 mb-10 text-center max-w-3xl mx-auto">
Célunk, hogy egy innovatív, közösségorientált platformot építsünk, ahol a versenyzés, játék és technológia találkozik. Elhivatott csapatunk minden nap azon dolgozik, hogy élményt és értéket nyújtson a felhasználóinknak.
</p>
{/* Küldetésünk */}
<div className="mt-12">
<h2 className="text-2xl font-bold text-green-300 mb-4">Küldetésünk</h2>
<div className="grid md:grid-cols-3 gap-6">
<div className="bg-zinc-800 rounded-xl p-6 shadow-lg hover:scale-105 transition">
<h3 className="text-xl font-semibold mb-2">Innováció</h3>
<p className="text-zinc-300">Folyamatosan fejlesztjük rendszereinket a legmodernebb technológiákkal.</p>
</div>
<div className="bg-zinc-800 rounded-xl p-6 shadow-lg hover:scale-105 transition">
<h3 className="text-xl font-semibold mb-2">Közösség</h3>
<p className="text-zinc-300">Fontos számunkra, hogy egy összetartó, aktív közösséget építsünk ki.</p>
</div>
<div className="bg-zinc-800 rounded-xl p-6 shadow-lg hover:scale-105 transition">
<h3 className="text-xl font-semibold mb-2">Minőség</h3>
<p className="text-zinc-300">Minden részletre figyelünk a felhasználói élmény és biztonság érdekében.</p>
</div>
</div>
</div>
{/* Csapat */}
<div className="mt-16">
<h2 className="text-2xl font-bold text-green-300 mb-6">Csapatunk</h2>
<div className="grid md:grid-cols-3 gap-8">
{teamMembers.map((member, i) => {
const isLast = i === teamMembers.length - 1
const itemsInLastRow = teamMembers.length % 3
const shouldCenter = itemsInLastRow === 1 && isLast
return (
<div
key={i}
className={`flex flex-col items-center text-center bg-zinc-800 p-6 rounded-xl shadow-lg hover:shadow-green-400/20 hover:scale-105 transition ${
shouldCenter ? "md:col-start-2" : ""
}`}
>
<img
src={member.photo}
alt={member.name}
className="w-24 h-24 rounded-full object-cover mb-4 border-4 border-green-400"
/>
<h4 className="text-lg font-bold">{member.name}</h4>
<p className="text-zinc-400">{member.role}</p>
</div>
)
})}
</div>
</div>
</section>
</main>
{/* Footer (nem scrollozható alá) */}
<footer className="mt-auto">
<Footer />
</footer>
</div>
)
}
export default About
@@ -1,6 +1,3 @@
// src/pages/Testing/Test.jsx
// itt tesztelhetjük a komponenseket illetve bármit
import { useState } from "react"
import Button from "../../components/Buttons/Button"
import InputBox from "../../components/Inputs/InputBox"
@@ -11,10 +8,12 @@ import Footer from "../../components/Footer/Footer.jsx"
import UserProfile from "../../components/Userdetails/Userdetails.jsx"
import CompanyHub from "../Companies/Companies.jsx"
import RatingSet from "../../components/PopUp/RatingSet" // <- statisztikai komponens
export default function Test() {
const [showPopup, setShowPopup] = useState(false)
const [inputValue, setInputValue] = useState("") // input értékének tárolása
const [showRegistrationPopup, setShowRegistrationPopup] = useState(false)
const [showPreviewPopup, setShowPreviewPopup] = useState(false) // <- új state
const [inputValue, setInputValue] = useState("")
return (
<div className="w-full h-screen flex flex-col">
@@ -30,9 +29,25 @@ export default function Test() {
value={inputValue}
onChange={(e) => setInputValue(e.target.value)}
/>
<Button text="Regisztráció" type="button" width="w-1/2" onClick={() => setShowPopup(true)} />
{showPopup && (
<PopUp onClose={() => setShowPopup(false)}>
<div className="flex flex-col sm:flex-row sm:space-x-4 space-y-4 sm:space-y-0 w-1/2">
<Button
text="Regisztráció"
type="button"
width="w-full"
onClick={() => setShowRegistrationPopup(true)}
/>
<Button
text="Előnézet"
type="button"
width="w-full"
onClick={() => setShowPreviewPopup(true)} // <- másik state trigger
/>
</div>
{/* Regisztrációs popup */}
{showRegistrationPopup && (
<PopUp onClose={() => setShowRegistrationPopup(false)}>
<div className="flex flex-col items-center space-y-4">
{/* <Logo size={120} /> */}
<h1 className="text-2xl font-bold text-center">Sikeres regisztráció!</h1>
@@ -45,10 +60,17 @@ export default function Test() {
<p className="text-center text-sm text-gray-500">
Ha nem kaptad meg a levelet, ellenőrizd a spam mappádat is!
</p>
<Button text="Bezár" type="button" width="w-24" onClick={() => setShowPopup(false)} />
<Button text="Bezár" type="button" width="w-24" onClick={() => setShowRegistrationPopup(false)} />
</div>
</PopUp>
)}
{/* Előnézeti popup (RatingSet) */}
{showPreviewPopup && (
<PopUp onClose={() => setShowPreviewPopup(false)}>
<RatingSet />
</PopUp>
)}
</div>
<Footer />
</div>