2026-02-10 16:22:14 +05:00
import React from 'react' ;
import PageHeader from '../components/PageHeader' ;
import { SERVICES } from '../constants' ;
import { ArrowRight } from 'lucide-react' ;
2026-03-13 19:41:07 +05:00
import { Link , useLocation } from 'react-router-dom' ;
2026-02-10 16:22:14 +05:00
const ServicesPage : React.FC = ( ) = > {
2026-03-13 19:41:07 +05:00
const location = useLocation ( ) ;
const isEnglish = location . pathname . startsWith ( '/en' ) ;
const prefix = isEnglish ? '/en' : '' ;
const pageTitle = isEnglish ? 'Our services' : 'Наши услуги' ;
const pageDescription = isEnglish
? 'A full range of engineering and construction services – from surveys to turnkey delivery.'
: 'Полный спектр инженерных и строительных работ любой сложности. От изысканий до сдачи объекта под ключ.' ;
// Отфильтровываем технические задания и строительство из основных услуг
const mainServices = SERVICES . filter (
service = > service . title !== 'Технические задания' && service . title !== 'Строительство'
) ;
2026-02-10 16:22:14 +05:00
const technicalTasksService = SERVICES . find ( service = > service . title === 'Технические задания' ) ;
return (
< div className = "bg-gray-50 pb-20" >
< PageHeader
2026-03-13 19:41:07 +05:00
title = { pageTitle }
description = { pageDescription }
2026-02-10 16:22:14 +05:00
image = "/media/images/headers/header-services.png"
/ >
< div className = "container mx-auto px-6 py-20" >
{ /* Блок с техническими заданиями */ }
{ technicalTasksService && (
< div className = "mb-16 max-w-4xl mx-auto" >
< div className = "bg-white rounded-2xl shadow-lg overflow-hidden border-2 border-gray-200" >
< div className = "p-8 md:p-10" >
< div className = "flex items-start gap-6" >
< div className = "flex-shrink-0" >
< div className = "w-16 h-16 bg-brand-orange/10 rounded-xl flex items-center justify-center" >
< svg className = "w-8 h-8 text-brand-orange" fill = "none" stroke = "currentColor" viewBox = "0 0 24 24" >
< path strokeLinecap = "round" strokeLinejoin = "round" strokeWidth = { 2 } d = "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" / >
< / svg >
< / div >
< / div >
< div className = "flex-1" >
< h3 className = "text-2xl font-bold text-gray-900 mb-3" >
2026-03-13 19:41:07 +05:00
{ isEnglish ? 'Technical assignment templates' : 'Образцы технических заданий' }
2026-02-10 16:22:14 +05:00
< / h3 >
< p className = "text-gray-600 leading-relaxed mb-6" >
2026-03-13 19:41:07 +05:00
{ isEnglish
? 'Ready-made templates and examples of technical assignments for different types of engineering work. The documents are available for download and can be adapted to your project.'
: 'Готовые шаблоны и примеры технических заданий для различных видов инженерных работ. Документы доступны для скачивания и могут быть адаптированы под ваш проект.' }
2026-02-10 16:22:14 +05:00
< / p >
< Link
2026-03-13 19:41:07 +05:00
to = { ` ${ prefix } /services/technical-tasks ` }
2026-02-10 16:22:14 +05:00
className = "inline-flex items-center gap-2 px-6 py-3 bg-brand-orange text-white font-bold rounded-lg hover:bg-orange-600 transition-colors"
>
2026-03-13 19:41:07 +05:00
{ isEnglish ? 'View templates' : 'Посмотреть образцы' } < ArrowRight size = { 20 } / >
2026-02-10 16:22:14 +05:00
< / Link >
< / div >
< / div >
< / div >
< / div >
< / div >
) }
< div className = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8" >
2026-03-13 19:41:07 +05:00
{ mainServices . map ( ( service , idx ) = > {
const title =
isEnglish
? ( ( ) = > {
switch ( service . title ) {
case 'Инженерные изыскания' :
return 'Engineering surveys' ;
case 'Проектирование' :
return 'Design' ;
case 'Обследование грунтов' :
return 'Soil investigation' ;
case 'Обследование здания' :
return 'Building survey' ;
case 'Землестроительный и Кадастровые работы' :
return 'Land management and cadastral works' ;
default :
return service . title ;
}
} ) ( )
: service . title ;
const description =
isEnglish
? ( ( ) = > {
switch ( service . title ) {
case 'Инженерные изыскания' :
return 'Comprehensive investigation of construction site conditions: engineering-geodetic, geological, hydrometeorological and environmental surveys.' ;
case 'Проектирование' :
return 'Development of design and working documentation for civil and industrial facilities, including architectural and structural solutions.' ;
case 'Обследование грунтов' :
return 'Laboratory and field testing of soils. Determination of physical and mechanical properties for designing foundations and subgrades.' ;
case 'Обследование здания' :
return 'Technical inspection of buildings and structures. Assessment of load-bearing structures, detection of defects and development of strengthening recommendations.' ;
case 'Землестроительный и Кадастровые работы' :
return 'Land surveying, preparation of technical plans and inspection reports, registration of real estate in the state cadastre.' ;
default :
return service . description ;
}
} ) ( )
: service . description ;
return (
2026-02-10 16:22:14 +05:00
< div
key = { idx }
className = "bg-white rounded-2xl overflow-hidden shadow-lg hover:shadow-xl transition-shadow duration-300 flex flex-col h-full"
>
< div className = "h-64 overflow-hidden" >
< img
src = { service . image }
2026-03-13 19:41:07 +05:00
alt = { title }
2026-02-10 16:22:14 +05:00
className = "w-full h-full object-cover transition-transform duration-700 hover:scale-110"
/ >
< / div >
< div className = "p-8 flex-grow flex flex-col" >
2026-03-13 19:41:07 +05:00
< h3 className = "text-2xl font-bold text-gray-900 mb-4" > { title } < / h3 >
2026-02-10 16:22:14 +05:00
< p className = "text-gray-600 text-sm mb-6 flex-grow leading-relaxed" >
2026-03-13 19:41:07 +05:00
{ description }
2026-02-10 16:22:14 +05:00
< / p >
< div className = "flex flex-col gap-3 mt-auto" >
{ service . title === 'Инженерные изыскания' && (
< Link
2026-03-13 19:41:07 +05:00
to = { ` ${ prefix } /services/surveying ` }
2026-02-10 16:22:14 +05:00
className = "flex items-center justify-center gap-2 bg-brand-orange text-white font-bold px-6 py-3 rounded-lg hover:bg-orange-600 transition-colors"
>
2026-03-13 19:41:07 +05:00
{ isEnglish ? 'Learn more' : 'Подробнее' } < ArrowRight size = { 18 } / >
2026-02-10 16:22:14 +05:00
< / Link >
) }
{ service . title === 'Проектирование' && (
< Link
2026-03-13 19:41:07 +05:00
to = { ` ${ prefix } /services/design ` }
2026-02-10 16:22:14 +05:00
className = "flex items-center justify-center gap-2 bg-brand-orange text-white font-bold px-6 py-3 rounded-lg hover:bg-orange-600 transition-colors"
>
2026-03-13 19:41:07 +05:00
{ isEnglish ? 'Learn more' : 'Подробнее' } < ArrowRight size = { 18 } / >
2026-02-10 16:22:14 +05:00
< / Link >
) }
{ service . title === 'Обследование грунтов' && (
< Link
2026-03-13 19:41:07 +05:00
to = { ` ${ prefix } /services/soil-survey ` }
2026-02-10 16:22:14 +05:00
className = "flex items-center justify-center gap-2 bg-brand-orange text-white font-bold px-6 py-3 rounded-lg hover:bg-orange-600 transition-colors"
>
2026-03-13 19:41:07 +05:00
{ isEnglish ? 'Learn more' : 'Подробнее' } < ArrowRight size = { 18 } / >
2026-02-10 16:22:14 +05:00
< / Link >
) }
{ service . title === 'Обследование здания' && (
< Link
2026-03-13 19:41:07 +05:00
to = { ` ${ prefix } /services/building-survey ` }
2026-02-10 16:22:14 +05:00
className = "flex items-center justify-center gap-2 bg-brand-orange text-white font-bold px-6 py-3 rounded-lg hover:bg-orange-600 transition-colors"
>
2026-03-13 19:41:07 +05:00
{ isEnglish ? 'Learn more' : 'Подробнее' } < ArrowRight size = { 18 } / >
2026-02-10 16:22:14 +05:00
< / Link >
) }
{ service . title === 'Землестроительный и Кадастровые работы' && (
< Link
2026-03-13 19:41:07 +05:00
to = { ` ${ prefix } /services/land-survey ` }
2026-02-10 16:22:14 +05:00
className = "flex items-center justify-center gap-2 bg-brand-orange text-white font-bold px-6 py-3 rounded-lg hover:bg-orange-600 transition-colors"
>
2026-03-13 19:41:07 +05:00
{ isEnglish ? 'Learn more' : 'Подробнее' } < ArrowRight size = { 18 } / >
2026-02-10 16:22:14 +05:00
< / Link >
) }
< Link
2026-03-13 19:41:07 +05:00
to = { ` ${ prefix } /contacts ` }
className = { ` flex items-center ${ ( service . title === 'Инженерные изыскания' || service . title === 'Проектирование' || service . title === 'Обследование грунтов' || service . title === 'Обследование здания' || service . title === 'Землестроительный и Кадастровые работы' ) ? 'justify-center' : 'gap-2' } text-brand-orange font-medium hover:gap-4 transition-all ` }
2026-02-10 16:22:14 +05:00
>
2026-03-13 19:41:07 +05:00
{ isEnglish ? 'Request this service' : 'Заказать услугу' } < ArrowRight size = { 16 } / >
2026-02-10 16:22:14 +05:00
< / Link >
< / div >
< / div >
< / div >
2026-03-13 19:41:07 +05:00
) } ) }
2026-02-10 16:22:14 +05:00
< / div >
< / div >
< / div >
) ;
} ;
export default ServicesPage ;