* update

* cleanup

* fixing linting and tests errors

* Refactor API Parameter Handling and Update Email Transport

 Updated API Route Parameters:
- Changed parameter type from `{ id: string }` to `Promise<{ id: string }>` in PUT and DELETE methods for better async handling.

 Fixed Email Transport Creation:
- Updated `nodemailer.createTransporter` to `nodemailer.createTransport` for correct transport configuration.

 Refactored AnalyticsDashboard Component:
- Changed export from default to named export for better modularity.

 Enhanced Email Responder Toast:
- Updated toast structure to include additional properties for better user feedback.

🎯 Overall Improvements:
- Improved async handling in API routes.
- Ensured correct usage of nodemailer.
- Enhanced component exports and user notifications.
This commit is contained in:
denshooter
2025-09-08 08:36:16 +02:00
committed by GitHub
parent 7e603c7c54
commit a842cb04f3
36 changed files with 2591 additions and 2830 deletions

View File

@@ -23,7 +23,7 @@ const Hero = () => {
}
return (
<section className="relative min-h-screen flex items-center justify-center overflow-hidden">
<section className="relative min-h-screen flex items-center justify-center overflow-hidden pt-20 pb-8">
{/* Animated Background */}
<div className="absolute inset-0 animated-bg"></div>
@@ -71,17 +71,26 @@ const Hero = () => {
</div>
<div className="relative z-10 text-center px-4 max-w-4xl mx-auto">
{/* Domain - über dem Profilbild */}
<motion.div
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.5 }}
className="mb-8"
>
<div className="domain-text text-white/95 text-center">
dk<span className="text-red-500">0</span>.dev
</div>
</motion.div>
{/* Profile Image */}
<motion.div
initial={{ opacity: 0, scale: 0.8, rotateY: -15 }}
animate={{ opacity: 1, scale: 1, rotateY: 0 }}
transition={{ duration: 1, delay: 0.1, ease: "easeOut" }}
transition={{ duration: 1, delay: 0.7, ease: "easeOut" }}
className="mb-8 flex justify-center"
>
<div className="relative group">
{/* Glowing border effect */}
<div className="absolute -inset-1 bg-gradient-to-r from-blue-600 via-purple-600 to-cyan-600 rounded-full blur opacity-75 group-hover:opacity-100 transition duration-1000 group-hover:duration-200 animate-pulse"></div>
{/* Profile image container */}
<div className="relative bg-gray-900 rounded-full p-1">
<motion.div
@@ -137,7 +146,7 @@ const Hero = () => {
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 0.8 }}
className="text-5xl md:text-7xl font-bold mb-6"
className="text-5xl md:text-7xl font-bold mb-4"
>
<span className="gradient-text">Dennis Konkol</span>
</motion.h1>
@@ -146,7 +155,7 @@ const Hero = () => {
<motion.p
initial={{ opacity: 0, y: 30 }}
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.8, delay: 1.0 }}
transition={{ duration: 0.8, delay: 1.1 }}
className="text-xl md:text-2xl text-gray-300 mb-8 max-w-2xl mx-auto"
>
Student & Software Engineer based in Osnabrück, Germany
@@ -216,15 +225,15 @@ const Hero = () => {
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ duration: 1, delay: 1.5 }}
className="mt-16 text-center"
className="mt-12 md:mt-16 text-center relative z-20"
>
<motion.div
animate={{ y: [0, 10, 0] }}
transition={{ duration: 2, repeat: Infinity }}
className="flex flex-col items-center text-gray-400"
className="flex flex-col items-center text-white/90 bg-black/30 backdrop-blur-md px-6 py-3 rounded-full border border-white/20 shadow-lg"
>
<span className="text-sm mb-2">Scroll Down</span>
<ArrowDown className="w-5 h-5" />
<span className="text-sm md:text-base mb-2 font-medium">Scroll Down</span>
<ArrowDown className="w-5 h-5 md:w-6 md:h-6" />
</motion.div>
</motion.div>
</div>