1- import Image from "next/image" ;
2- import Link from "next/link" ;
31import type { Metadata } from "next" ;
42import type { Organization , WebPage , WithContext } from "schema-dts" ;
53
97 AccordionItem ,
108 AccordionTrigger
119} from "@/components/ui/accordion" ;
12- import { Button } from "@/components/ui/button" ;
1310import { Card , CardContent , CardHeader } from "@/components/ui/card" ;
1411import GridItemsContainer , {
1512 GridItems ,
@@ -28,11 +25,12 @@ import {
2825 mainProjectDesc ,
2926 mainFaqHeading ,
3027 mainFaqDesc ,
31- mainViewMore ,
32- mainOpenInGoogleMaps ,
33- mainOurLocation
28+ mainViewMore
3429} from "@/locales/.generated/server" ;
3530import { getServices , getCaseStudies , getProject , getFaqs } from "./data" ;
31+ import { Location } from "./location" ;
32+ import { Button } from "@/components/ui/button" ;
33+ import Link from "next/link" ;
3634
3735const {
3836 hero : { heading, subheading } ,
@@ -180,65 +178,6 @@ function Faqs({ lang }: { lang: SupportedLanguage }) {
180178 ) ;
181179}
182180
183- function Location ( { lang } : { lang : SupportedLanguage } ) {
184- const { address, duns, email, imageUrl, mapsUrl, title } = location ;
185-
186- return (
187- < GridItemsContainer >
188- < GridItemsTitle title = { mainOurLocation ( lang ) } layout = "vertical" />
189- < div className = "mb-6 mt-8 grid w-full grid-cols-1 overflow-hidden rounded shadow-lg lg:grid-cols-4" >
190- < div className = "relative col-span-1 overflow-hidden p-6 text-white" >
191- < div className = "absolute inset-0 z-0" >
192- < Image
193- src = "/images/swatch.svg"
194- alt = "Location background"
195- width = { 1440 }
196- height = { 308 }
197- className = "pointer-events-none h-full select-none object-cover"
198- style = { {
199- background :
200- "linear-gradient(134.7deg, #5954DA 3.43%, #0B0B0D 48.93%)"
201- } }
202- />
203- </ div >
204- < div className = "relative z-20" >
205- < h2 className = "mb-4 text-lg font-bold" > { title } </ h2 >
206- < div className = "mb-2 text-sm leading-relaxed" >
207- { address . map ( ( line , index ) => (
208- < p key = { index } > { line } </ p >
209- ) ) }
210- </ div >
211- < p className = "mb-2 mt-4 text-sm" >
212- Email:{ " " }
213- < a
214- href = { `mailto:${ email } ` }
215- className = "transition-colors hover:text-hyperjump-blue" >
216- { email }
217- </ a >
218- </ p >
219- < p className = "mb-4 text-sm" > D& B D - U - N - S : { duns } </ p >
220- < Button asChild variant = "outline" className = "bg-transparent" >
221- < Link href = { mapsUrl } target = "_blank" rel = "noopener noreferrer" >
222- { mainOpenInGoogleMaps ( lang ) }
223- </ Link >
224- </ Button >
225- </ div >
226- </ div >
227-
228- < div className = "col-span-1 lg:col-span-3" >
229- < Image
230- src = { imageUrl }
231- alt = { title }
232- width = { 1072 }
233- height = { 500 }
234- className = "h-[300px] w-full object-cover object-right lg:h-[500px] lg:object-center"
235- />
236- </ div >
237- </ div >
238- </ GridItemsContainer >
239- ) ;
240- }
241-
242181function JsonLd ( ) {
243182 return (
244183 < >
0 commit comments