basic login fix
This commit is contained in:
@@ -4,6 +4,8 @@ import 'package:flutter_dotenv/flutter_dotenv.dart';
|
|||||||
import 'package:gotrue/src/types/auth_state.dart';
|
import 'package:gotrue/src/types/auth_state.dart';
|
||||||
import 'package:supabase_flutter/supabase_flutter.dart';
|
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||||
|
|
||||||
|
import 'pages/dashboard_page.dart';
|
||||||
|
import 'pages/landing_page.dart';
|
||||||
import 'pages/login_page.dart';
|
import 'pages/login_page.dart';
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
@@ -12,20 +14,11 @@ void main() async {
|
|||||||
runApp(const MyApp());
|
runApp(const MyApp());
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyApp extends StatefulWidget {
|
class MyApp extends StatelessWidget {
|
||||||
const MyApp({super.key});
|
const MyApp({super.key});
|
||||||
|
|
||||||
@override
|
|
||||||
State<MyApp> createState() => _MyAppState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _MyAppState extends State<MyApp> {
|
|
||||||
bool isLoggedIn = false;
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
String initialRoute =
|
|
||||||
isLoggedIn ? LoginPage.routeName : LoginPage.routeName;
|
|
||||||
DbHelper.authChangeEventStream.listen(_onAuthEvent);
|
|
||||||
return MaterialApp(
|
return MaterialApp(
|
||||||
title: 'Briessenchecker',
|
title: 'Briessenchecker',
|
||||||
theme: ThemeData.dark(
|
theme: ThemeData.dark(
|
||||||
@@ -33,18 +26,12 @@ class _MyAppState extends State<MyApp> {
|
|||||||
).copyWith(
|
).copyWith(
|
||||||
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
|
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
|
||||||
),
|
),
|
||||||
initialRoute: initialRoute,
|
initialRoute: '/',
|
||||||
routes: {
|
routes: {
|
||||||
|
LandingPage.routeName: (context) => const LandingPage(),
|
||||||
LoginPage.routeName: (context) => const LoginPage(),
|
LoginPage.routeName: (context) => const LoginPage(),
|
||||||
|
DashboardPage.routeName: (context) => const DashboardPage(),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onAuthEvent(AuthState event) {
|
|
||||||
if (event.event == AuthChangeEvent.signedIn) {
|
|
||||||
setState(() => isLoggedIn = true);
|
|
||||||
} else if (event.event == AuthChangeEvent.signedOut) {
|
|
||||||
setState(() => isLoggedIn = false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
class MyWidget extends StatelessWidget {
|
class DashboardPage extends StatelessWidget {
|
||||||
const MyWidget({super.key});
|
const DashboardPage({super.key});
|
||||||
|
static const routeName = '/dashboard';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return const Placeholder();
|
return const Scaffold(
|
||||||
|
body: Text('Dash'),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
37
lib/pages/landing_page.dart
Normal file
37
lib/pages/landing_page.dart
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
import 'package:briessenchecker/pages/dashboard_page.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:supabase_flutter/supabase_flutter.dart';
|
||||||
|
|
||||||
|
import '../services/dbhelper.dart';
|
||||||
|
import 'login_page.dart';
|
||||||
|
|
||||||
|
class LandingPage extends StatefulWidget {
|
||||||
|
const LandingPage({super.key});
|
||||||
|
static const routeName = '/';
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<LandingPage> createState() => _LandingPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _LandingPageState extends State<LandingPage> {
|
||||||
|
bool _isLoggedIn = false;
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
DbHelper.authChangeEventStream.listen(_onAuthEvent);
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
if (_isLoggedIn) return const DashboardPage();
|
||||||
|
return const LoginPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
void _onAuthEvent(AuthState event) {
|
||||||
|
if (event.event == AuthChangeEvent.signedIn) {
|
||||||
|
setState(() => _isLoggedIn = true);
|
||||||
|
} else if (event.event == AuthChangeEvent.signedOut) {
|
||||||
|
setState(() => _isLoggedIn = false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user