الميزات: إضافة صفحات الأسعار والمدونة، وتفعيل ميزة تقييم الأدوات

- إضافة روابط جديدة في تذييل صفحات الأسعار والمدونة.

- إنشاء مكون صفحة الأسعار لعرض تفاصيل الخطط ومقارنة الميزات.

- تطوير مكون صفحة المدونة لعرض منشورات المدونة مع روابط للمقالات الفردية.

- تقديم مكون تقييم الأدوات لتلقي ملاحظات المستخدمين حول الأدوات، بما في ذلك التقييم بالنجوم والتعليقات الاختيارية.

- تفعيل وظيفة useToolRating لجلب وعرض تقييمات الأدوات.

- تحديث أدوات تحسين محركات البحث لتضمين بيانات التقييم في البيانات المنظمة للأدوات.

- تحسين ملفات i18n بترجمات للميزات والصفحات الجديدة.

- دمج إدارة الموافقة على ملفات تعريف الارتباط لتتبع التحليلات.
This commit is contained in:
Your Name
2026-03-10 15:16:28 +02:00
parent 75e11df5fb
commit a14c31c594
25 changed files with 2194 additions and 16 deletions

View File

@@ -0,0 +1,35 @@
import { useState, useEffect } from 'react';
import api from '@/services/api';
interface RatingSummary {
tool: string;
count: number;
average: number;
}
/**
* Fetch the aggregate rating for a tool slug.
* Returns { average, count } or defaults if the fetch fails.
*/
export function useToolRating(toolSlug: string) {
const [data, setData] = useState<RatingSummary>({ tool: toolSlug, count: 0, average: 0 });
useEffect(() => {
let cancelled = false;
api
.get<RatingSummary>(`/ratings/tool/${toolSlug}`)
.then((res) => {
if (!cancelled) setData(res.data);
})
.catch(() => {
// silently fail — rating is optional
});
return () => {
cancelled = true;
};
}, [toolSlug]);
return data;
}