// مثال عملی استفاده از AppSnackBar در فایل‌های مختلف اپ // Practical examples of AppSnackBar usage in different app files import 'package:flutter/material.dart'; import 'package:lba/widgets/app_snackbar.dart'; import 'package:geolocator/geolocator.dart'; /* ✅ تبدیل موفق تمام SnackBarهای قدیمی به AppSnackBar جدید ✅ Successfully converted all old SnackBars to new AppSnackBar 📂 فایل‌های تبدیل شده / Converted Files: 1. 📍 lib/screens/mains/nearby/location_radius_screen.dart - پیام موفقیت: "Location found successfully!" ✅ - پیام هشدار: "Location services disabled" ⚠️ - پیام خطا: "Location permissions denied" ❌ - پیام اطلاعاتی: "Using default location" ℹ️ 2. 📍 lib/screens/product/map_selection_screen.dart - پیام هشدار: "Location services disabled" + دکمه Settings ⚠️ - پیام خطا: "Location permissions denied" ❌ - پیام خطا: "Permanently denied permissions" ❌ 3. 📍 lib/screens/qr_scanner/qr_scanner_page.dart - پیام خطا: "Error selecting image" ❌ 4. 📍 lib/screens/auth/otp_verification_page.dart - پیام خطا: Authentication errors ❌ - پیام هشدار: "Please enter complete OTP" ⚠️ 5. 📍 lib/screens/auth/login_page.dart - پیام خطا: Authentication errors ❌ 🎨 ویژگی‌های جدید AppSnackBar: */ // ❌ کد قدیمی (Old Code): /* ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(message), backgroundColor: AppColors.errorColor, duration: Duration(seconds: 3), ), ); */ // ✅ کد جدید (New Code): /* AppSnackBar.showError( context: context, message: message, duration: Duration(seconds: 3), ); // یا با دکمه عمل AppSnackBar.showWarning( context: context, message: 'Location services disabled', actionLabel: 'Settings', onActionPressed: () => Geolocator.openLocationSettings(), ); */ // 🎯 نحوه استفاده در صفحات جدید: class ExampleUsage { static void showLocationSuccess(context) { AppSnackBar.showSuccess( context: context, message: 'Successful', ); } static void showConnectionError(context) { AppSnackBar.showError( context: context, message: 'Connection to the internet is not established', actionLabel: 'Retry', onActionPressed: () { // Retry operation }, ); } static void showFileUploadInfo(context) { AppSnackBar.showInfo( context: context, message: 'File is uploading...', duration: Duration(seconds: 5), ); } static void showDeleteWarning(context) { AppSnackBar.showWarning( context: context, message: 'This action is irreversible', actionLabel: 'Cancel', onActionPressed: () { // Cancel operation }, ); } } /* 📊 آمار تبدیل: - تعداد فایل‌های بررسی شده: 5+ - تعداد SnackBar های تبدیل شده: 7+ - نوع پیام‌های پیاده‌سازی شده: 4 نوع (Success, Error, Warning, Info) - ویژگی‌های اضافه شده: Action Button, Custom Duration, Beautiful Design 🚀 مزایای AppSnackBar جدید: ✅ طراحی زیبا و مدرن ✅ رنگ‌بندی مناسب برای هر نوع پیام ✅ انیمیشن‌های روان ✅ قابلیت افزودن دکمه عمل ✅ تنظیم زمان نمایش ✅ یکدست سازی تجربه کاربری ✅ کاهش کد تکراری ✅ نگهداری آسان‌تر */