refactor: delete unused sections

This commit is contained in:
Mauricio Siu 2024-11-01 23:23:33 -06:00
parent f4f524a16e
commit d5b9f89125
11 changed files with 113 additions and 409 deletions

View File

@ -1,11 +1,11 @@
import { CallToAction } from "@/components/CallToAction";
import { Faqs } from "@/components/Faqs";
import { Hero } from "@/components/Hero";
import { PrimaryFeatures } from "@/components/PrimaryFeatures";
import { Testimonials } from "@/components/Testimonials";
import { FeaturesSectionDemo } from "@/components/features";
import { FirstFeaturesSection } from "@/components/first-features";
import { Pricing } from "@/components/pricing";
import { RippleDemo } from "@/components/sponsors";
import { SecondaryFeaturesSections } from "@/components/secondary-features";
import { Sponsors } from "@/components/sponsors";
import { StatsSection } from "@/components/stats";
export default function Home() {
@ -13,15 +13,15 @@ export default function Home() {
<div>
<main>
<Hero />
<FeaturesSectionDemo />
<PrimaryFeatures />
<FirstFeaturesSection />
<SecondaryFeaturesSections />
<StatsSection />
<Testimonials />
<div className="w-full relative">
<Pricing />
</div>
<Faqs />
<RippleDemo />
<Sponsors />
<CallToAction />
</main>
</div>

View File

@ -5,7 +5,6 @@ import { Button } from "./ui/button";
export function CallToAction() {
const t = useTranslations("HomePage");
const linkT = useTranslations("Link");
return (
<section
id="get-started-today"

File diff suppressed because one or more lines are too long

View File

@ -1,78 +1,77 @@
"use client";
import { cn } from "@/lib/utils";
import { Container } from "./Container";
import { Marquee } from "./ui/marquee";
const testimonials = [
[
{
content:
"This application has revolutionized the way we handle deployments. The integration of Docker and Traefik through such a user-friendly interface has saved us countless hours.",
author: {
name: "Emily R.",
role: "Full Stack Developer",
image: "/avatars/avatar-1.png",
},
},
{
content:
"As a fast-paced startup, efficiency and reliability are paramount. This software delivered on both, allowing us to focus more on development and less on operations.",
author: {
name: "Mark T.",
role: "CTO, Tech Innovations Inc.",
image: "/avatars/avatar-2.png",
},
},
],
[
{
content:
"The comprehensive monitoring and robust backup solutions have given us the peace of mind we need to operate at our best 24/7. Highly recommended!",
author: {
name: "Sarah L.",
role: "IT Director, Creative Solutions Agency",
image: "/avatars/avatar-3.png",
},
},
{
content:
"Upgrading to this platform was a game-changer for our agency. The user permission controls and real-time updates have greatly enhanced our team's efficiency.",
author: {
name: "James P.",
role: "Lead Developer, Dynamic Web Solutions",
image: "/avatars/avatar-4.png",
},
},
],
[
{
content:
"Fantastic tool! The direct container access and dynamic Traefik configuration features have made it so easy to manage our services. It's like having a DevOps team in a box!",
author: {
name: "Ana D.",
role: "Full Stack Developer, Independent Contractor",
image: "/avatars/avatar-7.png",
},
},
{
content:
"his tool has been indispensable for managing my client projects. It has streamlined my workflow and dramatically increased my productivity, allowing me to take on more clients without sacrificing quality.",
author: {
name: "Carlos M.",
role: "Freelance Full Stack Developer",
image: "/avatars/avatar-6.png",
},
},
],
];
// const testimonials = [
// [
// {
// content:
// "This application has revolutionized the way we handle deployments. The integration of Docker and Traefik through such a user-friendly interface has saved us countless hours.",
// author: {
// name: "Emily R.",
// role: "Full Stack Developer",
// image: "/avatars/avatar-1.png",
// },
// },
// {
// content:
// "As a fast-paced startup, efficiency and reliability are paramount. This software delivered on both, allowing us to focus more on development and less on operations.",
// author: {
// name: "Mark T.",
// role: "CTO, Tech Innovations Inc.",
// image: "/avatars/avatar-2.png",
// },
// },
// ],
// [
// {
// content:
// "The comprehensive monitoring and robust backup solutions have given us the peace of mind we need to operate at our best 24/7. Highly recommended!",
// author: {
// name: "Sarah L.",
// role: "IT Director, Creative Solutions Agency",
// image: "/avatars/avatar-3.png",
// },
// },
// {
// content:
// "Upgrading to this platform was a game-changer for our agency. The user permission controls and real-time updates have greatly enhanced our team's efficiency.",
// author: {
// name: "James P.",
// role: "Lead Developer, Dynamic Web Solutions",
// image: "/avatars/avatar-4.png",
// },
// },
// ],
// [
// {
// content:
// "Fantastic tool! The direct container access and dynamic Traefik configuration features have made it so easy to manage our services. It's like having a DevOps team in a box!",
// author: {
// name: "Ana D.",
// role: "Full Stack Developer, Independent Contractor",
// image: "/avatars/avatar-7.png",
// },
// },
// {
// content:
// "his tool has been indispensable for managing my client projects. It has streamlined my workflow and dramatically increased my productivity, allowing me to take on more clients without sacrificing quality.",
// author: {
// name: "Carlos M.",
// role: "Freelance Full Stack Developer",
// image: "/avatars/avatar-6.png",
// },
// },
// ],
// ];
function QuoteIcon(props: React.ComponentPropsWithoutRef<"svg">) {
return (
<svg aria-hidden="true" width={105} height={78} {...props}>
<path d="M25.086 77.292c-4.821 0-9.115-1.205-12.882-3.616-3.767-2.561-6.78-6.102-9.04-10.622C1.054 58.534 0 53.411 0 47.686c0-5.273.904-10.396 2.712-15.368 1.959-4.972 4.746-9.567 8.362-13.786a59.042 59.042 0 0 1 12.43-11.3C28.325 3.917 33.599 1.507 39.324 0l11.074 13.786c-6.479 2.561-11.677 5.951-15.594 10.17-3.767 4.219-5.65 7.835-5.65 10.848 0 1.356.377 2.863 1.13 4.52.904 1.507 2.637 3.089 5.198 4.746 3.767 2.41 6.328 4.972 7.684 7.684 1.507 2.561 2.26 5.5 2.26 8.814 0 5.123-1.959 9.19-5.876 12.204-3.767 3.013-8.588 4.52-14.464 4.52Zm54.24 0c-4.821 0-9.115-1.205-12.882-3.616-3.767-2.561-6.78-6.102-9.04-10.622-2.11-4.52-3.164-9.643-3.164-15.368 0-5.273.904-10.396 2.712-15.368 1.959-4.972 4.746-9.567 8.362-13.786a59.042 59.042 0 0 1 12.43-11.3C82.565 3.917 87.839 1.507 93.564 0l11.074 13.786c-6.479 2.561-11.677 5.951-15.594 10.17-3.767 4.219-5.65 7.835-5.65 10.848 0 1.356.377 2.863 1.13 4.52.904 1.507 2.637 3.089 5.198 4.746 3.767 2.41 6.328 4.972 7.684 7.684 1.507 2.561 2.26 5.5 2.26 8.814 0 5.123-1.959 9.19-5.876 12.204-3.767 3.013-8.588 4.52-14.464 4.52Z" />
</svg>
);
}
// function QuoteIcon(props: React.ComponentPropsWithoutRef<"svg">) {
// return (
// <svg aria-hidden="true" width={105} height={78} {...props}>
// <path d="M25.086 77.292c-4.821 0-9.115-1.205-12.882-3.616-3.767-2.561-6.78-6.102-9.04-10.622C1.054 58.534 0 53.411 0 47.686c0-5.273.904-10.396 2.712-15.368 1.959-4.972 4.746-9.567 8.362-13.786a59.042 59.042 0 0 1 12.43-11.3C28.325 3.917 33.599 1.507 39.324 0l11.074 13.786c-6.479 2.561-11.677 5.951-15.594 10.17-3.767 4.219-5.65 7.835-5.65 10.848 0 1.356.377 2.863 1.13 4.52.904 1.507 2.637 3.089 5.198 4.746 3.767 2.41 6.328 4.972 7.684 7.684 1.507 2.561 2.26 5.5 2.26 8.814 0 5.123-1.959 9.19-5.876 12.204-3.767 3.013-8.588 4.52-14.464 4.52Zm54.24 0c-4.821 0-9.115-1.205-12.882-3.616-3.767-2.561-6.78-6.102-9.04-10.622-2.11-4.52-3.164-9.643-3.164-15.368 0-5.273.904-10.396 2.712-15.368 1.959-4.972 4.746-9.567 8.362-13.786a59.042 59.042 0 0 1 12.43-11.3C82.565 3.917 87.839 1.507 93.564 0l11.074 13.786c-6.479 2.561-11.677 5.951-15.594 10.17-3.767 4.219-5.65 7.835-5.65 10.848 0 1.356.377 2.863 1.13 4.52.904 1.507 2.637 3.089 5.198 4.746 3.767 2.41 6.328 4.972 7.684 7.684 1.507 2.561 2.26 5.5 2.26 8.814 0 5.123-1.959 9.19-5.876 12.204-3.767 3.013-8.588 4.52-14.464 4.52Z" />
// </svg>
// );
// }
const reviews = [
{

View File

@ -4,7 +4,6 @@ import { motion } from "framer-motion";
import Image from "next/image";
import Link from "next/link";
import type React from "react";
import { useEffect, useRef } from "react";
export function FeaturesSectionDemo() {
const features = [

View File

@ -13,7 +13,7 @@ import {
} from "@tabler/icons-react";
import { Layers, Lock, UnlockIcon } from "lucide-react";
export function FeaturesSectionDemo() {
export function FirstFeaturesSection() {
const features = [
{
title: "Flexible Application Deployment",

View File

@ -327,95 +327,6 @@ export function Pricing() {
</div>
</div>
</Container>
{/* <Faqs /> */}
</section>
);
}
const faqs = [
[
{
question: "faq.q1",
answer: "faq.a1",
},
{
question: "faq.q2",
answer: "faq.a2",
},
{
question: "faq.q3",
answer: "faq.a3",
},
],
[
{
question: "faq.q4",
answer: "faq.a4",
},
{
question: "faq.q5",
answer: "faq.a5",
},
{
question: "faq.q6",
answer: "faq.a6",
},
],
[
{
question: "faq.q7",
answer: "faq.a7",
},
{
question: "faq.q8",
answer: "faq.a8",
},
],
];
export function Faqs() {
const t = useTranslations("Pricing");
return (
<section
id="faqs"
aria-labelledby="faq-title"
className="relative overflow-hidden bg-black py-20 sm:py-32"
>
<Container className="relative">
<div className="mx-auto max-w-2xl lg:mx-0">
<h2
id="faq-title"
className="font-display text-3xl tracking-tight text-primary sm:text-4xl"
>
{t("faq.title")}
</h2>
<p className="mt-4 text-lg tracking-tight text-muted-foreground">
{t("faq.description")}:{" "}
<Link href={"mailto:support@dokploy.com"} className="text-primary">
support@dokploy.com
</Link>
</p>
</div>
<ul className="mx-auto mt-16 grid max-w-2xl grid-cols-1 gap-8 lg:max-w-none lg:grid-cols-3">
{faqs.map((column, columnIndex) => (
<li key={columnIndex}>
<ul className="flex flex-col gap-y-8">
{column.map((faq, faqIndex) => (
<li key={faqIndex}>
<h3 className="font-display text-lg leading-7 text-primary">
{t(faq.question)}
</h3>
<p className="mt-4 text-sm text-muted-foreground">
{t(faq.answer)}
</p>
</li>
))}
</ul>
</li>
))}
</ul>
</Container>
</section>
);
}

View File

@ -42,7 +42,7 @@ const features = [
},
];
export function PrimaryFeatures() {
export function SecondaryFeaturesSections() {
const t = useTranslations("HomePage");
const [tabOrientation, setTabOrientation] = useState<
"horizontal" | "vertical"

View File

@ -11,7 +11,7 @@ import {
TooltipTrigger,
} from "./ui/tooltip";
export const RippleDemo = () => {
export const Sponsors = () => {
const t = useTranslations("HomePage");
return (
<div className="mt-20 flex flex-col justify-center gap-y-10 w-full ">

View File

@ -1,4 +1,4 @@
import { GithubIcon, HandCoins, Users } from "lucide-react";
import { HandCoins, Users } from "lucide-react";
import React from "react";
import { useId } from "react";
import NumberTicker from "./ui/number-ticker";

View File

@ -199,7 +199,7 @@ const Ripple = React.memo(function Ripple({
<div className="relative w-full h-full flex justify-center items-center">
{premiumSponsors.map((item, index) => {
const angle = (360 / premiumSponsors.length) * index;
const radius = mainCircleSize / 2 + 70; // Radio mayor para el segundo aro
const radius = mainCircleSize / 2 + 70;
const x = radius * Math.cos((angle * Math.PI) / 180);
const y = radius * Math.sin((angle * Math.PI) / 180);
const initials = item.name