supabase_result_handler 0.0.2
supabase_result_handler: ^0.0.2 copied to clipboard
A robust Result pattern wrapper for Supabase in Flutter. It handles Auth, Postgrest, and Functions exceptions with built-in English and Arabic localization support.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
import 'package:supabase_result_handler/supabase_result_handler.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Supabase.initialize(
url: 'https://your-project.supabase.co',
anonKey: 'your-anon-key',
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: const ExampleScreen(),
);
}
}
class ExampleScreen extends StatelessWidget {
const ExampleScreen({super.key});
Future<SupaResult<User>> mockLogin() async {
return SupaResult.catchError(() async {
final response = await Supabase.instance.client.auth.signInWithPassword(
email: 'test@example.com',
password: 'password123',
);
return response.user!;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('SupaResult Handler Example')),
body: Center(
child: ElevatedButton(
onPressed: () async {
final result = await mockLogin();
result.when(
success: (user) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Success: ${user.email}')),
);
},
failure: (exception) {
final errorMsg = exception.toErrorMessage(lang:AppLanguage.ar);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Error: $errorMsg')),
);
},
);
},
child: const Text('Try Login'),
),
),
);
}
}