pharmacy_mobile/lib/auth/auth_gate.dart
2025-02-17 17:08:14 +08:00

43 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:pharmacy_mobile/auth/auth_service.dart';
import 'package:pharmacy_mobile/pages/customer_page.dart';
import 'package:pharmacy_mobile/pages/index_page.dart';
import 'package:pharmacy_mobile/pages/main_page.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
class AuthGate extends StatelessWidget {
const AuthGate({super.key});
@override
Widget build(BuildContext context) {
final authService = AuthService();
return StreamBuilder(
stream: Supabase.instance.client.auth.onAuthStateChange,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Scaffold(
body: Center(
child: CircularProgressIndicator(
color: Colors.green,
),
),
);
}
final session = snapshot.hasData ? snapshot.data!.session : null;
if (session != null) {
final user = authService.getCurrentUser();
if (user != null && user.contains('admin')) {
return const MainPage();
} else {
return const CustomerPage();
}
} else {
return const IndexPage();
}
});
}
}