feat: simplify navigation and add RU/EN home and contacts

- simplify main navigation and hide extra menu items
- make home page more sales-focused with updated hero, benefits and fleet teaser
- add RU/EN handling for home and contacts, including SEO defaults
- integrate basic Strapi homepage API client (no breaking changes)
- update contacts page with messenger buttons and dynamic footer year

Made-with: Cursor
This commit is contained in:
2026-03-13 19:41:07 +05:00
parent 575db0ac53
commit fde9609f9a
26 changed files with 1753 additions and 735 deletions

View File

@@ -1,8 +1,13 @@
import React from 'react';
import { Send, MapPin, Mail, Phone } from 'lucide-react';
import { Link } from 'react-router-dom';
import { Link, useLocation } from 'react-router-dom';
const Footer: React.FC = () => {
const currentYear = new Date().getFullYear();
const location = useLocation();
const isEnglish = location.pathname.startsWith('/en');
const prefix = isEnglish ? '/en' : '';
return (
<footer className="bg-[#1a0f0f] text-white py-20 rounded-t-[3rem] mt-auto" id="contacts">
<div className="container mx-auto px-6">
@@ -10,9 +15,13 @@ const Footer: React.FC = () => {
{/* Contacts Section with Accent */}
<div className="lg:w-1/2">
<h2 className="text-4xl font-bold mb-8 text-brand-orange">Свяжитесь с нами</h2>
<h2 className="text-4xl font-bold mb-8 text-brand-orange">
{isEnglish ? 'Get in touch with us' : 'Свяжитесь с нами'}
</h2>
<p className="text-gray-300 text-lg mb-10 max-w-md">
Готовы ответить на ваши вопросы и предложить лучшие решения для вашего проекта
{isEnglish
? 'We are ready to answer your questions and offer the best solutions for your project.'
: 'Готовы ответить на ваши вопросы и предложить лучшие решения для вашего проекта'}
</p>
<div className="space-y-6 max-w-md">
@@ -22,9 +31,13 @@ const Footer: React.FC = () => {
>
<Phone size={28} className="text-brand-orange group-hover:text-white flex-shrink-0" />
<div>
<p className="text-xs text-gray-400 mb-1 group-hover:text-white/80">Телефон</p>
<p className="text-xs text-gray-400 mb-1 group-hover:text-white/80">
{isEnglish ? 'Phone' : 'Телефон'}
</p>
<p className="text-xl font-bold text-white">8 (347) 292 73 70</p>
<p className="text-sm text-gray-400 mt-1 group-hover:text-white/70">Звоните с 9:00 до 18:00</p>
<p className="text-sm text-gray-400 mt-1 group-hover:text-white/70">
{isEnglish ? 'Call us from 9:00 to 18:00' : 'Звоните с 9:00 до 18:00'}
</p>
</div>
</a>
@@ -36,59 +49,135 @@ const Footer: React.FC = () => {
<div>
<p className="text-xs text-gray-400 mb-1 group-hover:text-white/80">Email</p>
<p className="text-xl font-bold text-white">gw@geowektor.ru</p>
<p className="text-sm text-gray-400 mt-1 group-hover:text-white/70">Ответим в течение часа</p>
<p className="text-sm text-gray-400 mt-1 group-hover:text-white/70">
{isEnglish ? 'We typically respond within one hour' : 'Ответим в течение часа'}
</p>
</div>
</a>
<div className="flex items-start gap-4 p-6 bg-brand-orange/10 border border-brand-orange/30 rounded-2xl">
<MapPin size={28} className="text-brand-orange flex-shrink-0" />
<div>
<p className="text-xs text-gray-400 mb-1">Адрес</p>
<p className="text-lg font-bold text-white">450001, РБ, г. Уфа</p>
<p className="text-white/90">ул. Комсомольская 19/1</p>
<p className="text-xs text-gray-400 mb-1">
{isEnglish ? 'Address' : 'Адрес'}
</p>
<p className="text-lg font-bold text-white">
{isEnglish ? '450001, RB, Ufa' : '450001, РБ, г. Уфа'}
</p>
<p className="text-white/90">
{isEnglish ? '19/1 Komsomolskaya St.' : 'ул. Комсомольская 19/1'}
</p>
</div>
</div>
</div>
</div>
{/* Links & Social Section */}
<div className="lg:w-1/2 grid grid-cols-1 md:grid-cols-3 gap-8">
<div className="lg:w-1/2 grid grid-cols-1 md:grid-cols-3 gap-8">
{/* Основная навигация */}
<div>
<h4 className="font-bold mb-6 text-lg">Компания</h4>
<h4 className="font-bold mb-6 text-lg">
{isEnglish ? 'Company' : 'Компания'}
</h4>
<ul className="space-y-3 text-sm text-gray-400">
<li><Link to="/" className="hover:text-brand-orange transition-colors">Главная</Link></li>
<li><Link to="/about" className="hover:text-brand-orange transition-colors">О компании</Link></li>
<li><Link to="/projects" className="hover:text-brand-orange transition-colors">Проекты</Link></li>
<li><Link to="/fleet" className="hover:text-brand-orange transition-colors">Автопарк</Link></li>
<li><Link to="/certificates" className="hover:text-brand-orange transition-colors">Сертификаты</Link></li>
<li><Link to="/contacts" className="hover:text-brand-orange transition-colors">Контакты</Link></li>
<li>
<Link to={isEnglish ? '/en' : '/'} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Home' : 'Главная'}
</Link>
</li>
<li>
<Link to={`${prefix}/about`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'About' : 'О компании'}
</Link>
</li>
<li>
<Link to={`${prefix}/projects`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Projects' : 'Проекты'}
</Link>
</li>
<li>
<Link to={`${prefix}/fleet`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Fleet' : 'Автопарк'}
</Link>
</li>
<li>
<Link to={`${prefix}/certificates`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Certificates' : 'Сертификаты'}
</Link>
</li>
<li>
<Link to={`${prefix}/contacts`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Contacts' : 'Контакты'}
</Link>
</li>
</ul>
</div>
{/* Услуги */}
<div>
<h4 className="font-bold mb-6 text-lg">Услуги</h4>
<h4 className="font-bold mb-6 text-lg">
{isEnglish ? 'Services' : 'Услуги'}
</h4>
<ul className="space-y-3 text-sm text-gray-400">
<li><Link to="/services" className="hover:text-brand-orange transition-colors">Все услуги</Link></li>
<li><Link to="/services/surveying" className="hover:text-brand-orange transition-colors">Инженерные изыскания</Link></li>
<li><Link to="/services/design" className="hover:text-brand-orange transition-colors">Проектирование</Link></li>
<li><Link to="/services/construction" className="hover:text-brand-orange transition-colors">Строительство</Link></li>
<li><Link to="/services/soil-survey" className="hover:text-brand-orange transition-colors">Обследование грунтов</Link></li>
<li><Link to="/services/building-survey" className="hover:text-brand-orange transition-colors">Обследование зданий</Link></li>
<li><Link to="/services/land-survey" className="hover:text-brand-orange transition-colors">Кадастровые работы</Link></li>
<li>
<Link to={`${prefix}/services`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'All services' : 'Все услуги'}
</Link>
</li>
<li>
<Link to={`${prefix}/services/surveying`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Engineering surveys' : 'Инженерные изыскания'}
</Link>
</li>
<li>
<Link to={`${prefix}/services/design`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Design' : 'Проектирование'}
</Link>
</li>
<li>
<Link to={`${prefix}/services/construction`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Construction' : 'Строительство'}
</Link>
</li>
<li>
<Link to={`${prefix}/services/soil-survey`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Soil investigation' : 'Обследование грунтов'}
</Link>
</li>
<li>
<Link to={`${prefix}/services/building-survey`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Building survey' : 'Обследование зданий'}
</Link>
</li>
<li>
<Link to={`${prefix}/services/land-survey`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Cadastral works' : 'Кадастровые работы'}
</Link>
</li>
</ul>
</div>
{/* Лаборатории и соцсети */}
<div>
<h4 className="font-bold mb-6 text-lg">Лаборатории</h4>
<h4 className="font-bold mb-6 text-lg">
{isEnglish ? 'Laboratories' : 'Лаборатории'}
</h4>
<ul className="space-y-3 text-sm text-gray-400 mb-8">
<li><Link to="/laboratories/soil" className="hover:text-brand-orange transition-colors">Грунтовая лаборатория</Link></li>
<li><Link to="/laboratories/radiation" className="hover:text-brand-orange transition-colors">Радиационная лаборатория</Link></li>
<li>
<Link to={`${prefix}/laboratories/soil`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Soil testing laboratory' : 'Грунтовая лаборатория'}
</Link>
</li>
<li>
<Link to={`${prefix}/laboratories/radiation`} className="hover:text-brand-orange transition-colors">
{isEnglish ? 'Radiation laboratory' : 'Радиационная лаборатория'}
</Link>
</li>
</ul>
<h4 className="font-bold mb-4 text-lg">Мы в интернете</h4>
<h4 className="font-bold mb-4 text-lg">
{isEnglish ? 'Find us online' : 'Мы в интернете'}
</h4>
<div className="flex gap-4 mb-8">
<a
href="https://t.me/ooo_geo_wektor"
@@ -112,16 +201,16 @@ const Footer: React.FC = () => {
<div className="space-y-3 text-sm">
<Link
to="/privacy-policy"
to={`${prefix}/privacy-policy`}
className="text-gray-400 hover:text-brand-orange transition-colors block"
>
Политика конфиденциальности
{isEnglish ? 'Privacy policy' : 'Политика конфиденциальности'}
</Link>
</div>
<div className="mt-8 text-xs text-gray-600">
©2025 ООО «ГеоВектор».<br />
Все права защищены.
©{currentYear} ООО «ГеоВектор».<br />
{isEnglish ? 'All rights reserved.' : 'Все права защищены.'}
</div>
</div>
</div>