33 lines
911 B
Dart
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,
|
|
);
|
|
}
|
|
}
|