entrig 0.0.2-beta copy "entrig: ^0.0.2-beta" to clipboard
entrig: ^0.0.2-beta copied to clipboard

Entrig Plugin

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:entrig/entrig.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
import 'screens/sign_in_screen.dart';
import 'screens/groups_list_screen.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await dotenv.load();

  await Supabase.initialize(
    url: dotenv.env['SUPABASE_URL']!,
    anonKey: dotenv.env['SUPABASE_ANON_KEY']!,
  );

  await Entrig.init(
    apiKey: dotenv.env['ENTRIG_API_KEY']!,
    autoRegisterWithSupabaseAuth: AutoRegisterWithSupabaseAuth(
      supabaseClient: Supabase.instance.client,
    ),
  );

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Group Chat Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
        useMaterial3: true,
      ),
      home: const AuthWrapper(),
    );
  }
}

class AuthWrapper extends StatelessWidget {
  const AuthWrapper({super.key});

  @override
  Widget build(BuildContext context) {
    return Builder(
      builder: (context) {
        if (Supabase.instance.client.auth.currentUser != null) {
          return const HomeScreen();
        }
        return const SignInScreen();
      },
    );
  }
}