Browse Source

Merge pull request #70 from jld3103/fix/account-tile-error-icon

neon: Fix account tile error icon
pull/71/head
jld3103 2 years ago committed by GitHub
parent
commit
cc88858544
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      packages/neon/lib/src/widgets/account_tile.dart
  2. 16
      packages/neon/lib/src/widgets/exception.dart

1
packages/neon/lib/src/widgets/account_tile.dart

@ -78,6 +78,7 @@ class AccountTile extends StatelessWidget {
ExceptionWidget( ExceptionWidget(
userDetailsError, userDetailsError,
onlyIcon: true, onlyIcon: true,
iconSize: 24,
onRetry: () { onRetry: () {
userDetailsBloc.refresh(); userDetailsBloc.refresh();
}, },

16
packages/neon/lib/src/widgets/exception.dart

@ -5,12 +5,14 @@ class ExceptionWidget extends StatelessWidget {
this.exception, { this.exception, {
required this.onRetry, required this.onRetry,
this.onlyIcon = false, this.onlyIcon = false,
this.iconSize = 30,
super.key, super.key,
}); });
final dynamic exception; final dynamic exception;
final Function() onRetry; final Function() onRetry;
final bool onlyIcon; final bool onlyIcon;
final double iconSize;
static void showSnackbar(final BuildContext context, final dynamic exception) { static void showSnackbar(final BuildContext context, final dynamic exception) {
final details = _getExceptionDetails(context, exception); final details = _getExceptionDetails(context, exception);
@ -31,28 +33,28 @@ class ExceptionWidget extends StatelessWidget {
@override @override
Widget build(final BuildContext context) => exception == null Widget build(final BuildContext context) => exception == null
? Container() ? Container()
: Padding( : Container(
padding: const EdgeInsets.all(5), padding: !onlyIcon ? const EdgeInsets.all(5) : null,
child: Builder( child: Builder(
builder: (final context) { builder: (final context) {
final details = _getExceptionDetails(context, exception); final details = _getExceptionDetails(context, exception);
const errorIcon = Icon( final errorIcon = Icon(
Icons.error_outline, Icons.error_outline,
size: 30, size: iconSize,
color: Colors.red, color: Colors.red,
); );
if (onlyIcon) { if (onlyIcon) {
return IconButton( return InkWell(
onPressed: () async { child: errorIcon,
onTap: () async {
if (details.isUnauthorized) { if (details.isUnauthorized) {
await _openLoginPage(context); await _openLoginPage(context);
} else { } else {
onRetry(); onRetry();
} }
}, },
icon: errorIcon,
); );
} }

Loading…
Cancel
Save