import 'package:didvan/constants/assets.dart'; import 'package:didvan/models/enums.dart'; import 'package:didvan/models/new_statistic/new_statistics_model.dart'; import 'package:didvan/providers/core.dart'; import 'package:didvan/services/market/market_service.dart'; import 'package:didvan/views/home/new_statistic/widgets/statistic_cat.dart'; class NewStatisticState extends CoreProvier { final List contents = []; List statCat = []; /// دریافت داده‌ی بازار از market-service جدید (api2.didvan.com). Future getStatistic() async { appState = AppState.busy; final result = await MarketService.instance.getMarketData(limit: 50); if (result.isSuccess && result.lists != null) { contents ..clear() ..addAll(result.lists!); appState = AppState.idle; return; } // اگر دسترسی نبود (403) یا خطای دیگری رخ داد، به‌جای صفحه‌ی خطا // یک لیست خالی نشان می‌دهیم تا صفحه باز شود (UI نمی‌شکند). contents.clear(); appState = AppState.idle; } void init() { statCat = [ StatMenuItemType( label: "بازار ارز و طلا", asset: Assets.currencyGoldStatCat, id: 1), StatMenuItemType( label: "ارزهای دیجیتال", asset: Assets.cryptoStatCat, id: 2), StatMenuItemType(label: "فلزات پایه", asset: Assets.metalStatCat, id: 3), StatMenuItemType( label: "کامودیتی‌ها", asset: Assets.commodityStatCat, id: 4), StatMenuItemType(label: "صنعت فولاد", asset: Assets.steelStatCat, id: 5), StatMenuItemType( label: "بازار سرمایه", asset: Assets.stockStatCat, id: 6), ]; Future.delayed(Duration.zero, () { getStatistic(); }); } void refresh() { statCat = [ StatMenuItemType( label: "بازار ارز و طلا", asset: Assets.currencyGoldStatCat, id: 1), StatMenuItemType( label: "ارزهای دیجیتال", asset: Assets.cryptoStatCat, id: 2), StatMenuItemType(label: "فلزات پایه", asset: Assets.metalStatCat, id: 3), StatMenuItemType( label: "کامودیتی‌ها", asset: Assets.commodityStatCat, id: 4), StatMenuItemType(label: "صنعت فولاد", asset: Assets.steelStatCat, id: 5), StatMenuItemType( label: "بازار سرمایه", asset: Assets.stockStatCat, id: 6), ]; update(); } void resetState() { contents.clear(); notifyListeners(); getStatistic(); } }