Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 574b7869b6 | |||
| 7008f48b65 |
@@ -1,274 +0,0 @@
|
||||
"use client";
|
||||
|
||||
import { useState } from "react";
|
||||
import Link from "next/link";
|
||||
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
|
||||
import HeroOverlay from "@/components/sections/hero/HeroOverlay";
|
||||
import ContactSplit from "@/components/sections/contact/ContactSplit";
|
||||
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import { LogOut, User, FileText, Settings, Download, ArrowRight, Mail } from "lucide-react";
|
||||
|
||||
export default function ClientZonePage() {
|
||||
const [isLoggedIn, setIsLoggedIn] = useState(false);
|
||||
const [email, setEmail] = useState("");
|
||||
const [password, setPassword] = useState("");
|
||||
const [showPassword, setShowPassword] = useState(false);
|
||||
|
||||
const handleLogin = (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
if (email && password) {
|
||||
setIsLoggedIn(true);
|
||||
}
|
||||
};
|
||||
|
||||
const handleLogout = () => {
|
||||
setIsLoggedIn(false);
|
||||
setEmail("");
|
||||
setPassword("");
|
||||
};
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="hover-bubble"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="medium"
|
||||
background="floatingGradient"
|
||||
cardStyle="gradient-bordered"
|
||||
primaryButtonStyle="diagonal-gradient"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarLayoutFloatingOverlay
|
||||
brandName="Webuild"
|
||||
navItems={[
|
||||
{ name: "Projekty", id: "/" },
|
||||
{ name: "O nás", id: "/" },
|
||||
{ name: "Klientská zóna", id: "/client-zone" },
|
||||
{ name: "Kontakt", id: "/" },
|
||||
]}
|
||||
button={{
|
||||
text: isLoggedIn ? "Odhlásit se" : "Přihlásit se", onClick: isLoggedIn ? handleLogout : undefined,
|
||||
href: isLoggedIn ? undefined : "/client-zone"
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{!isLoggedIn ? (
|
||||
<>
|
||||
{/* Login Hero Section */}
|
||||
<div id="hero" data-section="hero" className="min-h-screen flex items-center justify-center py-20 px-4">
|
||||
<div className="w-full max-w-md">
|
||||
<div className="bg-card rounded-lg border border-accent/10 p-8 shadow-lg backdrop-blur-sm">
|
||||
{/* Header */}
|
||||
<div className="mb-8 text-center">
|
||||
<div className="flex items-center justify-center gap-2 mb-4">
|
||||
<User className="w-8 h-8 text-primary-cta" />
|
||||
</div>
|
||||
<h1 className="text-3xl font-bold text-foreground mb-2">Klientská zóna</h1>
|
||||
<p className="text-foreground/70">Přihlaste se k přístupu na vaše projekty</p>
|
||||
</div>
|
||||
|
||||
{/* Login Form */}
|
||||
<form onSubmit={handleLogin} className="space-y-4 mb-6">
|
||||
{/* Email Input */}
|
||||
<div>
|
||||
<label className="block text-sm font-medium text-foreground mb-2">
|
||||
Email
|
||||
</label>
|
||||
<input
|
||||
type="email"
|
||||
value={email}
|
||||
onChange={(e) => setEmail(e.target.value)}
|
||||
placeholder="vase.email@priklad.cz"
|
||||
className="w-full px-4 py-3 rounded-lg border border-accent/20 bg-secondary-cta text-foreground placeholder-foreground/50 focus:outline-none focus:ring-2 focus:ring-primary-cta transition"
|
||||
required
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Password Input */}
|
||||
<div>
|
||||
<label className="block text-sm font-medium text-foreground mb-2">
|
||||
Heslo
|
||||
</label>
|
||||
<div className="relative">
|
||||
<input
|
||||
type={showPassword ? "text" : "password"}
|
||||
value={password}
|
||||
onChange={(e) => setPassword(e.target.value)}
|
||||
placeholder="Vaše heslo"
|
||||
className="w-full px-4 py-3 rounded-lg border border-accent/20 bg-secondary-cta text-foreground placeholder-foreground/50 focus:outline-none focus:ring-2 focus:ring-primary-cta transition"
|
||||
required
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setShowPassword(!showPassword)}
|
||||
className="absolute right-3 top-1/2 -translate-y-1/2 text-foreground/50 hover:text-foreground transition"
|
||||
>
|
||||
{showPassword ? "Skrýt" : "Zobrazit"}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Submit Button */}
|
||||
<button
|
||||
type="submit"
|
||||
className="w-full bg-primary-cta text-background font-semibold py-3 rounded-lg hover:opacity-90 transition flex items-center justify-center gap-2 mt-6"
|
||||
>
|
||||
Přihlásit se
|
||||
<ArrowRight className="w-4 h-4" />
|
||||
</button>
|
||||
</form>
|
||||
|
||||
{/* Footer */}
|
||||
<div className="border-t border-accent/10 pt-6 text-center text-sm text-foreground/60">
|
||||
<p>Nemáte přístup? <a href="mailto:info@webuild.cz" className="text-primary-cta hover:underline">Kontaktujte nás</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
{/* Dashboard Section */}
|
||||
<div id="dashboard" data-section="dashboard" className="min-h-screen py-20 px-4">
|
||||
<div className="max-w-6xl mx-auto">
|
||||
{/* Welcome Header */}
|
||||
<div className="mb-12">
|
||||
<div className="flex items-center justify-between mb-2">
|
||||
<h1 className="text-4xl font-bold text-foreground">Vítejte zpět!</h1>
|
||||
<button
|
||||
onClick={handleLogout}
|
||||
className="flex items-center gap-2 px-4 py-2 text-foreground/70 hover:text-foreground transition"
|
||||
>
|
||||
<LogOut className="w-4 h-4" />
|
||||
Odhlásit se
|
||||
</button>
|
||||
</div>
|
||||
<p className="text-foreground/60">Přehled vašich projektů a dokumentů</p>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||
{/* Project Cards */}
|
||||
{[
|
||||
{
|
||||
id: "1", title: "E-Commerce Platforma", status: "V provozu", date: "Spuštěno: 15. března 2024", icon: FileText,
|
||||
},
|
||||
{
|
||||
id: "2", title: "Mobilní Aplikace", status: "V provozu", date: "Spuštěno: 22. dubna 2024", icon: FileText,
|
||||
},
|
||||
{
|
||||
id: "3", title: "SaaS Řešení", status: "Vývoj", date: "Zahájeno: 1. ledna 2025", icon: FileText,
|
||||
},
|
||||
].map((project) => (
|
||||
<div
|
||||
key={project.id}
|
||||
className="bg-card border border-accent/10 rounded-lg p-6 hover:border-accent/30 transition group cursor-pointer"
|
||||
>
|
||||
<div className="flex items-start justify-between mb-4">
|
||||
<project.icon className="w-8 h-8 text-primary-cta" />
|
||||
<span
|
||||
className={`text-xs font-semibold px-3 py-1 rounded-full ${
|
||||
project.status === "V provozu"
|
||||
? "bg-green-500/20 text-green-600"
|
||||
: "bg-yellow-500/20 text-yellow-600"
|
||||
}`}
|
||||
>
|
||||
{project.status}
|
||||
</span>
|
||||
</div>
|
||||
<h3 className="text-lg font-semibold text-foreground mb-2 group-hover:text-primary-cta transition">
|
||||
{project.title}
|
||||
</h3>
|
||||
<p className="text-sm text-foreground/60 mb-4">{project.date}</p>
|
||||
<button className="flex items-center gap-2 text-primary-cta hover:gap-3 transition text-sm font-medium">
|
||||
Zobrazit detaily
|
||||
<ArrowRight className="w-4 h-4" />
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
{/* Quick Links Section */}
|
||||
<div className="mt-12 grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div className="bg-card border border-accent/10 rounded-lg p-8">
|
||||
<div className="flex items-center gap-3 mb-4">
|
||||
<Download className="w-6 h-6 text-primary-cta" />
|
||||
<h2 className="text-xl font-semibold text-foreground">Ke stažení</h2>
|
||||
</div>
|
||||
<p className="text-foreground/60 mb-4">Projekte a dokumenty k dispozici pro stažení</p>
|
||||
<button className="flex items-center gap-2 text-primary-cta hover:gap-3 transition font-medium">
|
||||
Zobrazit soubory
|
||||
<ArrowRight className="w-4 h-4" />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="bg-card border border-accent/10 rounded-lg p-8">
|
||||
<div className="flex items-center gap-3 mb-4">
|
||||
<Settings className="w-6 h-6 text-primary-cta" />
|
||||
<h2 className="text-xl font-semibold text-foreground">Nastavení účtu</h2>
|
||||
</div>
|
||||
<p className="text-foreground/60 mb-4">Spravujte svůj profil a preferenze</p>
|
||||
<button className="flex items-center gap-2 text-primary-cta hover:gap-3 transition font-medium">
|
||||
Přejít na nastavení
|
||||
<ArrowRight className="w-4 h-4" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
{/* Contact CTA Section */}
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplit
|
||||
tag="Podpora"
|
||||
tagIcon={Mail}
|
||||
title="Máte otázky?"
|
||||
description="Náš tým je vždy připraven vám pomoci. Kontaktujte nás s jakýmikoliv dotazy ohledně vašich projektů."
|
||||
background={{ variant: "sparkles-gradient" }}
|
||||
useInvertedBackground={true}
|
||||
mediaPosition="right"
|
||||
mediaAnimation="slide-up"
|
||||
inputPlaceholder="Vaše email..."
|
||||
buttonText="Poslat zprávu"
|
||||
termsText="Odpovíme obvykle do 24 hodin."
|
||||
onSubmit={(email) => console.log("Support request from:", email)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBaseReveal
|
||||
columns={[
|
||||
{
|
||||
title: "Produkty", items: [
|
||||
{ label: "Web Development", href: "#projects" },
|
||||
{ label: "Mobile Apps", href: "#projects" },
|
||||
{ label: "SaaS Solutions", href: "#projects" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Společnost", items: [
|
||||
{ label: "O nás", href: "/about" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Kariéra", href: "#" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Právní", items: [
|
||||
{ label: "Ochrana osobních údajů", href: "#" },
|
||||
{ label: "Podmínky používání", href: "#" },
|
||||
{ label: "Kontakt", href: "contact" },
|
||||
],
|
||||
},
|
||||
]}
|
||||
copyrightText="© 2024 Webuild. Všechna práva vyhrazena."
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -33,8 +33,7 @@ export default function ContactPage() {
|
||||
{ name: "Kontakt", id: "contact" },
|
||||
]}
|
||||
button={{
|
||||
text: "Začít projekt", href: "contact"
|
||||
}}
|
||||
text: "Začít projekt", href: "contact"}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -92,16 +91,13 @@ export default function ContactPage() {
|
||||
features={[
|
||||
{
|
||||
id: 1,
|
||||
tag: "Cena", title: "Kolik stojí vývoj projektu?", subtitle: "Cena závisí na vaších potřebách", description: "Každý projekt je unikátní. Cena se liší v závislosti na rozsahu, složitosti, technologiích a časové lhůtě. Poskytneme vám přesný odhad po konzultaci. Můžeme pracovat na základě pevné ceny, time-and-materials nebo retainer modelů.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AktXk5vl9xYcHjxhZM3X0XrHrX/project-discovery-and-planning-phase-vis-1773150026837-172cea3d.png?_wi=2", imageAlt: "Pricing"
|
||||
},
|
||||
tag: "Cena", title: "Kolik stojí vývoj projektu?", subtitle: "Cena závisí na vaších potřebách", description: "Každý projekt je unikátní. Cena se liší v závislosti na rozsahu, složitosti, technologiích a časové lhůtě. Poskytneme vám přesný odhad po konzultaci. Můžeme pracovat na základě pevné ceny, time-and-materials nebo retainer modelů.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AktXk5vl9xYcHjxhZM3X0XrHrX/project-discovery-and-planning-phase-vis-1773150026837-172cea3d.png?_wi=2", imageAlt: "Pricing"},
|
||||
{
|
||||
id: 2,
|
||||
tag: "Čas", title: "Jak dlouho trvá vývoj?", subtitle: "Závisí na specifikaci projektu", description: "Jednoduchý web může trvat 4-8 týdnů, zatímco komplexní SaaS aplikace může trvat 3-6 měsíců nebo více. Během prvotní konzultace si stanoveníme realistický časový plán a milníky projektu.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AktXk5vl9xYcHjxhZM3X0XrHrX/ui-ux-design-and-prototyping-phase-desig-1773150026434-808fbc2f.png?_wi=2", imageAlt: "Timeline"
|
||||
},
|
||||
tag: "Čas", title: "Jak dlouho trvá vývoj?", subtitle: "Závisí na specifikaci projektu", description: "Jednoduchý web může trvat 4-8 týdnů, zatímco komplexní SaaS aplikace může trvat 3-6 měsíců nebo více. Během prvotní konzultace si stanoveníme realistický časový plán a milníky projektu.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AktXk5vl9xYcHjxhZM3X0XrHrX/ui-ux-design-and-prototyping-phase-desig-1773150026434-808fbc2f.png?_wi=2", imageAlt: "Timeline"},
|
||||
{
|
||||
id: 3,
|
||||
tag: "Podpora", title: "Poskytujete podporu po spuštění?", subtitle: "Ano, zůstáváme s vámi", description: "Po spuštění projektu nabízíme různé balíčky podpory a údržby. Od záchytné chyby po měsíční optimalizace. Jsme vždy připraveni vám pomoci a zlepšovat váš systém.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AktXk5vl9xYcHjxhZM3X0XrHrX/quality-assurance-and-testing-phase-qa-e-1773150027299-048c5178.png?_wi=2", imageAlt: "Support"
|
||||
},
|
||||
tag: "Podpora", title: "Poskytujete podporu po spuštění?", subtitle: "Ano, zůstáváme s vámi", description: "Po spuštění projektu nabízíme různé balíčky podpory a údržby. Od záchytné chyby po měsíční optimalizace. Jsme vždy připraveni vám pomoci a zlepšovat váš systém.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AktXk5vl9xYcHjxhZM3X0XrHrX/quality-assurance-and-testing-phase-qa-e-1773150027299-048c5178.png?_wi=2", imageAlt: "Support"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -87,7 +87,8 @@ export default function HomePage() {
|
||||
]}
|
||||
buttons={[
|
||||
{
|
||||
text: "Více o nás", href: "/about"},
|
||||
text: "Více o nás", href: "/about"
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -193,14 +194,14 @@ export default function HomePage() {
|
||||
columns={[
|
||||
{
|
||||
title: "Produkty", items: [
|
||||
{ label: "Web Development", href: "#projects" },
|
||||
{ label: "Mobile Apps", href: "#projects" },
|
||||
{ label: "SaaS Solutions", href: "#projects" },
|
||||
{ label: "Webové Stránky", href: "#projects" },
|
||||
{ label: "Mobilní Aplikace", href: "#projects" },
|
||||
{ label: "SaaS Řešení", href: "#projects" },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Společnost", items: [
|
||||
{ label: "O nás", href: "/about" },
|
||||
{ label: "O nás", href: "#about" },
|
||||
{ label: "Blog", href: "#" },
|
||||
{ label: "Kariéra", href: "#" },
|
||||
],
|
||||
@@ -209,7 +210,7 @@ export default function HomePage() {
|
||||
title: "Právní", items: [
|
||||
{ label: "Ochrana osobních údajů", href: "#" },
|
||||
{ label: "Podmínky používání", href: "#" },
|
||||
{ label: "Kontakt", href: "contact" },
|
||||
{ label: "Kontakt", href: "#contact" },
|
||||
],
|
||||
},
|
||||
]}
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
--accent: #ffffff;
|
||||
--background-accent: #ffffff; */
|
||||
|
||||
--background: #ffffff;
|
||||
--card: #f9f9f9;
|
||||
--foreground: #0a1a1a;
|
||||
--primary-cta: #1a7d6b;
|
||||
--background: #f5f5f0;
|
||||
--card: #ffffff;
|
||||
--foreground: #1a1a1a;
|
||||
--primary-cta: #1a5d4a;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #ff8c42;
|
||||
--secondary-cta: #ff8a3a;
|
||||
--secondary-cta-text: #ffffff;
|
||||
--accent: #ff8c42;
|
||||
--background-accent: #1a7d6b;
|
||||
--accent: #ff8a3a;
|
||||
--background-accent: #1a5d4a;
|
||||
|
||||
/* text sizing - set by ThemeProvider */
|
||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||
|
||||
Reference in New Issue
Block a user