hesabixArc/docs/CALENDAR_SWITCHER_UPDATE.md

2.9 KiB
Raw Permalink Blame History

به‌روزرسانی CalendarSwitcher - اضافه شدن به صفحات اصلی

خلاصه تغییرات

CalendarSwitcher با موفقیت به صفحه ورود (LoginPage) و داشبورد (ProfileShell) اضافه شد.

فایل‌های تغییر یافته

1. LoginPage (lib/pages/login_page.dart)

  • اضافه شدن import های مورد نیاز
  • اضافه شدن CalendarController به constructor
  • اضافه شدن AppBar با CalendarSwitcher و LanguageSwitcher
  • ترتیب: CalendarSwitcher → LanguageSwitcher

2. ProfileShell (lib/pages/profile/profile_shell.dart)

  • اضافه شدن import های مورد نیاز
  • اضافه شدن CalendarController به constructor
  • اضافه شدن CalendarSwitcher به AppBar actions
  • ترتیب: CalendarSwitcher → LanguageSwitcher → ThemeModeSwitcher
  • رفع خطای deprecated (surfaceVariant → surfaceContainerHighest)

3. Main.dart (lib/main.dart)

  • به‌روزرسانی LoginPage route برای ارسال CalendarController
  • به‌روزرسانی ProfileShell route برای ارسال CalendarController

ویژگی‌های پیاده‌سازی شده

صفحه ورود (LoginPage)

  • AppBar با عنوان برنامه
  • CalendarSwitcher در سمت راست
  • LanguageSwitcher در کنار CalendarSwitcher
  • طراحی responsive و زیبا

داشبورد (ProfileShell)

  • AppBar با لوگو و عنوان برنامه
  • CalendarSwitcher در actions
  • LanguageSwitcher در کنار CalendarSwitcher
  • ThemeModeSwitcher در انتها
  • LogoutButton در انتهای actions

ترتیب نمایش در AppBar

  1. CalendarSwitcher - انتخاب نوع تقویم (میلادی/شمسی)
  2. LanguageSwitcher - انتخاب زبان (فارسی/انگلیسی)
  3. ThemeModeSwitcher - انتخاب تم (فقط در ProfileShell)
  4. LogoutButton - خروج (فقط در ProfileShell)

تست و بررسی

  • Flutter analyze بدون خطای critical
  • تمام import ها صحیح
  • Constructor ها به‌روزرسانی شده
  • UI responsive و زیبا
  • ترتیب منطقی در AppBar

نحوه استفاده

کاربران حالا می‌توانند در تمام صفحات اصلی (ورود، خانه، داشبورد) نوع تقویم مورد نظر خود را انتخاب کنند:

  1. صفحه ورود: CalendarSwitcher در AppBar بالای فرم ورود
  2. صفحه خانه: CalendarSwitcher در AppBar کنار LanguageSwitcher
  3. داشبورد: CalendarSwitcher در AppBar کنار سایر کنترل‌ها

نکات مهم

  • CalendarSwitcher در تمام صفحات در دسترس است
  • انتخاب کاربر در SharedPreferences ذخیره می‌شود
  • تغییر تقویم به صورت سراسری اعمال می‌شود
  • طراحی یکپارچه و زیبا در تمام صفحات