import 'package:yimaru_app/app/app.bottomsheets.dart'; import 'package:yimaru_app/app/app.dialogs.dart'; import 'package:yimaru_app/app/app.locator.dart'; import 'package:yimaru_app/app/app.router.dart'; import 'package:yimaru_app/models/user_model.dart'; import 'package:yimaru_app/ui/common/app_strings.dart'; import 'package:stacked/stacked.dart'; import 'package:stacked_services/stacked_services.dart'; import '../../../services/api_service.dart'; import '../../../services/authentication_service.dart'; import '../../common/enmus.dart'; class HomeViewModel extends BaseViewModel { final _apiService = locator(); final _dialogService = locator(); final _navigationService = locator(); final _bottomSheetService = locator(); final _authenticationService = locator(); // Bottom navigation int _currentIndex = 0; int get currentIndex => _currentIndex; void setCurrentIndex(int index) { _currentIndex = index; rebuildUi(); } void showDialog() { _dialogService.showCustomDialog( variant: DialogType.infoAlert, title: 'Stacked Rocks!', description: 'Give stacked stars on Github', ); } void showBottomSheet() { _bottomSheetService.showCustomSheet( variant: BottomSheetType.notice, title: ksHomeBottomSheetTitle, description: ksHomeBottomSheetDescription, ); } // Navigation Future replaceWithOnboarding() async => await _navigationService.replaceWithOnboardingView(); // Remote api calls Future getProfileStatus() async { UserModel user = await _authenticationService.getUser(); Map response = await runBusyFuture>( _apiService.getProfileStatus(user)); if (response['status'] == ResponseStatus.success && !response['data']) { await replaceWithOnboarding(); } } }