feat(01-07): update pages with password reset navigation and deep linking

- Updated login page to navigate to /reset-password instead of placeholder
- Added "Forgot Password?" link to signup page
- Enhanced reset password confirmation page to extract token/email from URL parameters
- Updated update password page to handle deep linking parameters
- Added deep linking support configuration in main.dart
- Improved router with URL parameter extraction helpers
This commit is contained in:
Dani B
2026-01-28 12:18:34 -05:00
parent 680ecdc0df
commit 53329c9eb8
5 changed files with 107 additions and 32 deletions

View File

@@ -1,12 +1,10 @@
import 'package:flutter/material.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'core/constants/supabase_constants.dart';
import 'core/router/app_router.dart';
import 'providers/auth_provider.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
@@ -26,16 +24,14 @@ void main() async {
debugPrint('Failed to initialize Supabase: $e');
}
runApp(const ProviderScope(child: SageApp()));
runApp(const SageApp());
}
class SageApp extends ConsumerWidget {
class SageApp extends StatelessWidget {
const SageApp({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final router = ref.watch(routerProvider);
Widget build(BuildContext context) {
return MaterialApp.router(
title: 'Sage - Food Inventory Tracker',
debugShowCheckedModeBanner: false,
@@ -43,7 +39,10 @@ class SageApp extends ConsumerWidget {
colorScheme: ColorScheme.fromSeed(seedColor: Colors.green),
useMaterial3: true,
),
routerConfig: router,
routerConfig: AppRouter.router,
// Configure deep linking for password reset
onGenerateTitle: (context) => 'Sage - Food Inventory Tracker',
);
builder: (context, child) {
// Set up error handling for the entire app
return ErrorBoundary(