2026-02-10 16:22:14 +05:00
|
|
|
|
import React from 'react';
|
|
|
|
|
|
import { STEPS } from '../constants';
|
2026-03-13 19:41:07 +05:00
|
|
|
|
import { useLocation } from 'react-router-dom';
|
2026-02-10 16:22:14 +05:00
|
|
|
|
|
|
|
|
|
|
const Process: React.FC = () => {
|
2026-03-13 19:41:07 +05:00
|
|
|
|
const location = useLocation();
|
|
|
|
|
|
const isEnglish = location.pathname.startsWith('/en');
|
|
|
|
|
|
|
|
|
|
|
|
const steps = STEPS.map((step) => ({
|
|
|
|
|
|
...step,
|
|
|
|
|
|
description: isEnglish
|
|
|
|
|
|
? (() => {
|
|
|
|
|
|
switch (step.title) {
|
|
|
|
|
|
case 'Звонок':
|
|
|
|
|
|
return 'We get in touch with you, clarify all the details and agree on the price.';
|
|
|
|
|
|
case 'ТЗ':
|
|
|
|
|
|
return 'We prepare a technical assignment for our specialists.';
|
|
|
|
|
|
case 'Договор':
|
|
|
|
|
|
return 'We prepare all required documents and sign the contract.';
|
|
|
|
|
|
case 'Работа':
|
|
|
|
|
|
return 'We carry out on-site work and test collected samples.';
|
|
|
|
|
|
case 'Отчет':
|
|
|
|
|
|
return 'We prepare a technical report and hand over the full documentation package.';
|
|
|
|
|
|
case 'Финал':
|
|
|
|
|
|
return 'We present the report and provide recommendations.';
|
|
|
|
|
|
default:
|
|
|
|
|
|
return step.description;
|
|
|
|
|
|
}
|
|
|
|
|
|
})()
|
|
|
|
|
|
: step.description,
|
|
|
|
|
|
}));
|
|
|
|
|
|
|
2026-02-10 16:22:14 +05:00
|
|
|
|
return (
|
|
|
|
|
|
<div className="py-20 bg-brand-light">
|
|
|
|
|
|
<div className="container mx-auto px-6">
|
2026-03-13 19:41:07 +05:00
|
|
|
|
<h2 className="text-4xl font-bold text-gray-900 mb-16 text-center">
|
|
|
|
|
|
{isEnglish ? 'How we work' : 'Как мы работаем'}
|
|
|
|
|
|
</h2>
|
2026-02-10 16:22:14 +05:00
|
|
|
|
|
|
|
|
|
|
<div className="relative max-w-6xl mx-auto">
|
|
|
|
|
|
{/* Линия связи между шагами (только на больших экранах) */}
|
|
|
|
|
|
<div className="hidden lg:block absolute top-9 left-0 right-0 h-1 bg-gradient-to-r from-brand-orange via-brand-orange/50 to-brand-orange" style={{ zIndex: 0 }} />
|
|
|
|
|
|
|
|
|
|
|
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 relative" style={{ zIndex: 1 }}>
|
2026-03-13 19:41:07 +05:00
|
|
|
|
{steps.map((step, idx) => (
|
2026-02-10 16:22:14 +05:00
|
|
|
|
<div key={idx} className="relative">
|
|
|
|
|
|
{/* Номер шага */}
|
|
|
|
|
|
<div className="absolute -top-4 -left-4 w-10 h-10 bg-brand-orange text-white rounded-full flex items-center justify-center font-bold text-lg shadow-lg z-10 border-4 border-brand-light">
|
|
|
|
|
|
{idx + 1}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
{/* Карточка шага */}
|
|
|
|
|
|
<div className="bg-white rounded-2xl p-6 shadow-md hover:shadow-xl transition-all duration-300 hover:scale-105 h-full border-2 border-transparent hover:border-brand-orange">
|
|
|
|
|
|
<div className="w-14 h-14 rounded-full bg-brand-orange/20 flex items-center justify-center text-brand-orange mb-4">
|
|
|
|
|
|
<step.icon size={28} />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<p className="text-gray-700 leading-relaxed">
|
|
|
|
|
|
{step.description}
|
|
|
|
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
))}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
export default Process;
|