home_controller.dart 1.08 KB
import 'package:doublefeel_flutter/core/services/user_state_service.dart';
import 'package:doublefeel_flutter/data/local/local_storage.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';

import '../../app_review_prompt/logic/app_review_prompt_logic.dart';
import '../../report_common/models/report_period.dart';
import 'trend/trend_controller.dart';

class HomeController extends GetxController {
  static const trendTabIndex = 1;

  final AppReviewPromptLogic _appReviewPromptLogic = AppReviewPromptLogic(
    storage: Get.find<LocalStorage>(),
  );
  final UserStateService userStateService = Get.find<UserStateService>();

  /// 当前选中的底部 tab 索引
  final selectedIndex = 0.obs;

  Future<void> maybeShowAppReviewPrompt(BuildContext context) {
    return _appReviewPromptLogic.maybeShowPrompt(context);
  }

  void changeTab(int index) {
    selectedIndex.value = index;
  }

  void openTrend(TrendType type, {DateTime? date, ReportPeriod? period}) {
    Get.find<TrendController>().selectType(type, date: date, period: period);
    changeTab(trendTabIndex);
  }
}