72 lines
2.1 KiB
Dart
Raw Normal View History

2025-07-30 22:38:44 +07:00
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../../core/constants/colors.dart';
import '../../../data/datasources/auth_local_datasource.dart';
import '../../auth/bloc/logout/logout_bloc.dart';
import '../../auth/login_page.dart';
class LogoutPage extends StatefulWidget {
const LogoutPage({super.key});
@override
State<LogoutPage> createState() => _LogoutPageState();
}
class _LogoutPageState extends State<LogoutPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Dashboard'),
),
body: Center(
child: Column(
children: [
const Text('Welcome to Dashboard'),
const SizedBox(
height: 100,
),
BlocListener<LogoutBloc, LogoutState>(
listener: (context, state) {
state.maybeMap(
orElse: () {},
error: (e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(e.message),
backgroundColor: AppColors.red,
),
);
},
success: (value) {
AuthLocalDataSource().removeAuthData();
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('Logout success'),
backgroundColor: AppColors.primary,
),
);
Navigator.pushReplacement(context,
MaterialPageRoute(builder: (context) {
return const LoginPage();
}));
},
);
},
child: ElevatedButton(
onPressed: () {
context.read<LogoutBloc>().add(const LogoutEvent.logout());
},
child: const Text('Logout'),
),
),
],
),
),
);
}
}