didvan-app/lib/views/home/new_statistic/new_statistics_state.dart

73 lines
2.6 KiB
Dart

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<CategoryList> contents = [];
List<StatMenuItemType> statCat = [];
/// دریافت داده‌ی بازار از market-service جدید (api2.didvan.com).
Future<void> 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();
}
}