Мелкие правки кода
This commit is contained in:
parent
28f41cf346
commit
014439d565
2 changed files with 183 additions and 154 deletions
|
|
@ -1,127 +1,136 @@
|
|||
export interface Review {
|
||||
id: number;
|
||||
name: string;
|
||||
car: string;
|
||||
text: string;
|
||||
rating: number;
|
||||
initial: string;
|
||||
color: string;
|
||||
avatar: { initial: string; color: string; };
|
||||
date: string;
|
||||
votesCount: number;
|
||||
isHelpful: boolean;
|
||||
}
|
||||
|
||||
export const reviewsData: Review[] = [
|
||||
const reviewsRaw = [
|
||||
{
|
||||
id: 1,
|
||||
name: "Алексей М.",
|
||||
car: "Toyota Camry",
|
||||
text: "Помогли вернуть права после того, как инспектор незаконно составил протокол за встречку. Юрист нашел кучу ошибок в схеме ДТП. Огромное спасибо!",
|
||||
rating: 5,
|
||||
initial: "А",
|
||||
color: "bg-blue-100 text-blue-600",
|
||||
date: "2024-03-15",
|
||||
votesCount: 24,
|
||||
isHelpful: true
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "Екатерина П.",
|
||||
car: "Hyundai Solaris",
|
||||
text: "Страховая выплатила копейки по ОСАГО. Обратилась сюда, сделали независимую экспертизу и через суд взыскали еще 120 тысяч. Профессионалы!",
|
||||
rating: 5,
|
||||
initial: "Е",
|
||||
color: "bg-teal-100 text-teal-600",
|
||||
date: "2024-03-10",
|
||||
votesCount: 18,
|
||||
isHelpful: true
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: "Игорь С.",
|
||||
car: "Lexus RX",
|
||||
text: "Грамотно разобрали сложное ДТП на перекрестке. Доказали, что я не виноват, хотя ГИБДД изначально решило иначе. Лучшие в Сургуте.",
|
||||
rating: 5,
|
||||
initial: "И",
|
||||
color: "bg-orange-100 text-orange-600",
|
||||
date: "2024-03-05",
|
||||
votesCount: 31,
|
||||
isHelpful: true
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: "Марина К.",
|
||||
car: "Kia Rio",
|
||||
text: "Обратилась по вопросу возврата прав после лишения. Всё сделали быстро и профессионально. Через 2 месяца права уже были у меня. Рекомендую!",
|
||||
rating: 4,
|
||||
initial: "М",
|
||||
color: "bg-pink-100 text-pink-600",
|
||||
date: "2024-02-28",
|
||||
votesCount: 15,
|
||||
isHelpful: true
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
name: "Дмитрий В.",
|
||||
car: "Volkswagen Tiguan",
|
||||
text: "Были проблемы со страховой после ДТП. Юристы помогли составить претензию, потом представляли интересы в суде. Выиграли дело полностью.",
|
||||
rating: 5,
|
||||
initial: "Д",
|
||||
color: "bg-purple-100 text-purple-600",
|
||||
date: "2024-02-20",
|
||||
votesCount: 22,
|
||||
isHelpful: true
|
||||
},
|
||||
{
|
||||
id: 6,
|
||||
name: "Ольга Н.",
|
||||
car: "Mazda CX-5",
|
||||
text: "Купила б/у авто с проблемами, которые не были указаны при продаже. Юристы помогли вернуть деньги через суд. Очень благодарна за помощь!",
|
||||
rating: 5,
|
||||
initial: "О",
|
||||
color: "bg-indigo-100 text-indigo-600",
|
||||
date: "2024-02-15",
|
||||
votesCount: 27,
|
||||
isHelpful: true
|
||||
},
|
||||
{
|
||||
id: 7,
|
||||
name: "Сергей Т.",
|
||||
car: "Nissan Qashqai",
|
||||
text: "Спор со страховой длился полгода. Сам не мог ничего добиться. Обратился сюда - ребята за 2 месяца решили вопрос в мою пользу. Супер!",
|
||||
rating: 4,
|
||||
initial: "С",
|
||||
color: "bg-green-100 text-green-600",
|
||||
date: "2024-02-08",
|
||||
votesCount: 19,
|
||||
isHelpful: true
|
||||
},
|
||||
{
|
||||
id: 8,
|
||||
name: "Анна Р.",
|
||||
car: "Skoda Octavia",
|
||||
text: "Помогли оспорить штраф с камеры, который пришел ошибочно. Юрист быстро разобрался в ситуации и подготовил все документы. Спасибо!",
|
||||
rating: 5,
|
||||
initial: "А",
|
||||
color: "bg-yellow-100 text-yellow-600",
|
||||
date: "2024-02-01",
|
||||
votesCount: 12,
|
||||
isHelpful: false
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
name: "Виктор Л.",
|
||||
car: "Honda CR-V",
|
||||
text: "Обратился по вопросу компенсации после ДТП. Страховая занижала выплату в 3 раза. Сделали экспертизу и через суд добились справедливой суммы.",
|
||||
rating: 5,
|
||||
initial: "В",
|
||||
color: "bg-red-100 text-red-600",
|
||||
date: "2024-01-25",
|
||||
votesCount: 35,
|
||||
isHelpful: true
|
||||
}
|
||||
];
|
||||
|
||||
// Агрегированные данные для голосования
|
||||
export const votingSummary = {
|
||||
averageRating: 4.8,
|
||||
totalVotes: 203,
|
||||
totalReviews: reviewsData.length,
|
||||
ratingDistribution: {
|
||||
5: 7,
|
||||
4: 2,
|
||||
3: 0,
|
||||
2: 0,
|
||||
1: 0
|
||||
}
|
||||
};
|
||||
const colors = [
|
||||
"bg-blue-100 text-blue-600", "bg-teal-100 text-teal-600", "bg-orange-100 text-orange-600",
|
||||
"bg-pink-100 text-pink-600", "bg-purple-100 text-purple-600", "bg-indigo-100 text-indigo-600",
|
||||
"bg-green-100 text-green-600", "bg-yellow-100 text-yellow-600", "bg-red-100 text-red-600"
|
||||
];
|
||||
|
||||
export const reviewsData: Review[] = reviewsRaw.map(review => {
|
||||
const initial = review.name.charAt(0).toUpperCase();
|
||||
const color = colors[initial.charCodeAt(0) % colors.length];
|
||||
return { ...review, avatar: { initial, color } };
|
||||
});
|
||||
|
||||
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