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,39 +1,92 @@
import React from 'react';
import PageHeader from '../components/PageHeader';
import { Phone, Mail, MapPin, Clock, Send } from 'lucide-react';
import { Phone, Mail, MapPin, Clock, Send, MessageCircle } from 'lucide-react';
import { useLocation } from 'react-router-dom';
const ContactsPage: React.FC = () => {
const location = useLocation();
const isEnglish = location.pathname.startsWith('/en');
const title = isEnglish ? 'Contacts' : 'Контакты';
const description = isEnglish
? 'We are always available and ready to answer any questions you may have.'
: 'Мы всегда на связи и готовы ответить на любые ваши вопросы.';
return (
<div className="bg-white pb-20">
<PageHeader
title="Контакты"
description="Мы всегда на связи и готовы ответить на любые ваши вопросы."
title={title}
description={description}
image="/media/images/headers/header-kontakri.png"
/>
>
{/* Кнопки мессенджеров сразу под надписью \"Мы всегда на связи\" в хедере */}
<div className="flex flex-wrap justify-center gap-4 mt-4">
{/* Скрытая кнопка MAX — оставлена в коде на будущее */}
{false && (
<a
href="https://wa.me/79273444557"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 px-6 py-3 rounded-xl bg-gradient-to-r from-[#5b2cff] to-[#8b5dff] text-white font-semibold hover:from-[#4b23d6] hover:to-[#7446e0] transition-colors shadow-lg"
>
<MessageCircle size={20} />
<span>MAX</span>
</a>
)}
<a
href="https://t.me/Edgar_MER"
target="_blank"
rel="noopener noreferrer"
className="inline-flex items-center gap-2 px-6 py-3 rounded-xl bg-[#229ED9] text-white font-semibold hover:bg-[#1b80b3] transition-colors shadow-lg"
>
<Send size={20} />
<span>Telegram</span>
</a>
</div>
</PageHeader>
<div className="container mx-auto px-6 py-20">
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8 mb-20">
<div className="bg-brand-light p-8 rounded-2xl">
<Phone className="text-brand-orange w-8 h-8 mb-4" />
<h3 className="font-bold text-lg mb-2">Телефон</h3>
<a href="tel:83472927370" className="text-gray-600 hover:text-brand-orange transition-colors">8 (347) 292 73 70</a>
<h3 className="font-bold text-lg mb-2">
{isEnglish ? 'Phone' : 'Телефон'}
</h3>
<a href="tel:83472927370" className="text-gray-600 hover:text-brand-orange transition-colors">
8 (347) 292 73 70
</a>
</div>
<div className="bg-brand-light p-8 rounded-2xl">
<Mail className="text-brand-orange w-8 h-8 mb-4" />
<h3 className="font-bold text-lg mb-2">Email</h3>
<a href="mailto:gw@geowektor.ru" className="text-gray-600 hover:text-brand-orange transition-colors">gw@geowektor.ru</a>
<a href="mailto:gw@geowektor.ru" className="text-gray-600 hover:text-brand-orange transition-colors">
gw@geowektor.ru
</a>
</div>
<div className="bg-brand-light p-8 rounded-2xl">
<MapPin className="text-brand-orange w-8 h-8 mb-4" />
<h3 className="font-bold text-lg mb-2">Офис</h3>
<p className="text-gray-600">450001, РБ, г. Уфа,</p>
<p className="text-gray-600">ул. Комсомольская 19/1</p>
<h3 className="font-bold text-lg mb-2">
{isEnglish ? 'Office' : 'Офис'}
</h3>
<p className="text-gray-600">
{isEnglish ? '450001, Republic of Bashkortostan, Ufa,' : '450001, РБ, г. Уфа,'}
</p>
<p className="text-gray-600">
{isEnglish ? '19/1 Komsomolskaya St.' : 'ул. Комсомольская 19/1'}
</p>
</div>
<div className="bg-brand-light p-8 rounded-2xl">
<Clock className="text-brand-orange w-8 h-8 mb-4" />
<h3 className="font-bold text-lg mb-2">Режим работы</h3>
<p className="text-gray-600">Пн-Пт: 09:00 - 18:00</p>
<p className="text-gray-600">Сб-Вс: Выходной</p>
<h3 className="font-bold text-lg mb-2">
{isEnglish ? 'Working hours' : 'Режим работы'}
</h3>
<p className="text-gray-600">
{isEnglish ? 'MonFri: 09:0018:00' : 'Пн-Пт: 09:00 - 18:00'}
</p>
<p className="text-gray-600">
{isEnglish ? 'SatSun: Closed' : 'Сб-Вс: Выходной'}
</p>
</div>
</div>
@@ -43,17 +96,31 @@ const ContactsPage: React.FC = () => {
<div>
<div className="flex items-center gap-3 mb-6">
<Send className="w-10 h-10 text-brand-orange" />
<h2 className="text-3xl font-bold text-brand-dark">Мы в Telegram</h2>
<h2 className="text-3xl font-bold text-brand-dark">
{isEnglish ? 'We are on Telegram' : 'Мы в Telegram'}
</h2>
</div>
<p className="text-gray-600 text-lg mb-6 leading-relaxed">
Подписывайтесь на наш Telegram-канал, чтобы быть в курсе новостей компании, актуальных проектов и специальных предложений.
{isEnglish
? 'Subscribe to our Telegram channel to stay up to date with company news, current projects and special offers.'
: 'Подписывайтесь на наш Telegram-канал, чтобы быть в курсе новостей компании, актуальных проектов и специальных предложений.'}
</p>
<div className="space-y-3">
<p className="text-gray-700">
📱 Отсканируйте QR-код камерой телефона
{isEnglish
? '📱 Scan the QR code with your phone camera'
: '📱 Отсканируйте QR-код камерой телефона'}
</p>
<p className="text-gray-700">
💬 Или перейдите по ссылке: <a href="https://t.me/ooo_geo_wektor" target="_blank" rel="noopener noreferrer" className="text-brand-orange hover:underline font-semibold">@ooo_geo_wektor</a>
{isEnglish ? '💬 Or follow the link: ' : '💬 Или перейдите по ссылке: '}
<a
href="https://t.me/ooo_geo_wektor"
target="_blank"
rel="noopener noreferrer"
className="text-brand-orange hover:underline font-semibold"
>
@ooo_geo_wektor
</a>
</p>
</div>
</div>
@@ -66,7 +133,7 @@ const ContactsPage: React.FC = () => {
className="w-64 h-64 object-contain"
/>
<p className="text-center mt-4 text-sm text-gray-600 font-medium">
Наведите камеру на QR-код
{isEnglish ? 'Point your camera at the QR code' : 'Наведите камеру на QR-код'}
</p>
</div>
</div>