24
This commit is contained in:
32
lib/v12/pages/login/logout_button.dart
Normal file
32
lib/v12/pages/login/logout_button.dart
Normal file
@@ -0,0 +1,32 @@
|
||||
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,
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user