Files
rely/lib/main.dart
T
2026-02-15 23:58:12 +01:00

42 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:relationship_saver/core/config/app_theme.dart';
import 'package:relationship_saver/features/auth/session_controller.dart';
import 'package:relationship_saver/features/auth/sign_in_view.dart';
import 'package:relationship_saver/features/home/app_shell.dart';
import 'package:relationship_saver/features/reminders/scheduling/reminder_notification_listener.dart';
import 'package:relationship_saver/features/sync/sync_background_runner.dart';
import 'package:relationship_saver/integrations/backend/models/backend_models.dart';
void main() {
runApp(const ProviderScope(child: RelationshipSaverApp()));
}
class RelationshipSaverApp extends ConsumerWidget {
const RelationshipSaverApp({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final AsyncValue<AuthSession?> sessionState = ref.watch(
sessionControllerProvider,
);
return MaterialApp(
title: 'Relationship Saver',
debugShowCheckedModeBanner: false,
theme: AppTheme.light(),
home: Scaffold(
body: sessionState.when(
data: (session) => session == null
? const SignInView()
: const ReminderNotificationListener(
child: SyncBackgroundRunner(child: AppShell()),
),
loading: () => const Center(child: CircularProgressIndicator()),
error: (Object error, StackTrace stackTrace) => const SignInView(),
),
),
);
}
}