|
| 1 | +"use client"; |
| 2 | + |
| 3 | +import { SupportedLanguage } from "@/locales/.generated/types"; |
| 4 | +import { |
| 5 | + servicesCtoaasTitle, |
| 6 | + servicesHeading, |
| 7 | + servicesCtoaasText, |
| 8 | + servicesCtoaasDesc, |
| 9 | + servicesCtoaasItems0, |
| 10 | + servicesCtoaasItems1, |
| 11 | + servicesCtoaasItems2, |
| 12 | + servicesSaasTitle, |
| 13 | + servicesSaasText, |
| 14 | + servicesSaasDesc, |
| 15 | + servicesSaasItems0, |
| 16 | + servicesSaasItems1, |
| 17 | + servicesSaasItems2, |
| 18 | + servicesTechDueDiligenceTitle, |
| 19 | + servicesTechDueDiligenceText, |
| 20 | + servicesTechDueDiligenceDesc, |
| 21 | + servicesTechDueDiligenceItems0, |
| 22 | + servicesTechDueDiligenceItems1, |
| 23 | + servicesTechDueDiligenceItems2, |
| 24 | + servicesErpTitle, |
| 25 | + servicesErpText, |
| 26 | + servicesErpDesc, |
| 27 | + servicesErpItems0, |
| 28 | + servicesErpItems1, |
| 29 | + servicesErpItems2, |
| 30 | + servicesCtaLabel, |
| 31 | + servicesCtaHeading, |
| 32 | + servicesCtaDesc, |
| 33 | + servicesPartnersHeading, |
| 34 | + servicesPartnersDesc |
| 35 | +} from "@/locales/.generated/server"; |
| 36 | +import { ServiceCard } from "../components/service-card"; |
| 37 | +import { Button } from "@/components/ui/button"; |
| 38 | +import Link from "next/link"; |
| 39 | +import Image from "next/image"; |
| 40 | + |
| 41 | +export default function Home({ lang }: { lang: SupportedLanguage }) { |
| 42 | + return ( |
| 43 | + <main className="xxl:max-w-7xl mx-auto flex w-full max-w-6xl flex-wrap items-center justify-center px-4 py-12 text-center md:px-20 xl:px-0"> |
| 44 | + <h3 className="mb-14 text-[34px] font-medium text-hyperjump-black md:text-[40px]"> |
| 45 | + {servicesHeading(lang)} |
| 46 | + </h3> |
| 47 | + <section className="space-y-16"> |
| 48 | + <ServiceCard |
| 49 | + title={servicesCtoaasTitle(lang)} |
| 50 | + text={servicesCtoaasText(lang)} |
| 51 | + desc={servicesCtoaasDesc(lang)} |
| 52 | + items={[ |
| 53 | + servicesCtoaasItems0(lang), |
| 54 | + servicesCtoaasItems1(lang), |
| 55 | + servicesCtoaasItems2(lang) |
| 56 | + ]} |
| 57 | + image="/images/services/ctoaas.webp" |
| 58 | + icon="/images/services/ctoaas-icon.svg" |
| 59 | + /> |
| 60 | + |
| 61 | + <ServiceCard |
| 62 | + title={servicesSaasTitle(lang)} |
| 63 | + text={servicesSaasText(lang)} |
| 64 | + desc={servicesSaasDesc(lang)} |
| 65 | + items={[ |
| 66 | + servicesSaasItems0(lang), |
| 67 | + servicesSaasItems1(lang), |
| 68 | + servicesSaasItems2(lang) |
| 69 | + ]} |
| 70 | + image="/images/services/saas.webp" |
| 71 | + icon="/images/services/saas-icon.svg" |
| 72 | + reverse |
| 73 | + /> |
| 74 | + |
| 75 | + <ServiceCard |
| 76 | + title={servicesTechDueDiligenceTitle(lang)} |
| 77 | + text={servicesTechDueDiligenceText(lang)} |
| 78 | + desc={servicesTechDueDiligenceDesc(lang)} |
| 79 | + items={[ |
| 80 | + servicesTechDueDiligenceItems0(lang), |
| 81 | + servicesTechDueDiligenceItems1(lang), |
| 82 | + servicesTechDueDiligenceItems2(lang) |
| 83 | + ]} |
| 84 | + image="/images/services/tech-due-diligence.webp" |
| 85 | + icon="/images/services/tech-due-diligence-icon.svg" |
| 86 | + /> |
| 87 | + |
| 88 | + <ServiceCard |
| 89 | + title={servicesErpTitle(lang)} |
| 90 | + text={servicesErpText(lang)} |
| 91 | + desc={servicesErpDesc(lang)} |
| 92 | + items={[ |
| 93 | + servicesErpItems0(lang), |
| 94 | + servicesErpItems1(lang), |
| 95 | + servicesErpItems2(lang) |
| 96 | + ]} |
| 97 | + image="/images/services/erp.webp" |
| 98 | + icon="/images/services/erp-icon.svg" |
| 99 | + withBorder={false} |
| 100 | + reverse |
| 101 | + /> |
| 102 | + </section> |
| 103 | + |
| 104 | + <section className="relative mb-10 mt-20 w-full"> |
| 105 | + <h3 className="mb-4 text-[28px] font-medium text-hyperjump-black md:text-4xl"> |
| 106 | + {servicesPartnersHeading(lang)} |
| 107 | + </h3> |
| 108 | + <p className="mx-auto mb-8 w-full max-w-3xl text-center text-base text-hyperjump-gray md:text-lg"> |
| 109 | + {servicesPartnersDesc(lang)} |
| 110 | + </p> |
| 111 | + |
| 112 | + <div className="flex flex-wrap items-center justify-center gap-8"> |
| 113 | + {[ |
| 114 | + { |
| 115 | + imageUrl: "/images/clients/services/my-republic.svg", |
| 116 | + name: "My Republic" |
| 117 | + }, |
| 118 | + { imageUrl: "/images/clients/services/btn.svg", name: "BTN" }, |
| 119 | + { imageUrl: "/images/clients/services/aruna.svg", name: "Aruna" } |
| 120 | + ].map(({ imageUrl, name }) => ( |
| 121 | + <Image |
| 122 | + key={name} |
| 123 | + src={imageUrl} |
| 124 | + alt={name} |
| 125 | + height={36} |
| 126 | + width={120} |
| 127 | + className="h-6 w-auto object-contain sm:h-7" |
| 128 | + priority |
| 129 | + /> |
| 130 | + ))} |
| 131 | + </div> |
| 132 | + </section> |
| 133 | + |
| 134 | + <section className="relative mt-10 w-full max-w-7xl overflow-hidden rounded-lg"> |
| 135 | + <div className="absolute inset-0 z-0"> |
| 136 | + <Image |
| 137 | + src="/images/swatch.svg" |
| 138 | + alt="CTA Background" |
| 139 | + width={1440} |
| 140 | + height={308} |
| 141 | + className="pointer-events-none h-full select-none object-cover" |
| 142 | + style={{ |
| 143 | + background: |
| 144 | + "linear-gradient(134.7deg, #5954DA 3.43%, #0B0B0D 48.93%)" |
| 145 | + }} |
| 146 | + /> |
| 147 | + </div> |
| 148 | + <div className="relative flex flex-col items-center justify-center px-6 py-11 text-center"> |
| 149 | + <h4 className="mb-3 text-3xl font-medium text-white md:text-4xl"> |
| 150 | + {servicesCtaHeading(lang)} |
| 151 | + </h4> |
| 152 | + <p className="mb-8 text-lg text-white">{servicesCtaDesc(lang)}</p> |
| 153 | + |
| 154 | + <Button |
| 155 | + asChild |
| 156 | + size="lg" |
| 157 | + className="bg-hyperjump-blue text-base font-semibold text-white hover:bg-hyperjump-blue/90"> |
| 158 | + <Link href="#" target="_blank" rel="noreferrer noopener"> |
| 159 | + {servicesCtaLabel(lang)} |
| 160 | + </Link> |
| 161 | + </Button> |
| 162 | + </div> |
| 163 | + </section> |
| 164 | + </main> |
| 165 | + ); |
| 166 | +} |
0 commit comments