mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-10-23 15:03:22 +00:00
47 lines
1.2 KiB
Dart
47 lines
1.2 KiB
Dart
|
import 'package:comunic/lists/notifications_list.dart';
|
||
|
import 'package:comunic/utils/intl_utils.dart';
|
||
|
import 'package:comunic/utils/ui_utils.dart';
|
||
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
/// Notifications screen
|
||
|
///
|
||
|
/// @author Pierre HUBERT
|
||
|
|
||
|
enum _Status { LOADING, ERROR, NONE }
|
||
|
|
||
|
class NotificationsScreen extends StatefulWidget {
|
||
|
@override
|
||
|
_NotificationsScreenState createState() => _NotificationsScreenState();
|
||
|
}
|
||
|
|
||
|
class _NotificationsScreenState extends State<NotificationsScreen> {
|
||
|
NotificationsList _list;
|
||
|
_Status _status = _Status.LOADING;
|
||
|
|
||
|
void setStatus(_Status s) => setState(() => _status = s);
|
||
|
|
||
|
Future<void> _loadList() async {
|
||
|
setStatus(_Status.LOADING);
|
||
|
|
||
|
}
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
// In case of error
|
||
|
if (_status == _Status.ERROR)
|
||
|
return buildErrorCard(tr("Could not get the list of notifications!"),
|
||
|
actions: [
|
||
|
MaterialButton(
|
||
|
onPressed: () => _loadList(),
|
||
|
child: Text(tr("Try again".toUpperCase())),
|
||
|
)
|
||
|
]);
|
||
|
|
||
|
// Loading status
|
||
|
if (_list == null || _status == _Status.LOADING)
|
||
|
return Center(
|
||
|
child: CircularProgressIndicator(),
|
||
|
);
|
||
|
}
|
||
|
}
|