43 lines
1.1 KiB
Dart
43 lines
1.1 KiB
Dart
import 'package:get/get_rx/src/rx_types/rx_types.dart';
|
|
import 'package:get/get_state_manager/src/simple/get_controllers.dart';
|
|
import 'package:quiz_app/core/utils/logger.dart';
|
|
import 'package:quiz_app/data/entity/user/user_entity.dart';
|
|
import 'package:quiz_app/data/services/user_storage_service.dart';
|
|
|
|
class UserController extends GetxController {
|
|
final UserStorageService _userStorageService;
|
|
|
|
UserController(this._userStorageService);
|
|
|
|
Rx<String> userName = "".obs;
|
|
Rx<String?> userImage = Rx<String?>(null);
|
|
Rx<String> email = "".obs;
|
|
|
|
UserEntity? userData;
|
|
|
|
@override
|
|
void onInit() {
|
|
loadUser();
|
|
super.onInit();
|
|
}
|
|
|
|
Future<void> loadUser() async {
|
|
final data = await _userStorageService.loadUser();
|
|
if (data != null) {
|
|
userData = data;
|
|
userName.value = data.name;
|
|
userImage.value = data.picUrl;
|
|
email.value = data.email;
|
|
logC.i("Loaded user: ${data.toJson()}");
|
|
}
|
|
}
|
|
|
|
void setUserFromEntity(UserEntity data) {
|
|
final userEntity = data;
|
|
userData = userEntity;
|
|
userName.value = userEntity.name;
|
|
userImage.value = userEntity.picUrl;
|
|
email.value = userEntity.email;
|
|
}
|
|
}
|