2022-11-10 02:02:26 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2024-09-20 19:14:46 +00:00
|
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
2023-11-17 18:24:20 +00:00
|
|
|
import 'package:go_router/go_router.dart';
|
2023-05-10 15:21:33 +00:00
|
|
|
|
|
|
|
import '../controls/padding.dart';
|
|
|
|
import '../globals.dart';
|
2024-12-10 11:54:45 +00:00
|
|
|
import '../riverpod_controllers/account_services.dart';
|
2024-09-20 19:14:46 +00:00
|
|
|
import '../riverpod_controllers/status_service.dart';
|
2023-11-17 18:24:20 +00:00
|
|
|
import '../routes.dart';
|
2022-11-10 02:02:26 +00:00
|
|
|
|
2024-09-20 19:14:46 +00:00
|
|
|
class SplashScreen extends ConsumerWidget {
|
2023-10-31 01:44:16 +00:00
|
|
|
const SplashScreen({super.key});
|
|
|
|
|
2022-11-10 02:02:26 +00:00
|
|
|
@override
|
2024-09-20 19:14:46 +00:00
|
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
2024-12-10 11:54:45 +00:00
|
|
|
final initializing =
|
|
|
|
!ref.watch(accountServicesInitializerProvider.notifier).initialized;
|
|
|
|
final loggedIn = ref.watch(activeProfileProvider.notifier).hasActiveProfile;
|
|
|
|
if (!initializing && !loggedIn) {
|
2023-11-17 18:24:20 +00:00
|
|
|
context.pushNamed(ScreenPaths.signin);
|
|
|
|
}
|
|
|
|
|
2022-11-10 02:02:26 +00:00
|
|
|
return Scaffold(
|
|
|
|
body: Center(
|
|
|
|
child: Column(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
children: [
|
2025-01-19 22:28:11 +00:00
|
|
|
Image.asset('icon/raster/macos/app_icon_1024.png', width: 256),
|
2023-05-10 15:21:33 +00:00
|
|
|
const VerticalPadding(),
|
|
|
|
Text(
|
2024-06-20 22:48:08 +00:00
|
|
|
'Relatica $appVersion',
|
2023-05-10 15:21:33 +00:00
|
|
|
style: Theme.of(context).textTheme.headlineLarge,
|
|
|
|
),
|
|
|
|
const VerticalPadding(),
|
2024-12-10 11:54:45 +00:00
|
|
|
if (initializing) ...[
|
2023-05-10 15:21:33 +00:00
|
|
|
const CircularProgressIndicator(),
|
|
|
|
const VerticalPadding(),
|
|
|
|
const Text('Logging in accounts...'),
|
2023-11-17 18:24:20 +00:00
|
|
|
const VerticalPadding(),
|
2023-05-10 15:21:33 +00:00
|
|
|
],
|
2023-11-17 18:24:20 +00:00
|
|
|
Text(
|
2024-09-20 19:14:46 +00:00
|
|
|
ref.watch(statusServiceProvider),
|
2023-11-17 18:24:20 +00:00
|
|
|
softWrap: true,
|
|
|
|
textAlign: TextAlign.center,
|
|
|
|
),
|
2022-11-10 02:02:26 +00:00
|
|
|
],
|
|
|
|
)),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|