Files
paperless-mobile/lib/features/settings/view/widgets/user_settings_builder.dart
2023-04-23 16:48:11 +02:00

38 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:hive_flutter/adapters.dart';
import 'package:paperless_mobile/core/config/hive/hive_config.dart';
import 'package:paperless_mobile/features/login/model/user_account.dart';
import 'package:paperless_mobile/features/settings/model/global_settings.dart';
import 'package:paperless_mobile/features/settings/model/user_settings.dart';
class UserAccountBuilder extends StatelessWidget {
final Widget Function(
BuildContext context,
UserAccount? settings,
) builder;
const UserAccountBuilder({
super.key,
required this.builder,
});
@override
Widget build(BuildContext context) {
return ValueListenableBuilder<Box<UserAccount>>(
valueListenable:
Hive.box<UserAccount>(HiveBoxes.userAccount).listenable(),
builder: (context, accountBox, _) {
final currentUser = Hive.box<GlobalSettings>(HiveBoxes.globalSettings)
.getValue()!
.currentLoggedInUser;
if (currentUser != null) {
final account = accountBox.get(currentUser);
return builder(context, account);
} else {
return builder(context, null);
}
},
);
}
}