Files
iroute/lib/v12/pages/login/logout_button.dart
toly 7b16b52761 24
2023-12-10 15:25:12 +08:00

33 lines
911 B
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:iroute/v12/app/authentication/auth_scope.dart';
class LogoutButton extends StatelessWidget {
final VoidCallback onLogout;
const LogoutButton({super.key, required this.onLogout});
@override
Widget build(BuildContext context) {
AuthResult authResult = AuthScope.of(context);
VoidCallback? action = onLogout;
Widget child = const Icon(Icons.logout,size: 20,);
switch (authResult.status) {
case AuthStatus.none:
case AuthStatus.success:
case AuthStatus.failed:
case AuthStatus.waitingLogin:
break;
case AuthStatus.waitingLoginOut:
action = null;
child = CupertinoActivityIndicator(radius: 10,);
}
return IconButton(
splashRadius: 20,
onPressed: action,
tooltip: '退出登录',
icon: child,
);
}
}