Working auth and added shared notes
This commit is contained in:
+62
-17
@@ -1,34 +1,57 @@
|
||||
import 'package:animated_splash_screen/animated_splash_screen.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:helpers/helpers/misc_build/build_media.dart';
|
||||
import 'package:rluv/features/account/account_create_screen.dart';
|
||||
import 'package:rluv/features/budget/screens/budget_overview.dart';
|
||||
import 'package:rluv/features/notes/screens/notes_screen.dart';
|
||||
import 'package:rluv/features/settings/screens/settings_screen.dart';
|
||||
import 'package:rluv/global/store.dart';
|
||||
import 'package:rluv/global/styles.dart';
|
||||
import 'package:rluv/global/utils.dart';
|
||||
import 'package:rluv/global/widgets/drawer_button.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'global/store.dart';
|
||||
import 'global/api.dart';
|
||||
import 'global/widgets/ui_button.dart';
|
||||
|
||||
void main() async {
|
||||
final _ = Store().prefs;
|
||||
runApp(const MyApp());
|
||||
// await Api().loadToken();
|
||||
runApp(const ProviderScope(child: MyApp()));
|
||||
}
|
||||
|
||||
class MyApp extends StatelessWidget {
|
||||
class MyApp extends ConsumerStatefulWidget {
|
||||
const MyApp({super.key});
|
||||
|
||||
@override
|
||||
ConsumerState<MyApp> createState() => _MyAppState();
|
||||
}
|
||||
|
||||
class _MyAppState extends ConsumerState<MyApp> {
|
||||
// This widget is the root of your application.
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ProviderScope(
|
||||
child: MaterialApp(
|
||||
debugShowCheckedModeBanner: false,
|
||||
title: 'Flutter Demo',
|
||||
theme: ThemeData(
|
||||
primarySwatch: Colors.blue,
|
||||
),
|
||||
home: const Home(),
|
||||
return MaterialApp(
|
||||
scaffoldMessengerKey: ref.read(scaffoldMessengerKeyProvider),
|
||||
debugShowCheckedModeBanner: false,
|
||||
theme: ThemeData(
|
||||
primarySwatch: Colors.blue,
|
||||
),
|
||||
home: AnimatedSplashScreen.withScreenFunction(
|
||||
curve: Curves.easeInOutCubic,
|
||||
splashTransition: SplashTransition.scaleTransition,
|
||||
splashIconSize: 200,
|
||||
splash: Image.asset('assets/splash_icon.png'),
|
||||
backgroundColor: Styles.purpleNurple,
|
||||
duration: 1,
|
||||
screenFunction: () async {
|
||||
final prefs = await SharedPreferences.getInstance();
|
||||
ref.read(prefsProvider.notifier).state = prefs;
|
||||
Widget nextScreen = const AccountCreateScreen();
|
||||
if (ref.read(tokenProvider) != null) {
|
||||
nextScreen = const Home();
|
||||
}
|
||||
return nextScreen;
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -47,11 +70,29 @@ class _HomeState extends ConsumerState<Home> {
|
||||
@override
|
||||
void initState() {
|
||||
setDevicePortraitOrientation();
|
||||
if (!ref.read(loadingStateProvider)) {
|
||||
ref.read(dashboardProvider.notifier).fetchDashboard();
|
||||
}
|
||||
WidgetsBinding.instance.addPostFrameCallback(
|
||||
(_) {
|
||||
ref.read(currentHomePageProvider.notifier).state =
|
||||
const BudgetOverviewScreen(initialData: {});
|
||||
},
|
||||
);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (ref.watch(tokenProvider) == null) {
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
Navigator.pushAndRemoveUntil(
|
||||
context,
|
||||
MaterialPageRoute(builder: (ctx) => const AccountCreateScreen()),
|
||||
(r) => false,
|
||||
);
|
||||
});
|
||||
}
|
||||
if (ref.watch(currentHomePageProvider).toString() ==
|
||||
"BudgetOverviewScreen") {
|
||||
initData = {};
|
||||
@@ -65,7 +106,7 @@ class _HomeState extends ConsumerState<Home> {
|
||||
child: Column(
|
||||
children: [
|
||||
SizedBox(height: BuildMedia(context).height * 0.15),
|
||||
CuteDrawerButton(
|
||||
UiButton(
|
||||
text: 'Budget',
|
||||
color: drawerColors[4],
|
||||
onPressed: () {
|
||||
@@ -77,7 +118,7 @@ class _HomeState extends ConsumerState<Home> {
|
||||
toggleDrawer();
|
||||
},
|
||||
),
|
||||
CuteDrawerButton(
|
||||
UiButton(
|
||||
text: 'Notes',
|
||||
color: drawerColors[5],
|
||||
onPressed: () {
|
||||
@@ -90,7 +131,7 @@ class _HomeState extends ConsumerState<Home> {
|
||||
},
|
||||
),
|
||||
const Spacer(),
|
||||
CuteDrawerButton(
|
||||
UiButton(
|
||||
text: 'Settings',
|
||||
color: drawerColors[0],
|
||||
onPressed: () {
|
||||
@@ -132,7 +173,7 @@ final scaffoldKeyProvider = Provider<GlobalKey<ScaffoldState>>(
|
||||
);
|
||||
|
||||
final currentHomePageProvider = StateProvider<Widget>(
|
||||
(ref) => const BudgetOverviewScreen(initialData: {}),
|
||||
(ref) => Container(),
|
||||
);
|
||||
|
||||
final appBarTitleProvider = Provider<String>(
|
||||
@@ -148,3 +189,7 @@ final appBarTitleProvider = Provider<String>(
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
final scaffoldMessengerKeyProvider =
|
||||
Provider<GlobalKey<ScaffoldMessengerState>>(
|
||||
(ref) => GlobalKey<ScaffoldMessengerState>());
|
||||
|
||||
Reference in New Issue
Block a user