From a56ed928635aa929a441ecf3292a25b8c489143d Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Thu, 27 Feb 2025 12:40:53 +0800 Subject: [PATCH] update --- assets/pat-alcala_logo.webp | Bin 0 -> 7574 bytes lib/pages/index_page.dart | 92 ++++++++++++--------- lib/pages/login_page.dart | 12 --- lib/pages/main_page.dart | 148 +++++++++++++++++----------------- lib/widgets/image_widget.dart | 0 pubspec.yaml | 1 + 6 files changed, 128 insertions(+), 125 deletions(-) create mode 100644 assets/pat-alcala_logo.webp create mode 100644 lib/widgets/image_widget.dart diff --git a/assets/pat-alcala_logo.webp b/assets/pat-alcala_logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..7cdaf5eab49d54d711ba0f5ced03077b1d8fef3c GIT binary patch literal 7574 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 P3N>)DuCSlwzw& { bool _isLoading = false; void _signIn() async { - // if (_isLoading) return; - final email = _emailController.text; final password = _passwordController.text; @@ -81,7 +76,6 @@ class _LoginPageState extends State { final errorMessage = e.message; if (mounted) { - // showNotification(context, 'Error: $errorMessage', false); if (errorMessage == 'Invalid login credentials') { showNotification(context, 'Error: Invalid Email or Password', false); } @@ -90,12 +84,6 @@ class _LoginPageState extends State { } finally { setState(() => _isLoading = false); } - - // if (mounted) { - // context.showSnackBar('Check your email for a login link!'); - - // _emailController.clear(); - // } } @override diff --git a/lib/pages/main_page.dart b/lib/pages/main_page.dart index ced04f5..8efec0e 100644 --- a/lib/pages/main_page.dart +++ b/lib/pages/main_page.dart @@ -32,83 +32,81 @@ class _MainPageState extends State { canPop: false, child: Scaffold( resizeToAvoidBottomInset: false, - body: PullRefreshWidget( - child: SingleChildScrollView( - child: PageBackgroundWidget( - height: MediaQuery.of(context).size.height + 400, - page: 'menu', - child: Center( - child: Column( - children: [ - const Gap(96), - const TitleWidget( - firstTextSize: 14, - secondTextSize: 24, - logoSize: 90, - ), - const Gap(32), - const TextWidget( - text: 'Menu', - title: true, - ), - const Gap(16), - MenuWidget( + body: SingleChildScrollView( + child: PageBackgroundWidget( + height: MediaQuery.of(context).size.height + 400, + page: 'menu', + child: Center( + child: Column( + children: [ + const Gap(96), + const TitleWidget( + firstTextSize: 14, + secondTextSize: 24, + logoSize: 90, + ), + const Gap(32), + const TextWidget( + text: 'Menu', + title: true, + ), + const Gap(16), + MenuWidget( + icon: FontAwesomeIcons.circlePlus, + text: 'Add Type', + description: 'Create a new medical type', + onPressed: () => {context.push('/addtype')}, + color: 'blue', + ), + const Gap(16), + MenuWidget( + icon: FontAwesomeIcons.circlePlus, + text: 'Add Category', + description: 'Create a new medicine category', + onPressed: () => {context.push('/addcategory')}, + color: 'blue', + ), + const Gap(16), + MenuWidget( icon: FontAwesomeIcons.circlePlus, - text: 'Add Type', - description: 'Create a new medical type', - onPressed: () => {context.push('/addtype')}, - color: 'blue', - ), - const Gap(16), - MenuWidget( + text: 'Add Generics', + description: 'Add generic name on the list', + onPressed: () => {context.push('/addgenerics')}, + color: 'blue'), + const Gap(32), + MenuWidget( icon: FontAwesomeIcons.circlePlus, - text: 'Add Category', - description: 'Create a new medicine category', - onPressed: () => {context.push('/addcategory')}, - color: 'blue', - ), - const Gap(16), - MenuWidget( - icon: FontAwesomeIcons.circlePlus, - text: 'Add Generics', - description: 'Add generic name on the list', - onPressed: () => {context.push('/addgenerics')}, - color: 'blue'), - const Gap(32), - MenuWidget( - icon: FontAwesomeIcons.circlePlus, - text: 'Add Medicine', - description: 'Add generic name on the list', - onPressed: () => {context.push('/addmedicines')}, - color: 'green'), - const Gap(16), - MenuWidget( - icon: FontAwesomeIcons.circlePlus, - text: 'Add Stock', - description: 'Add generic name on the list', - onPressed: () => {context.push('/addstock')}, - color: 'green'), - const Gap(32), - MenuWidget( - icon: Icons.delete, - text: 'Remove Stock', - description: 'Add generic name on the list', - onPressed: () => {context.push('/deletestock')}, - color: 'red'), - const Gap(32), - MenuWidget( - icon: FontAwesomeIcons.listCheck, - text: 'List of Stocks', - description: 'Add generic name on the list', - onPressed: () => {context.push('/liststocks')}, - color: 'yellow'), - const Gap(40), - ButtonWidget( - text: 'Logout', - onPressed: signOut, - ) - ], - ), + text: 'Add Medicine', + description: 'Add generic name on the list', + onPressed: () => {context.push('/addmedicines')}, + color: 'green'), + const Gap(16), + MenuWidget( + icon: FontAwesomeIcons.circlePlus, + text: 'Add Stock', + description: 'Add generic name on the list', + onPressed: () => {context.push('/addstock')}, + color: 'green'), + const Gap(32), + MenuWidget( + icon: Icons.delete, + text: 'Remove Stock', + description: 'Add generic name on the list', + onPressed: () => {context.push('/deletestock')}, + color: 'red'), + const Gap(32), + MenuWidget( + icon: FontAwesomeIcons.listCheck, + text: 'List of Stocks', + description: 'Add generic name on the list', + onPressed: () => {context.push('/liststocks')}, + color: 'yellow'), + const Gap(40), + ButtonWidget( + text: 'Logout', + onPressed: signOut, + ) + ], ), ), ), diff --git a/lib/widgets/image_widget.dart b/lib/widgets/image_widget.dart new file mode 100644 index 0000000..e69de29 diff --git a/pubspec.yaml b/pubspec.yaml index b01390d..d61d8c5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -53,3 +53,4 @@ flutter: - assets/php_logo.webp - assets/images/ofelia.webp - assets/images/pamela.webp + - assets/pat-alcala_logo.webp