اذهب إلى المحتوى

السؤال

نشر

هل يمكن مساعدة في حل مشكلة عدم جلب اشعارات من فرونت اند رغم انها تم حفظها في باك اند 

  BackEnd: Notification.ts notfication.controller.ts notfincation.route.ts appointmentReminder.ts index.ts

FrontEnd: Navbar.tsx

مفروض ان يتم جلب اشعارات بعد انشاء موعد ب 15 دقيقة لكن اشعارات تحفظ في قاعدة بيانات ولا يتم عرضها في Navbar.tsx

 

Hospital.zip

Recommended Posts

  • 0
نشر

مسار جلب الإشعارات في الباك إند /api/notification محمي بدور Admin فقط، بينما التذكير يُنشأ لشخص يفترض الطبيب أو منشئ الموعد، ولو المستخدم ليس Admin فلن يُعيد أية إشعارات.

والتذكير يُخزن لـ user ثابت وهو user: "6938 في appointmentReminder.ts بالتالي الإشعار لا يرتبط بالمستخدم الذي يسجل الدخول فعليًا، لذلك getUserNotifications لا يجد إشعارات له.

لذا يجب توسيع صلاحيات مسار الإشعارات للسماح بالأدوار التي يجب أن تتلقى التذكير Admin و أو Dentist مثلاً حسب ما تريد، مع الإبقاء على isAuthenticate.

وفي appointmentReminder.ts اجعل user هو الطبيب المرتبط بالموعد أو المستخدم المنشئ، بدل المعرف الثابت، لتعيد getUserNotifications الإشعارات للمستخدم الحالي.

  • 0
نشر
بتاريخ On 10‏/12‏/2025 at 20:14 قال Zen Eddin Allaham:

اشعارات محفوظة ب userId الخاص ب ادمن  6938163251826eb701cf1d4c 

Hospital.zip 424.11 kB · 3 تنزيلات

المشكلة لديك في ملف frontend\src\Components\Navbar.tsx في سطر 93 .

حيث useEffect يعمل أول مرة و setUser(JSON.parse(userData)) لا تغير user فورا وفي السطر التالي مباشرة:

fetchNotifications() تجعل user ما يزال null.

لذلك الحل هو هو حذف ال useEffect هذه وفصلها إلى إثنين هكذا :

useEffect(() => {
  const userData = localStorage.getItem("user");
  const token = localStorage.getItem("token");

  if (userData && token) {
    try {
      setUser(JSON.parse(userData));
    } catch {
      setUser(null);
    }
  }
}, []);

useEffect(() => {
  if (!user) return;

  fetchNotifications();
  const interval = setInterval(fetchNotifications, 60 * 1000);

  return () => clearInterval(interval);
}, [user]);

ولقد قمت بإرفاق الملف لك بعد التعديل .

ولكن لاحظ أن الإشعار يعتمد على المستخدم وهو يذهب إلى الطبيب لذلك يجب إلغاء جزء التحقق أنه Admin وإلا فإن الإشعارات لن تظهر إلا إلى الأدمن.

Navbar.tsx

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...