hesabixArc/docs/CALENDAR_SWITCHER_UPDATE.md

65 lines
2.9 KiB
Markdown
Raw Permalink Normal View History

2025-09-18 10:44:23 +03:30
# به‌روزرسانی 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 ذخیره می‌شود
- تغییر تقویم به صورت سراسری اعمال می‌شود
- طراحی یکپارچه و زیبا در تمام صفحات