Added working edit transaction

This commit is contained in:
Nathan Anderson
2023-07-22 21:29:32 -06:00
parent eba628bb4c
commit 18aad2b3d5
28 changed files with 1959 additions and 430 deletions
+84 -3
View File
@@ -1,9 +1,17 @@
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/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/styles.dart';
import 'package:rluv/global/utils.dart';
import 'package:rluv/global/widgets/drawer_button.dart';
void main() {
import 'global/store.dart';
void main() async {
final _ = Store().prefs;
runApp(const MyApp());
}
@@ -34,12 +42,70 @@ class Home extends ConsumerStatefulWidget {
}
class _HomeState extends ConsumerState<Home> {
Map<String, dynamic> initData = {};
final drawerColors = Styles.curatedColors;
@override
void initState() {
setDevicePortraitOrientation();
super.initState();
}
@override
Widget build(BuildContext context) {
if (ref.watch(currentHomePageProvider).toString() ==
"BudgetOverviewScreen") {
initData = {};
}
return Scaffold(
key: ref.read(scaffoldKeyProvider),
resizeToAvoidBottomInset: false,
drawer: const Drawer(
drawer: Drawer(
backgroundColor: Styles.purpleNurple,
child: SafeArea(
child: Column(
children: [
SizedBox(height: BuildMedia(context).height * 0.15),
CuteDrawerButton(
text: 'Budget',
color: drawerColors[4],
onPressed: () {
if (ref.read(currentHomePageProvider).toString() !=
"BudgetOverviewScreen") {
ref.read(currentHomePageProvider.notifier).state =
BudgetOverviewScreen(initialData: initData);
}
toggleDrawer();
},
),
CuteDrawerButton(
text: 'Notes',
color: drawerColors[5],
onPressed: () {
if (ref.read(currentHomePageProvider).toString() !=
"SharedNotesScreen") {
ref.read(currentHomePageProvider.notifier).state =
SharedNotesScreen(initialData: initData);
}
toggleDrawer();
},
),
const Spacer(),
CuteDrawerButton(
text: 'Settings',
color: drawerColors[0],
onPressed: () {
if (ref.read(currentHomePageProvider).toString() !=
"SettingsScreen") {
ref.read(currentHomePageProvider.notifier).state =
const SettingsScreen();
}
toggleDrawer();
},
),
const SizedBox(height: 24),
],
),
),
),
appBar: AppBar(
backgroundColor: Styles.purpleNurple,
@@ -50,10 +116,23 @@ class _HomeState extends ConsumerState<Home> {
body: ref.watch(currentHomePageProvider),
);
}
toggleDrawer() async {
final key = ref.read(scaffoldKeyProvider);
if (key.currentState != null && key.currentState!.isDrawerOpen) {
key.currentState!.openEndDrawer();
} else if (key.currentState != null) {
key.currentState!.openDrawer();
}
}
}
final scaffoldKeyProvider = Provider<GlobalKey<ScaffoldState>>(
(ref) => GlobalKey<ScaffoldState>(),
);
final currentHomePageProvider = StateProvider<Widget>(
(ref) => const BudgetOverviewScreen(),
(ref) => const BudgetOverviewScreen(initialData: {}),
);
final appBarTitleProvider = Provider<String>(
@@ -62,6 +141,8 @@ final appBarTitleProvider = Provider<String>(
switch (currentPageName) {
case 'BudgetOverviewScreen':
return 'Budget';
case 'SharedNotesScreen':
return 'Notes';
default:
return '';
}