import 'package:barcode_scanner/backend/schema/user/user_struct.dart'; import 'package:barcode_scanner/services/secure_storage.dart'; import 'package:barcode_scanner/services/token_provider.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; part 'home_page_model.freezed.dart'; /// The provider for the AuthViewModel, using Riverpod's StateNotifierProvider /// with autoDispose to manage the lifecycle of the view model. final homePageModelProvider = StateNotifierProvider((ref) { return HomePageModel( secureStorage: ref.read(sharedPrefsProvider), tokenProvider: ref.read(tokenProvider), ); }); class HomePageModel extends StateNotifier { /// Constructor initializes the TaskRepository using the provider reference. HomePageModel({required this.secureStorage, required this.tokenProvider}) : super(const HomePageState()); late FlutterSecureStorage secureStorage; late TokenProvider tokenProvider; Future getUserConnected() async { state = state.copyWith(loading: true); final user = await UserStruct(id: '1').getFromLocalStorage(); state = state.copyWith(user: user, loading: false); } } @freezed abstract class HomePageState with _$HomePageState { const factory HomePageState({ UserStruct? user, @Default(false) bool loading, }) = _HomePageState; }