5 Commits

Author SHA1 Message Date
5b6f340418 Update src/app/admin/page.tsx 2026-04-21 13:41:50 +00:00
23f2f53c7a Update src/app/admin/page.tsx 2026-04-21 13:41:25 +00:00
88d49b96b9 Merge version_1 into main
Merge version_1 into main
2026-04-21 13:38:14 +00:00
d7965129f5 Merge version_1 into main
Merge version_1 into main
2026-04-21 13:37:44 +00:00
31e586dbc9 Merge version_1 into main
Merge version_1 into main
2026-04-21 13:37:17 +00:00

View File

@@ -1,103 +1,76 @@
"use client"; "use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import { useState } from "react";
import FeatureBento from '@/components/sections/feature/FeatureBento';
import FooterMedia from '@/components/sections/footer/FooterMedia'; export default function AdminPage() {
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen'; const [isAuthenticated, setIsAuthenticated] = useState(false);
import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard'; const [password, setPassword] = useState("");
import { CalendarDays, Clock } from "lucide-react";
if (!isAuthenticated) {
return (
<div className="flex min-h-screen items-center justify-center p-4">
<div className="w-full max-w-sm space-y-4 rounded-xl border p-8 shadow-lg">
<h1 className="text-center text-2xl font-bold">Acesso Barbeiro</h1>
<input
type="password"
placeholder="Senha de acesso"
className="w-full rounded-md border p-2"
value={password}
onChange={(e) => setPassword(e.target.value)}
/>
<button
onClick={() => password === "barber123" && setIsAuthenticated(true)}
className="w-full rounded-md bg-primary p-2 text-white"
>
Entrar
</button>
</div>
</div>
);
}
export default function LandingPage() {
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="icon-arrow" defaultButtonVariant="text-stagger"
defaultTextAnimation="background-highlight" defaultTextAnimation="entrance-slide"
borderRadius="pill" borderRadius="rounded"
contentWidth="medium" contentWidth="medium"
sizing="mediumLarge" sizing="medium"
background="fluid" background="circleGradient"
cardStyle="glass-elevated" cardStyle="glass-elevated"
primaryButtonStyle="diagonal-gradient" primaryButtonStyle="gradient"
secondaryButtonStyle="layered" secondaryButtonStyle="glass"
headingFontWeight="bold" headingFontWeight="normal"
> >
<ReactLenis root> <div className="container mx-auto p-8">
<div id="nav" data-section="nav"> <h1 className="mb-8 text-3xl font-bold">Agenda Administrativa</h1>
<NavbarStyleFullscreen <div className="grid gap-8">
navItems={[ <div className="rounded-xl border p-6">
{ <h2 className="mb-4 text-xl font-semibold">Digital Calendar</h2>
name: "Início", id: "/"}, <div className="grid grid-cols-7 gap-2">
{ {Array.from({ length: 30 }).map((_, i) => (
name: "Agenda Admin", id: "/admin"}, <div key={i} className="aspect-square border p-2">
]} {i + 1}
brandName="BarberSchedule" </div>
/> ))}
</div> </div>
</div>
<div id="admin-agenda" data-section="admin-agenda"> <div className="rounded-xl border p-6">
<TestimonialAboutCard <h2 className="mb-4 text-xl font-semibold">Agenda Diária</h2>
useInvertedBackground={true} <div className="space-y-4">
tag="Painel de Controle" <div className="flex justify-between border-b pb-2">
title="Agenda Interativa do Barbeiro" <span>09:00 - Cliente A</span>
description="Gerencie seus horários manualmente com total controle e organização em tempo real." <span className="text-green-500">Confirmado</span>
subdescription="Interface pensada para alta performance." </div>
icon={CalendarDays} <div className="flex justify-between border-b pb-2">
imageSrc="http://img.b2bpic.net/free-photo/young-bearded-man-getting-haircut-by-hairdresser-while-sitting-chair-barbershop-barber-soul_627829-6340.jpg" <span>10:30 - Cliente B</span>
mediaAnimation="slide-up" <span className="text-blue-500">Pendente</span>
/> </div>
</div> </div>
</div>
<div id="admin-tasks" data-section="admin-tasks"> </div>
<FeatureBento </div>
animationType="slide-up"
textboxLayout="split"
useInvertedBackground={false}
features={[
{
title: "Tarefas Diárias", description: "Visualização clara dos atendimentos.", bentoComponent: "3d-task-list", items: [
{
icon: Clock,
label: "Corte Executivo", time: "09:00"},
{
icon: Clock,
label: "Barba Completa", time: "10:30"},
{
icon: Clock,
label: "Degradê", time: "11:45"},
],
},
]}
title="Ferramentas do Barbeiro"
description="Organize seu dia, acompanhe atendimentos e mantenha sua produtividade em alta."
/>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="http://img.b2bpic.net/free-photo/young-man-barber-s-shop-getting-his-beard-trimmed_23-2149186494.jpg?_wi=2"
logoText="BarberSchedule"
columns={[
{
title: "Navegação", items: [
{
label: "Início", href: "/"},
{
label: "Agenda Admin", href: "/admin"},
],
},
{
title: "Contato", items: [
{
label: "WhatsApp", href: "#"},
{
label: "Instagram", href: "#"},
],
},
]}
/>
</div>
</ReactLenis>
</ThemeProvider> </ThemeProvider>
); );
} }