Мелкие правки кода
This commit is contained in:
parent
28f41cf346
commit
014439d565
2 changed files with 183 additions and 154 deletions
|
|
@ -12,171 +12,191 @@ export interface Case {
|
||||||
featured?: boolean;
|
featured?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type CaseCategory =
|
export type CaseCategory =
|
||||||
| 'insurance'
|
| "insurance"
|
||||||
| 'rights'
|
| "rights"
|
||||||
| 'accident'
|
| "accident"
|
||||||
| 'court'
|
| "court"
|
||||||
| 'consultation';
|
| "consultation";
|
||||||
|
|
||||||
export const categories = [
|
export const categories = [
|
||||||
{
|
{
|
||||||
id: 'all',
|
id: "all",
|
||||||
label: 'Все кейсы',
|
label: "Все кейсы",
|
||||||
icon: '📋'
|
icon: "📋",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'insurance',
|
id: "insurance",
|
||||||
label: 'Споры со страховыми',
|
label: "Споры со страховыми",
|
||||||
icon: '🛡️'
|
icon: "🛡️",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'rights',
|
id: "rights",
|
||||||
label: 'Возврат прав',
|
label: "Возврат прав",
|
||||||
icon: '🚗'
|
icon: "🚗",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'accident',
|
id: "accident",
|
||||||
label: 'ДТП и возмещение',
|
label: "ДТП и возмещение",
|
||||||
icon: '💥'
|
icon: "💥",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'court',
|
id: "court",
|
||||||
label: 'Судебные дела',
|
label: "Судебные дела",
|
||||||
icon: '⚖️'
|
icon: "⚖️",
|
||||||
},
|
},
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
export const casesData: Case[] = [
|
export const casesData: Case[] = [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: 'Взыскание 450 000 ₽ со страховой компании',
|
title: "Взыскание 450 000 ₽ со страховой компании",
|
||||||
category: 'insurance',
|
category: "insurance",
|
||||||
description: 'Клиент обратился после ДТП — страховая выплатила только 50 000 ₽ вместо положенных 500 000 ₽',
|
description:
|
||||||
result: 'Выплачено 500 000 ₽ + неустойка 50 000 ₽',
|
"Клиент обратился после ДТП — страховая выплатила только 50 000 ₽ вместо положенных 500 000 ₽",
|
||||||
clientStory: 'Попал в ДТП по вине другого водителя. Страховая насчитала смешную сумму. Ребята из Автоюриста 086 сделали независимую экспертизу и выиграли суд.',
|
result: "Выплачено 500 000 ₽ + неустойка 50 000 ₽",
|
||||||
amount: '500 000 ₽',
|
clientStory:
|
||||||
duration: '3 месяца',
|
"Попал в ДТП по вине другого водителя. Страховая насчитала смешную сумму. Ребята из Автоюриста 086 сделали независимую экспертизу и выиграли суд.",
|
||||||
image: '/images/cases/case-insurance-1.jpg',
|
amount: "500 000 ₽",
|
||||||
tags: ['ОСАГО', 'Независимая экспертиза', 'Суд'],
|
duration: "3 месяца",
|
||||||
|
image: "/images/cases/case-insurance-1.jpg",
|
||||||
|
tags: ["ОСАГО", "Независимая экспертиза", "Суд"],
|
||||||
featured: true,
|
featured: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 2,
|
id: 2,
|
||||||
title: 'Возврат водительских прав после лишения',
|
title: "Возврат водительских прав после лишения",
|
||||||
category: 'rights',
|
category: "rights",
|
||||||
description: 'Клиент был лишён прав на 1,5 года за отказ от медосвидетельствования. Нашли procedural violations.',
|
description:
|
||||||
result: 'Права возвращены через 4 месяца',
|
"Клиент был лишён прав на 1,5 года за отказ от медосвидетельствования. Нашли процедурные нарушения.",
|
||||||
clientStory: 'Остановили ночью, сказали пройти освидетельствование. Я попросил показать документы врача — отказали. Лишили прав. Юристы нашли нарушения в процедуре.',
|
result: "Права возвращены через 4 месяца",
|
||||||
amount: 'Сохранены права',
|
clientStory:
|
||||||
duration: '4 месяца',
|
"Остановили ночью, сказали пройти освидетельствование. Я попросил показать документы врача — отказали. Лишили прав. Юристы нашли нарушения в процедуре.",
|
||||||
image: '/images/cases/case-rights-1.jpg',
|
amount: "Сохранены права",
|
||||||
tags: ['Лишение прав', 'Медосвидетельствование', 'Апелляция'],
|
duration: "4 месяца",
|
||||||
|
image: "/images/cases/case-rights-1.jpg",
|
||||||
|
tags: ["Лишение прав", "Медосвидетельствование", "Апелляция"],
|
||||||
featured: true,
|
featured: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 3,
|
id: 3,
|
||||||
title: 'Оспаривание вины в ДТП на перекрёстке',
|
title: "Оспаривание вины в ДТП на перекрёстке",
|
||||||
category: 'accident',
|
category: "accident",
|
||||||
description: 'Сложное ДТП на регулируемом перекрёстке. ГИБДД признала виновным нашего клиента.',
|
description:
|
||||||
result: 'Виность пересмотрена, выплата 320 000 ₽',
|
"Сложное ДТП на регулируемом перекрёстке. ГИБДД признала виновным нашего клиента.",
|
||||||
clientStory: 'Ехал на зелёный, а мне врезались сбоку. Инспектор составил протокол против меня. Адвокаты собрали видеозаписи и доказали мою невиновность.',
|
result: "Виность пересмотрена, выплата 320 000 ₽",
|
||||||
amount: '320 000 ₽',
|
clientStory:
|
||||||
duration: '5 месяцев',
|
"Ехал на зелёный, а мне врезались сбоку. Инспектор составил протокол против меня. Адвокаты собрали видеозаписи и доказали мою невиновность.",
|
||||||
image: '/images/cases/case-accident-1.jpg',
|
amount: "320 000 ₽",
|
||||||
tags: ['ДТП', 'Видеозапись', 'Перекрёсток'],
|
duration: "5 месяцев",
|
||||||
|
image: "/images/cases/case-accident-1.jpg",
|
||||||
|
tags: ["ДТП", "Видеозапись", "Перекрёсток"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 4,
|
id: 4,
|
||||||
title: 'Защита от необоснованного штрафа с камеры',
|
title: "Защита от необоснованного штрафа с камеры",
|
||||||
category: 'court',
|
category: "court",
|
||||||
description: 'Клиент получил штраф 5000 ₽ с камеры фотовидеофиксации за нарушение, которого не совершал.',
|
description:
|
||||||
result: 'Штраф отменён полностью',
|
"Клиент получил штраф 5000 ₽ с камеры фотовидеофиксации за нарушение, которого не совершал.",
|
||||||
clientStory: 'Пришел штраф за проезд на красный. Но я там не был! Оказалось, камера ошиблась. Юристы помогли оспорить.',
|
result: "Штраф отменён полностью",
|
||||||
amount: 'Экономия 5 000 ₽',
|
clientStory:
|
||||||
duration: '1 месяц',
|
"Пришел штраф за проезд на красный. Но я там не был! Оказалось, камера ошиблась. Юристы помогли оспорить.",
|
||||||
image: '/images/cases/case-court-1.jpg',
|
amount: "Экономия 5 000 ₽",
|
||||||
tags: ['Штрафы', 'Камеры', 'Обжалование'],
|
duration: "1 месяц",
|
||||||
|
image: "/images/cases/case-court-1.jpg",
|
||||||
|
tags: ["Штрафы", "Камеры", "Обжалование"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 5,
|
id: 5,
|
||||||
title: 'Возмещение ущерба от града по КАСКО',
|
title: "Возмещение ущерба от града по КАСКО",
|
||||||
category: 'insurance',
|
category: "insurance",
|
||||||
description: 'После сильного града автомобиль получил серьёзные повреждения. Страховая отказала в выплате.',
|
description:
|
||||||
result: 'Выплачено 680 000 ₽ по КАСКО',
|
"После сильного града автомобиль получил серьёзные повреждения. Страховая отказала в выплате.",
|
||||||
clientStory: 'Градом побило стёкла и крышу. Страховая сказала, что это не страховой случай. Обратился сюда — выплатили всё до копейки.',
|
result: "Выплачено 680 000 ₽ по КАСКО",
|
||||||
amount: '680 000 ₽',
|
clientStory:
|
||||||
duration: '2 месяца',
|
"Градом побило стёкла и крышу. Страховая сказала, что это не страховой случай. Обратился сюда — выплатили всё до копейки.",
|
||||||
image: '/images/cases/case-insurance-2.jpg',
|
amount: "680 000 ₽",
|
||||||
tags: ['КАСКО', 'Град', 'Отказ страховой'],
|
duration: "2 месяца",
|
||||||
|
image: "/images/cases/case-insurance-2.jpg",
|
||||||
|
tags: ["КАСКО", "Град", "Отказ страховой"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 6,
|
id: 6,
|
||||||
title: 'Возврат прав после лишения за алкоголь',
|
title: "Возврат прав после лишения за алкоголь",
|
||||||
category: 'rights',
|
category: "rights",
|
||||||
description: 'Клиента лишили прав на 2 года за управление в состоянии опьянения. Нашли ошибки в протоколе.',
|
description:
|
||||||
result: 'Дело прекращено, права возвращены',
|
"Клиента лишили прав на 2 года за управление в состоянии опьянения. Нашли ошибки в протоколе.",
|
||||||
clientStory: 'Остановили, заподозрили опьянение. Составили протокол с ошибками. Благодаря юристам удалось доказать невиновность.',
|
result: "Дело прекращено, права возвращены",
|
||||||
amount: 'Сохранены права',
|
clientStory:
|
||||||
duration: '6 месяцев',
|
"Остановили, заподозрили опьянение. Составили протокол с ошибками. Благодаря юристам удалось доказать невиновность.",
|
||||||
image: '/images/cases/case-rights-2.jpg',
|
amount: "Сохранены права",
|
||||||
tags: ['Лишение прав', 'Алкоголь', 'Протокол'],
|
duration: "6 месяцев",
|
||||||
|
image: "/images/cases/case-rights-2.jpg",
|
||||||
|
tags: ["Лишение прав", "Алкоголь", "Протокол"],
|
||||||
featured: true,
|
featured: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 7,
|
id: 7,
|
||||||
title: 'Спор о виновности при столкновении на парковке',
|
title: "Спор о виновности при столкновении на парковке",
|
||||||
category: 'accident',
|
category: "accident",
|
||||||
description: 'На подземной парковке произошло столкновение. Владелец соседнего авто обвинил нашего клиента.',
|
description:
|
||||||
result: 'Доказана невиновность клиента',
|
"На подземной парковке произошло столкновение. Владелец соседнего авто обвинил нашего клиента.",
|
||||||
clientStory: 'Парковался, задел чужую машину. Но оказалось, что тот автомобиль стоял в неположенном месте. Юристы разобрались.',
|
result: "Доказана невиновность клиента",
|
||||||
amount: '0 ₽ (виность не доказана)',
|
clientStory:
|
||||||
duration: '2 месяца',
|
"Парковался, задел чужую машину. Но оказалось, что тот автомобиль стоял в неположенном месте. Юристы разобрались.",
|
||||||
image: '/images/cases/case-accident-2.jpg',
|
amount: "0 ₽ (виность не доказана)",
|
||||||
tags: ['Парковка', 'Столкновение', 'Защита'],
|
duration: "2 месяца",
|
||||||
|
image: "/images/cases/case-accident-2.jpg",
|
||||||
|
tags: ["Парковка", "Столкновение", "Защита"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 8,
|
id: 8,
|
||||||
title: 'Консультация по покупке автомобиля с пробегом',
|
title: "Консультация по покупке автомобиля с пробегом",
|
||||||
category: 'consultation',
|
category: "consultation",
|
||||||
description: 'Клиент хотел купить б/у авто, но боялся нарваться на проблемы с документами или скрытыми дефектами.',
|
description:
|
||||||
result: 'Безопасная покупка автомобиля',
|
"Клиент хотел купить б/у авто, но боялся нарваться на проблемы с документами или скрытыми дефектами.",
|
||||||
clientStory: 'Хотел купить машину с рук. Юристы проверили все документы, историю, залоги. Всё оказалось чисто — купил без проблем.',
|
result: "Безопасная покупка автомобиля",
|
||||||
amount: 'Предотвращены риски',
|
clientStory:
|
||||||
duration: '1 неделя',
|
"Хотел купить машину с рук. Юристы проверили все документы, историю, залоги. Всё оказалось чисто — купил без проблем.",
|
||||||
image: '/images/cases/case-consultation-1.jpg',
|
amount: "Предотвращены риски",
|
||||||
tags: ['Покупка авто', 'Проверка документов', 'Консультация'],
|
duration: "1 неделя",
|
||||||
|
image: "/images/cases/case-consultation-1.jpg",
|
||||||
|
tags: ["Покупка авто", "Проверка документов", "Консультация"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 9,
|
id: 9,
|
||||||
title: 'Судебный иск к автосалону за скрытые дефекты',
|
title: "Судебный иск к автосалону за скрытые дефекты",
|
||||||
category: 'court',
|
category: "court",
|
||||||
description: 'Клиент купил автомобиль в салоне, но обнаружил скрытые дефекты, о которых не предупредили.',
|
description:
|
||||||
result: 'Возврат 1 200 000 ₽ за автомобиль',
|
"Клиент купил автомобиль в салоне, но обнаружил скрытые дефекты, о которых не предупредили.",
|
||||||
clientStory: 'Купил машину в салоне. Через месяц посыпались проблемы. Оказалось, defects были скрыты. Выиграли суд и вернули деньги.',
|
result: "Возврат 1 200 000 ₽ за автомобиль",
|
||||||
amount: '1 200 000 ₽',
|
clientStory:
|
||||||
duration: '7 месяцев',
|
"Купил машину в салоне. Через месяц посыпались проблемы. Оказалось, дефекты были скрыты. Выиграли суд и вернули деньги.",
|
||||||
image: '/images/cases/case-court-2.jpg',
|
amount: "1 200 000 ₽",
|
||||||
tags: ['Автосалон', 'Скрытые дефекты', 'Возврат денег'],
|
duration: "7 месяцев",
|
||||||
|
image: "/images/cases/case-court-2.jpg",
|
||||||
|
tags: ["Автосалон", "Скрытые дефекты", "Возврат денег"],
|
||||||
featured: true,
|
featured: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 10,
|
id: 10,
|
||||||
title: 'Компенсация морального вреда после ДТП',
|
title: "Компенсация морального вреда после ДТП",
|
||||||
category: 'accident',
|
category: "accident",
|
||||||
description: 'После серьёзного ДТП клиент получил травмы и моральный вред. Нужно было взыскать компенсацию.',
|
description:
|
||||||
result: 'Компенсация 250 000 ₽ морального вреда',
|
"После серьёзного ДТП клиент получил травмы и моральный вред. Нужно было взыскать компенсацию.",
|
||||||
clientStory: 'Попал в аварию, получил травмы. Страховая покрыла только лечение. Юристы помогли получить компенсацию за моральный вред.',
|
result: "Компенсация 250 000 ₽ морального вреда",
|
||||||
amount: '250 000 ₽',
|
clientStory:
|
||||||
duration: '4 месяца',
|
"Попал в аварию, получил травмы. Страховая покрыла только лечение. Юристы помогли получить компенсацию за моральный вред.",
|
||||||
image: '/images/cases/case-accident-3.jpg',
|
amount: "250 000 ₽",
|
||||||
tags: ['Моральный вред', 'Травмы', 'Компенсация'],
|
duration: "4 месяца",
|
||||||
|
image: "/images/cases/case-accident-3.jpg",
|
||||||
|
tags: ["Моральный вред", "Травмы", "Компенсация"],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const statsData = {
|
export const statsData = {
|
||||||
totalCases: '500+',
|
totalCases: "500+",
|
||||||
successRate: '98%',
|
successRate: "98%",
|
||||||
totalRecovered: '50+ млн ₽',
|
totalRecovered: "50+ млн ₽",
|
||||||
averageDuration: '3-4 месяца',
|
averageDuration: "3-4 месяца",
|
||||||
} as const;
|
} as const;
|
||||||
|
|
|
||||||
|
|
@ -1,127 +1,136 @@
|
||||||
export interface Review {
|
export interface Review {
|
||||||
|
id: number;
|
||||||
name: string;
|
name: string;
|
||||||
car: string;
|
car: string;
|
||||||
text: string;
|
text: string;
|
||||||
rating: number;
|
rating: number;
|
||||||
initial: string;
|
avatar: { initial: string; color: string; };
|
||||||
color: string;
|
|
||||||
date: string;
|
date: string;
|
||||||
votesCount: number;
|
votesCount: number;
|
||||||
isHelpful: boolean;
|
isHelpful: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const reviewsData: Review[] = [
|
const reviewsRaw = [
|
||||||
{
|
{
|
||||||
|
id: 1,
|
||||||
name: "Алексей М.",
|
name: "Алексей М.",
|
||||||
car: "Toyota Camry",
|
car: "Toyota Camry",
|
||||||
text: "Помогли вернуть права после того, как инспектор незаконно составил протокол за встречку. Юрист нашел кучу ошибок в схеме ДТП. Огромное спасибо!",
|
text: "Помогли вернуть права после того, как инспектор незаконно составил протокол за встречку. Юрист нашел кучу ошибок в схеме ДТП. Огромное спасибо!",
|
||||||
rating: 5,
|
rating: 5,
|
||||||
initial: "А",
|
|
||||||
color: "bg-blue-100 text-blue-600",
|
|
||||||
date: "2024-03-15",
|
date: "2024-03-15",
|
||||||
votesCount: 24,
|
votesCount: 24,
|
||||||
isHelpful: true
|
isHelpful: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
id: 2,
|
||||||
name: "Екатерина П.",
|
name: "Екатерина П.",
|
||||||
car: "Hyundai Solaris",
|
car: "Hyundai Solaris",
|
||||||
text: "Страховая выплатила копейки по ОСАГО. Обратилась сюда, сделали независимую экспертизу и через суд взыскали еще 120 тысяч. Профессионалы!",
|
text: "Страховая выплатила копейки по ОСАГО. Обратилась сюда, сделали независимую экспертизу и через суд взыскали еще 120 тысяч. Профессионалы!",
|
||||||
rating: 5,
|
rating: 5,
|
||||||
initial: "Е",
|
|
||||||
color: "bg-teal-100 text-teal-600",
|
|
||||||
date: "2024-03-10",
|
date: "2024-03-10",
|
||||||
votesCount: 18,
|
votesCount: 18,
|
||||||
isHelpful: true
|
isHelpful: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
id: 3,
|
||||||
name: "Игорь С.",
|
name: "Игорь С.",
|
||||||
car: "Lexus RX",
|
car: "Lexus RX",
|
||||||
text: "Грамотно разобрали сложное ДТП на перекрестке. Доказали, что я не виноват, хотя ГИБДД изначально решило иначе. Лучшие в Сургуте.",
|
text: "Грамотно разобрали сложное ДТП на перекрестке. Доказали, что я не виноват, хотя ГИБДД изначально решило иначе. Лучшие в Сургуте.",
|
||||||
rating: 5,
|
rating: 5,
|
||||||
initial: "И",
|
|
||||||
color: "bg-orange-100 text-orange-600",
|
|
||||||
date: "2024-03-05",
|
date: "2024-03-05",
|
||||||
votesCount: 31,
|
votesCount: 31,
|
||||||
isHelpful: true
|
isHelpful: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
id: 4,
|
||||||
name: "Марина К.",
|
name: "Марина К.",
|
||||||
car: "Kia Rio",
|
car: "Kia Rio",
|
||||||
text: "Обратилась по вопросу возврата прав после лишения. Всё сделали быстро и профессионально. Через 2 месяца права уже были у меня. Рекомендую!",
|
text: "Обратилась по вопросу возврата прав после лишения. Всё сделали быстро и профессионально. Через 2 месяца права уже были у меня. Рекомендую!",
|
||||||
rating: 4,
|
rating: 4,
|
||||||
initial: "М",
|
|
||||||
color: "bg-pink-100 text-pink-600",
|
|
||||||
date: "2024-02-28",
|
date: "2024-02-28",
|
||||||
votesCount: 15,
|
votesCount: 15,
|
||||||
isHelpful: true
|
isHelpful: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
id: 5,
|
||||||
name: "Дмитрий В.",
|
name: "Дмитрий В.",
|
||||||
car: "Volkswagen Tiguan",
|
car: "Volkswagen Tiguan",
|
||||||
text: "Были проблемы со страховой после ДТП. Юристы помогли составить претензию, потом представляли интересы в суде. Выиграли дело полностью.",
|
text: "Были проблемы со страховой после ДТП. Юристы помогли составить претензию, потом представляли интересы в суде. Выиграли дело полностью.",
|
||||||
rating: 5,
|
rating: 5,
|
||||||
initial: "Д",
|
|
||||||
color: "bg-purple-100 text-purple-600",
|
|
||||||
date: "2024-02-20",
|
date: "2024-02-20",
|
||||||
votesCount: 22,
|
votesCount: 22,
|
||||||
isHelpful: true
|
isHelpful: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
id: 6,
|
||||||
name: "Ольга Н.",
|
name: "Ольга Н.",
|
||||||
car: "Mazda CX-5",
|
car: "Mazda CX-5",
|
||||||
text: "Купила б/у авто с проблемами, которые не были указаны при продаже. Юристы помогли вернуть деньги через суд. Очень благодарна за помощь!",
|
text: "Купила б/у авто с проблемами, которые не были указаны при продаже. Юристы помогли вернуть деньги через суд. Очень благодарна за помощь!",
|
||||||
rating: 5,
|
rating: 5,
|
||||||
initial: "О",
|
|
||||||
color: "bg-indigo-100 text-indigo-600",
|
|
||||||
date: "2024-02-15",
|
date: "2024-02-15",
|
||||||
votesCount: 27,
|
votesCount: 27,
|
||||||
isHelpful: true
|
isHelpful: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
id: 7,
|
||||||
name: "Сергей Т.",
|
name: "Сергей Т.",
|
||||||
car: "Nissan Qashqai",
|
car: "Nissan Qashqai",
|
||||||
text: "Спор со страховой длился полгода. Сам не мог ничего добиться. Обратился сюда - ребята за 2 месяца решили вопрос в мою пользу. Супер!",
|
text: "Спор со страховой длился полгода. Сам не мог ничего добиться. Обратился сюда - ребята за 2 месяца решили вопрос в мою пользу. Супер!",
|
||||||
rating: 4,
|
rating: 4,
|
||||||
initial: "С",
|
|
||||||
color: "bg-green-100 text-green-600",
|
|
||||||
date: "2024-02-08",
|
date: "2024-02-08",
|
||||||
votesCount: 19,
|
votesCount: 19,
|
||||||
isHelpful: true
|
isHelpful: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
id: 8,
|
||||||
name: "Анна Р.",
|
name: "Анна Р.",
|
||||||
car: "Skoda Octavia",
|
car: "Skoda Octavia",
|
||||||
text: "Помогли оспорить штраф с камеры, который пришел ошибочно. Юрист быстро разобрался в ситуации и подготовил все документы. Спасибо!",
|
text: "Помогли оспорить штраф с камеры, который пришел ошибочно. Юрист быстро разобрался в ситуации и подготовил все документы. Спасибо!",
|
||||||
rating: 5,
|
rating: 5,
|
||||||
initial: "А",
|
|
||||||
color: "bg-yellow-100 text-yellow-600",
|
|
||||||
date: "2024-02-01",
|
date: "2024-02-01",
|
||||||
votesCount: 12,
|
votesCount: 12,
|
||||||
isHelpful: false
|
isHelpful: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
id: 9,
|
||||||
name: "Виктор Л.",
|
name: "Виктор Л.",
|
||||||
car: "Honda CR-V",
|
car: "Honda CR-V",
|
||||||
text: "Обратился по вопросу компенсации после ДТП. Страховая занижала выплату в 3 раза. Сделали экспертизу и через суд добились справедливой суммы.",
|
text: "Обратился по вопросу компенсации после ДТП. Страховая занижала выплату в 3 раза. Сделали экспертизу и через суд добились справедливой суммы.",
|
||||||
rating: 5,
|
rating: 5,
|
||||||
initial: "В",
|
|
||||||
color: "bg-red-100 text-red-600",
|
|
||||||
date: "2024-01-25",
|
date: "2024-01-25",
|
||||||
votesCount: 35,
|
votesCount: 35,
|
||||||
isHelpful: true
|
isHelpful: true
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
// Агрегированные данные для голосования
|
const colors = [
|
||||||
export const votingSummary = {
|
"bg-blue-100 text-blue-600", "bg-teal-100 text-teal-600", "bg-orange-100 text-orange-600",
|
||||||
averageRating: 4.8,
|
"bg-pink-100 text-pink-600", "bg-purple-100 text-purple-600", "bg-indigo-100 text-indigo-600",
|
||||||
totalVotes: 203,
|
"bg-green-100 text-green-600", "bg-yellow-100 text-yellow-600", "bg-red-100 text-red-600"
|
||||||
totalReviews: reviewsData.length,
|
];
|
||||||
ratingDistribution: {
|
|
||||||
5: 7,
|
export const reviewsData: Review[] = reviewsRaw.map(review => {
|
||||||
4: 2,
|
const initial = review.name.charAt(0).toUpperCase();
|
||||||
3: 0,
|
const color = colors[initial.charCodeAt(0) % colors.length];
|
||||||
2: 0,
|
return { ...review, avatar: { initial, color } };
|
||||||
1: 0
|
});
|
||||||
}
|
|
||||||
};
|
export const votingSummary = (() => {
|
||||||
|
const totalReviews = reviewsData.length;
|
||||||
|
const totalVotes = reviewsData.reduce((sum, review) => sum + review.votesCount, 0);
|
||||||
|
const totalRating = reviewsData.reduce((sum, review) => sum + review.rating, 0);
|
||||||
|
const averageRating = totalReviews > 0 ? parseFloat((totalRating / totalReviews).toFixed(1)) : 0;
|
||||||
|
const ratingDistribution = reviewsData.reduce((acc, review) => {
|
||||||
|
acc[review.rating] = (acc[review.rating] || 0) + 1;
|
||||||
|
return acc;
|
||||||
|
}, {} as Record<number, number>);
|
||||||
|
|
||||||
|
return {
|
||||||
|
averageRating,
|
||||||
|
totalVotes,
|
||||||
|
totalReviews,
|
||||||
|
ratingDistribution
|
||||||
|
};
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue