98 lines
2.8 KiB
TypeScript
98 lines
2.8 KiB
TypeScript
"use client";
|
|
|
|
import dynamic from "next/dynamic";
|
|
import type {
|
|
PortfolioExperience,
|
|
PortfolioProjectView,
|
|
PortfolioSkillCategory,
|
|
} from "@/lib/portfolio-data";
|
|
import Hero from "../Hero";
|
|
import Projects from "../Projects";
|
|
import { SectionLoading } from "../SectionLoading";
|
|
import NotebookStory from "../story/NotebookStory";
|
|
|
|
const About = dynamic(() => import("../About"), {
|
|
loading: () => <SectionLoading message="Carregando..." />,
|
|
});
|
|
const Skills = dynamic(() => import("../Skills"), {
|
|
loading: () => <SectionLoading message="Carregando..." />,
|
|
});
|
|
const Experience = dynamic(() => import("../Experience"), {
|
|
loading: () => <SectionLoading message="Carregando..." />,
|
|
});
|
|
const WorkModalities = dynamic(
|
|
() => import("../WorkModalities").then((mod) => mod.WorkModalities),
|
|
{ loading: () => <SectionLoading message="Carregando..." /> },
|
|
);
|
|
const Contact = dynamic(() => import("../Contact"), {
|
|
loading: () => <SectionLoading message="Carregando..." />,
|
|
});
|
|
const LighthouseMetrics = dynamic(() => import("../LighthouseMetrics"), {
|
|
loading: () => <SectionLoading message="Carregando..." />,
|
|
});
|
|
const Footer = dynamic(() => import("../Footer"));
|
|
|
|
const ScrollVelocityText = dynamic(() => import("./ScrollVelocityText"), {
|
|
ssr: false,
|
|
});
|
|
const SectionDivider = dynamic(() => import("./SectionDivider"), {
|
|
ssr: false,
|
|
});
|
|
|
|
export default function CinematicHome({
|
|
projects,
|
|
experiences,
|
|
skillCategories,
|
|
}: {
|
|
projects: PortfolioProjectView[];
|
|
experiences: PortfolioExperience[];
|
|
skillCategories: PortfolioSkillCategory[];
|
|
}) {
|
|
return (
|
|
<div className="flex min-h-screen flex-col overflow-x-clip">
|
|
<main className="ds-main">
|
|
<Hero />
|
|
|
|
{/* Marquee divider after hero */}
|
|
<div className="overflow-hidden bg-[var(--ink)] py-6 text-[rgba(244,242,237,0.06)]">
|
|
<ScrollVelocityText text="SOFTWARE ENGINEERING" direction="left" />
|
|
</div>
|
|
|
|
<NotebookStory projects={projects} />
|
|
|
|
<About />
|
|
|
|
<SectionDivider variant="waveform" />
|
|
|
|
<Skills categories={skillCategories} />
|
|
|
|
<div className="overflow-hidden bg-[var(--ink)] py-4 text-[rgba(204,255,0,0.04)]">
|
|
<ScrollVelocityText
|
|
text="NEXT.JS TAURI RUST NODE.JS TYPESCRIPT"
|
|
direction="right"
|
|
/>
|
|
</div>
|
|
|
|
<Experience experiences={experiences} />
|
|
|
|
<SectionDivider variant="gradient" />
|
|
|
|
<Projects projects={projects} />
|
|
|
|
<LighthouseMetrics />
|
|
|
|
<SectionDivider variant="pulse" />
|
|
|
|
<WorkModalities />
|
|
|
|
<div className="overflow-hidden bg-[var(--ink)] py-6 text-[rgba(244,242,237,0.05)]">
|
|
<ScrollVelocityText text="VAMOS CONVERSAR" direction="left" />
|
|
</div>
|
|
|
|
<Contact />
|
|
</main>
|
|
<Footer />
|
|
</div>
|
|
);
|
|
}
|