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/statista_market_service.dart'; import 'package:didvan/views/home/new_statistic/widgets/statistic_cat.dart'; class NewStatisticState extends CoreProvier { final List contents = []; DateTime? generatedAt; String? errorMessage; List statCat = []; Future getStatistic() async { appState = AppState.busy; errorMessage = null; final result = await StatistaMarketService.instance.getLatestPrices(); if (result.isSuccess) { contents ..clear() ..addAll(result.categories); generatedAt = result.generatedAt; appState = AppState.idle; return; } contents.clear(); errorMessage = result.errorMessage; 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(); } }