mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-11-30 00:36:28 +00:00
59 lines
1.3 KiB
Dart
59 lines
1.3 KiB
Dart
|
import 'package:comunic/helpers/users_helper.dart';
|
||
|
import 'package:comunic/models/user.dart';
|
||
|
import 'package:comunic/ui/widgets/account_image_widget.dart';
|
||
|
import 'package:comunic/ui/widgets/safe_state.dart';
|
||
|
import 'package:comunic/utils/account_utils.dart';
|
||
|
import 'package:comunic/utils/ui_utils.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
/// Current user panel
|
||
|
///
|
||
|
/// @author Pierre HUBERT
|
||
|
|
||
|
class CurrentUserPanel extends StatefulWidget {
|
||
|
@override
|
||
|
_CurrentUserPanelState createState() => _CurrentUserPanelState();
|
||
|
}
|
||
|
|
||
|
class _CurrentUserPanelState extends SafeState<CurrentUserPanel> {
|
||
|
User _user;
|
||
|
|
||
|
Future<void> _refresh() async {
|
||
|
try {
|
||
|
final user = await UsersHelper().getSingleWithThrow(userID());
|
||
|
|
||
|
setState(() => _user = user);
|
||
|
} catch (e, s) {
|
||
|
print("Could not load user panel! $e\n$s");
|
||
|
|
||
|
setTimeout(5, _refresh);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
void initState() {
|
||
|
super.initState();
|
||
|
_refresh();
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return Container(
|
||
|
height: 80,
|
||
|
child: Center(child: _buildContent()),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
Widget _buildContent() {
|
||
|
if (_user == null) return buildCenteredProgressBar();
|
||
|
|
||
|
return ListTile(
|
||
|
leading: AccountImageWidget(
|
||
|
user: _user,
|
||
|
width: 50,
|
||
|
),
|
||
|
title: Text(_user.displayName),
|
||
|
);
|
||
|
}
|
||
|
}
|