From 7749f1100dff392f0ba9609494292968b6d8998a Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Thu, 6 Mar 2025 11:55:42 +0800 Subject: [PATCH] update --- .../arm64-v8a/configure_fingerprint.bin | 24 +-- .../armeabi-v7a/configure_fingerprint.bin | 24 +-- .../k6q1g3c4/x86/configure_fingerprint.bin | 24 +-- .../k6q1g3c4/x86_64/configure_fingerprint.bin | 24 +-- lib/pages/add_category_page.dart | 3 +- lib/pages/add_generics_page.dart | 3 +- lib/pages/add_manufacturer.dart | 7 +- lib/pages/add_medicine_page.dart | 5 +- lib/pages/add_stock_page.dart | 3 +- lib/pages/add_type_page.dart | 3 +- lib/pages/delete_stock_page.dart | 3 +- lib/pages/login_page.dart | 27 +-- lib/pages/register_page.dart | 149 +++++++------- .../customized_pub/glossy_container.dart | 184 ++++++++++++++++++ lib/widgets/glossy_container_widget.dart | 10 +- lib/widgets/input_form_widget.dart | 60 ++++++ lib/widgets/input_widget.dart | 16 +- pubspec.lock | 90 ++++----- pubspec.yaml | 5 +- 19 files changed, 447 insertions(+), 217 deletions(-) create mode 100644 lib/widgets/customized_pub/glossy_container.dart create mode 100644 lib/widgets/input_form_widget.dart diff --git a/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin index 1d87a76..8a104e2 100644 --- a/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logz x v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2w +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2w u -s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build.json  2 Ǖ2| +s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build.json  2 Ǖ2| z -x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build_mini.json  2 򕂎2i +x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build_mini.json  2 򕂎2i g -e/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja  2 2m +e/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja  2 2m k -i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja.txt  2r +i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja.txt  2r p -n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build_file_index.txt  2 ^ 2s +n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build_file_index.txt  2 ^ 2s q -o/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json  2w +o/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json  2w u -s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json.bin  2 } +s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json.bin  2 } { -y/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/metadata_generation_command.txt  2 +y/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/metadata_generation_command.txt  2  2p n -l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/prefab_config.json  2  ( 2u +l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/prefab_config.json  2  ( 2u s -q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/symbol_folder_index.txt  2  h 2b +q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/symbol_folder_index.txt  2  h 2b ` -^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file +^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin index 23dfed3..cb3e68c 100644 --- a/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log| z x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2y +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2y w -u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build.json  2 2~ +u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build.json  2 2~ | -z/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build_mini.json  2 2k +z/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build_mini.json  2 2k i -g/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja  2 2o +g/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja  2 2o m -k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja.txt  2t +k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja.txt  2t r -p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build_file_index.txt  2 ^ 2u +p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build_file_index.txt  2 ^ 2u s -q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json  2y +q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json  2y w -u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json.bin  2  +u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json.bin  2  } -{/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/metadata_generation_command.txt  2 +{/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/metadata_generation_command.txt  2  2r p -n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/prefab_config.json  2  ( 2w +n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/prefab_config.json  2  ( 2w u -s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/symbol_folder_index.txt  2  j 2b +s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/symbol_folder_index.txt  2  j 2b ` -^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file +^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin index b136a8c..5a75711 100644 --- a/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logt r p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  䳩2  2q +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2q o -m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build.json  䳩2 2v +m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build.json  2 2v t -r/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build_mini.json  䳩2 2c +r/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build_mini.json  2 2c a -_/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja  䳩2 2g +_/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja  2 2g e -c/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja.txt  峩2l +c/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja.txt  2l j -h/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build_file_index.txt  峩2 ^ 2m +h/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build_file_index.txt  2 ^ 2m k -i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json  峩2q +i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json  2q o -m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json.bin  峩2 w +m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json.bin  2 w u -s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/metadata_generation_command.txt  峩2 +s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/metadata_generation_command.txt  2  2j h -f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/prefab_config.json  峩2  ( 2o +f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/prefab_config.json  2  ( 2o m -k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/symbol_folder_index.txt  峩2  b 2b +k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/symbol_folder_index.txt  2  b 2b ` -^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  峩2  ȼ2 \ No newline at end of file +^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin index 8a8fd73..a462a68 100644 --- a/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logw u s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2t +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2t r -p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build.json  2 2y +p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build.json  2 2y w -u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build_mini.json  2 2f +u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build_mini.json  2 2f d -b/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja  2 2j +b/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja  2 2j h -f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja.txt  2o +f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja.txt  2o m -k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build_file_index.txt  2 ^ 2p +k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build_file_index.txt  2 ^ 2p n -l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json  2t +l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json  2t r -p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json.bin  2 z +p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json.bin  2 z x -v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/metadata_generation_command.txt  2 +v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/metadata_generation_command.txt  2  2m k -i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/prefab_config.json  2  ( 2r +i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/prefab_config.json  2  ( 2r p -n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/symbol_folder_index.txt  2  e 2b +n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/symbol_folder_index.txt  2  e 2b ` -^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file +^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file diff --git a/lib/pages/add_category_page.dart b/lib/pages/add_category_page.dart index 46566a2..1faa73a 100644 --- a/lib/pages/add_category_page.dart +++ b/lib/pages/add_category_page.dart @@ -5,6 +5,7 @@ import 'package:pharmacy_mobile/functions/checkexisting_function.dart'; import 'package:pharmacy_mobile/tables/ref_categories.dart'; import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart'; import 'package:pharmacy_mobile/widgets/form_border_widget2.dart'; +import 'package:pharmacy_mobile/widgets/input_form_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; @@ -92,7 +93,7 @@ class _AddCategoryPageState extends State { child: Center( child: Column( children: [ - InputWidget(label: 'Category Name', controller: _categoryController), + InputFormWidget(label: 'Category Name', controller: _categoryController), const Gap(32), // if (_isLoading) // const Center(child: CircularProgressIndicator(color: Colors.white)) diff --git a/lib/pages/add_generics_page.dart b/lib/pages/add_generics_page.dart index a923145..e3b4072 100644 --- a/lib/pages/add_generics_page.dart +++ b/lib/pages/add_generics_page.dart @@ -8,6 +8,7 @@ import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart'; import 'package:pharmacy_mobile/widgets/dropdown_widget.dart'; import 'package:pharmacy_mobile/widgets/dropdown_wrappermulti_widget.dart'; import 'package:pharmacy_mobile/widgets/form_border_widget2.dart'; +import 'package:pharmacy_mobile/widgets/input_form_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; @@ -157,7 +158,7 @@ class _AddGenericsPageState extends State { child: DropdownWrapperMultiWidget(list: _categoryList, text: 'List', children: [ Column( children: [ - InputWidget(label: 'Name', controller: _nameController), + InputFormWidget(label: 'Name', controller: _nameController), const Gap(16), DropDownWidget( label: 'Category', diff --git a/lib/pages/add_manufacturer.dart b/lib/pages/add_manufacturer.dart index 7b9145c..a981d9c 100644 --- a/lib/pages/add_manufacturer.dart +++ b/lib/pages/add_manufacturer.dart @@ -7,6 +7,7 @@ import 'package:pharmacy_mobile/tables/ref_manufactorers.dart'; import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart'; import 'package:pharmacy_mobile/widgets/form_border_widget2.dart'; +import 'package:pharmacy_mobile/widgets/input_form_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; @@ -87,7 +88,7 @@ class _AddManufactorerPageState extends State { ), const Gap(32), const TextWidget( - text: 'Add Manufactorer', + text: 'Add Manufacturer', title: true, ), const Gap(16), @@ -97,9 +98,9 @@ class _AddManufactorerPageState extends State { key: _formKey, child: Column( children: [ - InputWidget(label: 'Name', controller: _nameController), + InputFormWidget(label: 'Name', controller: _nameController), const Gap(16), - InputWidget(label: 'Address', controller: _addressController), + InputFormWidget(label: 'Address', controller: _addressController), const Gap(32), // if (_isLoading) // const Center(child: CircularProgressIndicator(color: Colors.white)) diff --git a/lib/pages/add_medicine_page.dart b/lib/pages/add_medicine_page.dart index a0afe4a..2ef494c 100644 --- a/lib/pages/add_medicine_page.dart +++ b/lib/pages/add_medicine_page.dart @@ -17,6 +17,7 @@ import 'package:pharmacy_mobile/widgets/dropdown_widget.dart'; import 'package:pharmacy_mobile/widgets/dropdown_wrappermulti_widget.dart'; import 'package:pharmacy_mobile/widgets/form_border_widget2.dart'; import 'package:pharmacy_mobile/widgets/image_widget.dart'; +import 'package:pharmacy_mobile/widgets/input_form_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/scanbarcode_widget.dart'; @@ -243,7 +244,7 @@ class _AddMedicinePageState extends State { key: _formKey, child: DropdownWrapperMultiWidget(list: _genericNameList, text: 'Data', children: [ Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ - InputWidget(label: 'Name', controller: _nameController), + InputFormWidget(label: 'Name', controller: _nameController), const Gap(16), DropDownWidget( label: 'Generic Name', @@ -271,7 +272,7 @@ class _AddMedicinePageState extends State { onChanged: _updateManufactorer, ), const Gap(16), - InputWidget(label: 'Barcode', controller: _barcodeController), + InputFormWidget(label: 'Barcode', controller: _barcodeController), ScanbarcodeWidget(onTap: _scanBarcode), const Gap(16), if (imageUrl.isNotEmpty) diff --git a/lib/pages/add_stock_page.dart b/lib/pages/add_stock_page.dart index e95f068..17cf949 100644 --- a/lib/pages/add_stock_page.dart +++ b/lib/pages/add_stock_page.dart @@ -12,6 +12,7 @@ import 'package:pharmacy_mobile/widgets/datepicker_widget.dart'; import 'package:pharmacy_mobile/widgets/dropdown_widget.dart'; import 'package:pharmacy_mobile/widgets/dropdown_wrappermulti_widget.dart'; import 'package:pharmacy_mobile/widgets/form_border_widget2.dart'; +import 'package:pharmacy_mobile/widgets/input_form_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; @@ -196,7 +197,7 @@ class _AddStockPageState extends State with WidgetsBindingObserver ], ), const Gap(16), - InputWidget(label: 'Quantity', controller: _quantityController), + InputFormWidget(label: 'Quantity', controller: _quantityController), const Gap(16), DatePickerWidget( label: 'Date Expiration', diff --git a/lib/pages/add_type_page.dart b/lib/pages/add_type_page.dart index 77a3d7f..6a25199 100644 --- a/lib/pages/add_type_page.dart +++ b/lib/pages/add_type_page.dart @@ -6,6 +6,7 @@ import 'package:pharmacy_mobile/tables/ref_types.dart'; import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart'; import 'package:pharmacy_mobile/widgets/form_border_widget2.dart'; +import 'package:pharmacy_mobile/widgets/input_form_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; @@ -96,7 +97,7 @@ class _AddTypePageState extends State { child: Center( child: Column( children: [ - InputWidget(label: 'Type Name', controller: _typeController), + InputFormWidget(label: 'Type Name', controller: _typeController), const Gap(32), // if (_isLoading) // const Center(child: CircularProgressIndicator(color: Colors.white)) diff --git a/lib/pages/delete_stock_page.dart b/lib/pages/delete_stock_page.dart index 5c37d00..c395fd0 100644 --- a/lib/pages/delete_stock_page.dart +++ b/lib/pages/delete_stock_page.dart @@ -6,6 +6,7 @@ import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/dropdown_widget.dart'; import 'package:pharmacy_mobile/widgets/dropdown_wrappermulti_widget.dart'; import 'package:pharmacy_mobile/widgets/form_border_widget2.dart'; +import 'package:pharmacy_mobile/widgets/input_form_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; @@ -145,7 +146,7 @@ class _DeleteStockPageState extends State { // value: _selectedStock, ), const Gap(16), - InputWidget(label: 'Quantity', controller: _quantityController, onChanged: _setQuantity), + InputFormWidget(label: 'Quantity', controller: _quantityController, onChanged: _setQuantity), const Gap(32), if (_noStock) const WarningWidget( diff --git a/lib/pages/login_page.dart b/lib/pages/login_page.dart index 9a4de43..83dd961 100644 --- a/lib/pages/login_page.dart +++ b/lib/pages/login_page.dart @@ -1,12 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; -import 'package:glossy/glossy.dart'; import 'package:go_router/go_router.dart'; import 'package:gap/gap.dart'; import 'package:pharmacy_mobile/auth/auth_service.dart'; import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart'; import 'package:pharmacy_mobile/widgets/glossy_container_widget.dart'; -import 'package:pharmacy_mobile/widgets/input_widget.dart'; +import 'package:pharmacy_mobile/widgets/input_form_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; import 'package:pharmacy_mobile/widgets/text_widget.dart'; @@ -128,28 +126,23 @@ class _LoginPageState extends State { Padding( padding: const EdgeInsets.only(left: 32, right: 32), child: GlossyContainerWidget( - height: containerHeight, + // height: containerHeight, child: Form( child: Column( children: [ - InputWidget(label: 'Email', controller: _emailController), + InputFormWidget(label: 'Email', controller: _emailController), const Gap(16), - KeyboardListener( - focusNode: _focusNode, - onKeyEvent: (event) { - if (event is KeyDownEvent && event.logicalKey == LogicalKeyboardKey.enter) { - _signIn(); - } + InputFormWidget( + label: 'Password', + controller: _passwordController, + password: true, + onSubmitted: (String password) { + _signIn(); }, - child: InputWidget( - label: 'Password', - controller: _passwordController, - password: true, - ), ), const Gap(40), ButtonWithProgressWidget( - trigger: _isLoading, progressText: 'Logging In', buttonText: 'Login', onPressed: _signIn) + trigger: _isLoading, progressText: 'Logging In', buttonText: 'Login', onPressed: _signIn), ], )), ), diff --git a/lib/pages/register_page.dart b/lib/pages/register_page.dart index 31b7828..a1e6951 100644 --- a/lib/pages/register_page.dart +++ b/lib/pages/register_page.dart @@ -1,11 +1,10 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; -import 'package:glossy/glossy.dart'; import 'package:internet_connection_checker/internet_connection_checker.dart'; import 'package:pharmacy_mobile/auth/auth_service.dart'; import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart'; import 'package:pharmacy_mobile/widgets/glossy_container_widget.dart'; -import 'package:pharmacy_mobile/widgets/input_widget.dart'; +import 'package:pharmacy_mobile/widgets/input_form_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; import 'package:pharmacy_mobile/widgets/text_widget.dart'; @@ -108,81 +107,77 @@ class _RegisterPageState extends State { @override Widget build(BuildContext context) { return Scaffold( - body: PageBackgroundWidget( - page: 'register', - child: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - const Gap(96), - const TitleWidget( - firstTextSize: 14, - secondTextSize: 24, - logoSize: 90, - ), - const Gap(32), - const TextWidget( - text: 'Register', - title: true, - ), - const Gap(16), - Padding( - padding: const EdgeInsets.only(left: 32, right: 32), - child: GlossyContainerWidget( - height: containerHeight, - child: Form( - child: Column( - children: [ - InputWidget(label: 'Email', controller: _emailController), - const Gap(16), - InputWidget( - label: 'Password', - controller: _passwordController, - password: true, - ), - const Gap(16), - InputWidget( - label: 'Confirm Password', - controller: _confirmPasswordController, - password: true, - ), - const Gap(40), - // TextButton(onPressed: () => {_signIn()}, child: const Text('Login')) - // if (_isLoading) - // const Center(child: CircularProgressIndicator(color: Colors.white)) - // else - // ButtonWidget(text: 'Create Account', onPressed: _signUp) - ButtonWithProgressWidget( - trigger: _isLoading, - progressText: 'Registering', - buttonText: 'Register', - onPressed: _signUp) - ], - )), - ), - ), - const Gap(16), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const TextWidget( - text: "Already have an account?", - size: 14, - ), - const Gap(8), - GestureDetector( - onTap: () => {context.push('/login')}, - child: const TextWidget( - text: 'Login here', - size: 14, - underlined: true, + body: PageBackgroundWidget( + page: 'register', + child: Center( + child: Column(mainAxisAlignment: MainAxisAlignment.start, children: [ + const Gap(96), + const TitleWidget( + firstTextSize: 14, + secondTextSize: 24, + logoSize: 90, + ), + const Gap(32), + const TextWidget( + text: 'Register', + title: true, + ), + const Gap(16), + Padding( + padding: const EdgeInsets.only(left: 32, right: 32), + child: GlossyContainerWidget( + // height: containerHeight, + child: Form( + child: Column( + children: [ + InputFormWidget(label: 'Email', controller: _emailController), + const Gap(16), + InputFormWidget( + label: 'Password', + controller: _passwordController, + password: true, + validator: (value) { + if (value == null || value.isEmpty) { + showNotification(context, 'Error: Please enter a password', false); + } + return null; + }, ), - ) - ], - ) - ], - ), - )), - ); + const Gap(16), + InputFormWidget( + label: 'Confirm Password', + controller: _confirmPasswordController, + password: true, + onSubmitted: (String? password) { + _signUp(); + }, + ), + const Gap(40), + ButtonWithProgressWidget( + trigger: _isLoading, progressText: 'Registering', buttonText: 'Register', onPressed: _signUp) + ], + )), + ), + ), + const Gap(16), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const TextWidget( + text: "Already have an account?", + size: 14, + ), + const Gap(8), + GestureDetector( + onTap: () => {context.push('/login')}, + child: const TextWidget( + text: 'Login here', + size: 14, + underlined: true, + ), + ) + ], + ) + ])))); } } diff --git a/lib/widgets/customized_pub/glossy_container.dart b/lib/widgets/customized_pub/glossy_container.dart new file mode 100644 index 0000000..601044b --- /dev/null +++ b/lib/widgets/customized_pub/glossy_container.dart @@ -0,0 +1,184 @@ +import 'dart:ui'; +import 'package:flutter/material.dart'; + +class GlossyContainer extends StatelessWidget { + // final double? height; // Height of the container + final double width; // Width of the container + final BorderRadiusGeometry? borderRadius; // Border radius of the container + final Color? color; // Background color of the container + final double? opacity; // Opacity of the container + final Widget? child; // Child widget inside the container + final double? strengthX; // Strength of blur in the horizontal direction + final double? strengthY; // Strength of blur in the vertical direction + final BoxBorder? border; // Border of the container + final BlendMode? blendMode; // Blend mode for applying filter + final GlossyGradient? gradient; // Gradient of the container + final List? boxShadow; // Box shadows for the container + final DecorationImage? image; // Background image of the container + final double? imageOpacity; + final EdgeInsets? padding; + final EdgeInsets? margin; + + const GlossyContainer( + {super.key, + // this.height, + required this.width, + this.margin, + this.padding, + this.opacity, + this.strengthX, + this.strengthY, + this.borderRadius, + this.border, + this.color, + this.blendMode, + this.gradient, + this.child, + this.image, + this.imageOpacity, + this.boxShadow}); + + @override + Widget build(BuildContext context) { + late Gradient gradientToApply; // Gradient to apply based on the type + + // Check if the gradient is linear + if (gradient is GlossyLinearGradient) { + final GlossyLinearGradient glg = gradient as GlossyLinearGradient; + gradientToApply = glg.getLinearGradient(); // Get the linear gradient + } + // Check if the gradient is radial + if (gradient is GlossyRadialGradient) { + final GlossyRadialGradient glg = gradient as GlossyRadialGradient; + gradientToApply = glg.getRadialGradient(); // Get the radial gradient + } + + return Container( + decoration: BoxDecoration( + boxShadow: boxShadow, // Apply box shadows + borderRadius: borderRadius, // Apply border radius + ), + child: ClipRRect( + borderRadius: borderRadius == null ? BorderRadius.circular(0) : borderRadius!, + child: Container( + // height: height, + width: width, + margin: margin, + padding: padding, + color: Colors.transparent, + child: Stack(children: [ + // Apply backdrop filter for blurring effect + BackdropFilter( + blendMode: blendMode != null ? blendMode! : BlendMode.srcOver, + filter: ImageFilter.blur( + sigmaX: strengthX == null ? 15 : strengthX!, + sigmaY: strengthY == null ? 15 : strengthY!, + ), + child: Container(), + ), + Container( + // height: height, + width: width, + decoration: BoxDecoration( + boxShadow: boxShadow, + borderRadius: borderRadius, + border: border ?? + Border.all( + color: Colors.white54, + width: 0.5, + ), + gradient: gradient == null + ? LinearGradient( + tileMode: TileMode.mirror, + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + color == null + ? const Color.fromARGB(255, 138, 137, 137).withValues(alpha: opacity ?? 0.15) + : color!.withValues(alpha: opacity ?? 0.15), + color == null + ? const Color.fromARGB(255, 121, 120, 120).withValues(alpha: opacity ?? 0.15) + : color!.withValues(alpha: opacity ?? 0.15), + ]) + : gradientToApply, + ), + ), + // Apply background image if available + image != null + ? Opacity( + opacity: imageOpacity == null ? 1 : imageOpacity!, + child: Container( + // height: height, + width: width, + decoration: BoxDecoration(image: image), + ), + ) + : const SizedBox(), + Container( + child: child, + ) + ]), + ), + ), + ); + } +} + +// Abstract class for defining glossy gradients +abstract class GlossyGradient { + const GlossyGradient({required this.colors, required this.opacity}); + final List colors; + final double opacity; +} + +// Class for defining glossy linear gradients +class GlossyLinearGradient extends GlossyGradient { + const GlossyLinearGradient({ + this.begin = Alignment.centerLeft, + this.end = Alignment.centerRight, + required super.colors, + this.tileMode = TileMode.clamp, + required super.opacity, + }); + + final AlignmentGeometry begin; + final AlignmentGeometry end; + final TileMode tileMode; + + // Get linear gradient + LinearGradient getLinearGradient() { + return LinearGradient( + colors: colors.map((e) => e.withValues(alpha: opacity)).toList(), begin: begin, end: end, tileMode: tileMode); + } +} + +// Class for defining glossy radial gradients +class GlossyRadialGradient extends GlossyGradient { + const GlossyRadialGradient({ + this.center = Alignment.center, + this.radius = 0.5, + required super.colors, + required super.opacity, + this.tileMode = TileMode.clamp, + this.focal, + this.focalRadius = 0.0, + }); + final AlignmentGeometry center; + final double radius; + final TileMode tileMode; + + final AlignmentGeometry? focal; + final double focalRadius; + + // Get radial gradient + RadialGradient getRadialGradient() { + return RadialGradient( + colors: colors.map((e) => e.withValues(alpha: opacity)).toList(), + center: center, + focal: focal, + focalRadius: focalRadius, + radius: radius, + tileMode: tileMode, + ); + } +} diff --git a/lib/widgets/glossy_container_widget.dart b/lib/widgets/glossy_container_widget.dart index 2f807c3..51cd609 100644 --- a/lib/widgets/glossy_container_widget.dart +++ b/lib/widgets/glossy_container_widget.dart @@ -1,15 +1,17 @@ import 'package:flutter/material.dart'; -import 'package:glossy/glossy.dart'; +// import 'package:glossy/glossy.dart'; +import 'package:pharmacy_mobile/widgets/customized_pub/glossy_container.dart'; class GlossyContainerWidget extends StatelessWidget { - final double height; final Widget child; - const GlossyContainerWidget({super.key, required this.height, required this.child}); + const GlossyContainerWidget({ + super.key, + required this.child, + }); @override Widget build(BuildContext context) { return GlossyContainer( - height: MediaQuery.of(context).size.height * height, width: MediaQuery.of(context).size.width, borderRadius: const BorderRadius.all(Radius.circular(16)), color: const Color.fromRGBO(20, 13, 22, 1), diff --git a/lib/widgets/input_form_widget.dart b/lib/widgets/input_form_widget.dart new file mode 100644 index 0000000..e1964c0 --- /dev/null +++ b/lib/widgets/input_form_widget.dart @@ -0,0 +1,60 @@ +import 'package:flutter/material.dart'; +import 'package:gap/gap.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:pharmacy_mobile/widgets/dropdown_widget.dart'; + +class InputFormWidget extends StatelessWidget { + final String label; + final TextEditingController controller; + final bool? password; + final OnChangedCallback? onChanged; + final String? placeholder; + final ValueChanged? onSubmitted; + final FormFieldValidator? validator; + + const InputFormWidget( + {super.key, + required this.label, + required this.controller, + this.password, + this.onChanged, + this.placeholder, + this.onSubmitted, + this.validator}); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (label.isNotEmpty) + Text('$label:', + style: GoogleFonts.inter( + textStyle: + const TextStyle(color: Color.fromRGBO(255, 255, 255, 1), fontSize: 12, fontWeight: FontWeight.w500), + )), + const Gap(8), + TextFormField( + textInputAction: TextInputAction.go, + controller: controller, + decoration: InputDecoration( + filled: true, + fillColor: const Color.fromRGBO(255, 255, 255, 1), + border: OutlineInputBorder(borderRadius: BorderRadius.circular(4)), + contentPadding: const EdgeInsets.symmetric(vertical: 0, horizontal: 14), + prefixIcon: placeholder != null ? Icon(Icons.search, color: Colors.grey) : null, + hintText: placeholder), + style: GoogleFonts.inter( + textStyle: const TextStyle( + color: Color.fromRGBO(0, 0, 0, 1), + fontSize: 16, + )), + obscureText: password ?? false, + onChanged: onChanged, + onFieldSubmitted: onSubmitted, + validator: validator, + ), + ], + ); + } +} diff --git a/lib/widgets/input_widget.dart b/lib/widgets/input_widget.dart index 846c4ce..ab54890 100644 --- a/lib/widgets/input_widget.dart +++ b/lib/widgets/input_widget.dart @@ -1,17 +1,18 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:pharmacy_mobile/widgets/dropdown_widget.dart'; class InputWidget extends StatelessWidget { final String label; final TextEditingController controller; - final bool? password; - final OnChangedCallback? onChanged; - final String? placeholder; + final String placeholder; - const InputWidget( - {super.key, required this.label, required this.controller, this.password, this.onChanged, this.placeholder}); + const InputWidget({ + super.key, + required this.label, + required this.controller, + required this.placeholder, + }); @override Widget build(BuildContext context) { @@ -26,7 +27,6 @@ class InputWidget extends StatelessWidget { )), const Gap(8), TextField( - textInputAction: TextInputAction.go, controller: controller, decoration: InputDecoration( filled: true, @@ -40,8 +40,6 @@ class InputWidget extends StatelessWidget { color: Color.fromRGBO(0, 0, 0, 1), fontSize: 16, )), - obscureText: password ?? false, - onChanged: onChanged, ), ], ); diff --git a/pubspec.lock b/pubspec.lock index eb1f8d1..5653249 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: app_links - sha256: "433df2e61b10519407475d7f69e470789d23d593f28224c38ba1068597be7950" + sha256: "85ed8fc1d25a76475914fff28cc994653bd900bc2c26e4b57a49e097febb54ba" url: "https://pub.dev" source: hosted - version: "6.3.3" + version: "6.4.0" app_links_linux: dependency: transitive description: @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: archive - sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a" + sha256: "0c64e928dcbefddecd234205422bcfc2b5e6d31be0b86fef0d0dd48d7b4c9742" url: "https://pub.dev" source: hosted - version: "4.0.2" + version: "4.0.4" args: dependency: transitive description: @@ -117,10 +117,10 @@ packages: dependency: transitive description: name: connectivity_plus - sha256: "8a68739d3ee113e51ad35583fdf9ab82c55d09d693d3c39da1aebab87c938412" + sha256: "04bf81bb0b77de31557b58d052b24b3eee33f09a6e7a8c68a3e247c7df19ec27" url: "https://pub.dev" source: hosted - version: "6.1.2" + version: "6.1.3" connectivity_plus_platform_interface: dependency: transitive description: @@ -189,10 +189,10 @@ packages: dependency: transitive description: name: ffi - sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" file: dependency: transitive description: @@ -229,10 +229,10 @@ packages: dependency: transitive description: name: file_selector_windows - sha256: "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4" + sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" url: "https://pub.dev" source: hosted - version: "0.9.3+3" + version: "0.9.3+4" fixnum: dependency: transitive description: @@ -314,10 +314,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "615a505aef59b151b46bbeef55b36ce2b6ed299d160c51d84281946f0aa0ce0e" + sha256: "5a1e6fb2c0561958d7e4c33574674bda7b77caaca7a33b758876956f2902eea3" url: "https://pub.dev" source: hosted - version: "2.0.24" + version: "2.0.27" flutter_svg: dependency: transitive description: @@ -348,10 +348,10 @@ packages: dependency: transitive description: name: functions_client - sha256: "61597ed93be197b1be6387855e4b760e6aac2355fcfc4df6d20d2b4579982158" + sha256: a49876ebae32a50eb62483c5c5ac80ed0d8da34f98ccc23986b03a8d28cee07c url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" gap: dependency: "direct main" description: @@ -360,22 +360,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.0.1" - glossy: - dependency: "direct main" - description: - name: glossy - sha256: "70c7626430a23b903755766d161f024d93334f2b06d7b96f6b6c7204aa0b8941" - url: "https://pub.dev" - source: hosted - version: "0.0.5" go_router: dependency: "direct main" description: name: go_router - sha256: "7c2d40b59890a929824f30d442e810116caf5088482629c894b9e4478c67472d" + sha256: f02fd7d2a4dc512fec615529824fdd217fecb3a3d3de68360293a551f21634b3 url: "https://pub.dev" source: hosted - version: "14.6.3" + version: "14.8.1" google_fonts: dependency: "direct main" description: @@ -404,10 +396,10 @@ packages: dependency: transitive description: name: http - sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f url: "https://pub.dev" source: hosted - version: "1.2.2" + version: "1.3.0" http_parser: dependency: transitive description: @@ -420,10 +412,10 @@ packages: dependency: transitive description: name: image - sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6" + sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3" url: "https://pub.dev" source: hosted - version: "4.5.2" + version: "4.5.3" image_picker: dependency: "direct main" description: @@ -436,10 +428,10 @@ packages: dependency: transitive description: name: image_picker_android - sha256: b62d34a506e12bb965e824b6db4fbf709ee4589cf5d3e99b45ab2287b008ee0c + sha256: "82652a75e3dd667a91187769a6a2cc81bd8c111bbead698d8e938d2b63e5e89a" url: "https://pub.dev" source: hosted - version: "0.8.12+20" + version: "0.8.12+21" image_picker_for_web: dependency: transitive description: @@ -740,10 +732,10 @@ packages: dependency: transitive description: name: petitparser - sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" url: "https://pub.dev" source: hosted - version: "6.0.2" + version: "6.1.0" platform: dependency: transitive description: @@ -788,10 +780,10 @@ packages: dependency: transitive description: name: realtime_client - sha256: "1bfcb7455fdcf15953bf18ac2817634ea5b8f7f350c7e8c9873141a3ee2c3e9c" + sha256: e3089dac2121917cc0c72d42ab056fea0abbaf3c2229048fc50e64bafc731adf url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.2" redacted: dependency: "direct main" description: @@ -828,10 +820,10 @@ packages: dependency: transitive description: name: shared_preferences_android - sha256: "138b7bbbc7f59c56236e426c37afb8f78cbc57b094ac64c440e0bb90e380a4f5" + sha256: "9f9f3d372d4304723e6136663bb291c0b93f5e4c8a4a6314347f481a33bda2b1" url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.7" shared_preferences_foundation: dependency: transitive description: @@ -860,10 +852,10 @@ packages: dependency: transitive description: name: shared_preferences_web - sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 url: "https://pub.dev" source: hosted - version: "2.4.2" + version: "2.4.3" shared_preferences_windows: dependency: transitive description: @@ -913,10 +905,10 @@ packages: dependency: transitive description: name: storage_client - sha256: d80d34f0aa60e5199646bc301f5750767ee37310c2ecfe8d4bbdd29351e09ab0 + sha256: "9f9ed283943313b23a1b27139bb18986e9b152a6d34530232c702c468d98e91a" url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.1" stream_channel: dependency: transitive description: @@ -937,18 +929,18 @@ packages: dependency: transitive description: name: supabase - sha256: "270f63cd87a16578fee87e40cbf61062e8cdbce68d5e723e665f4651d70ddd8c" + sha256: c3ebddba69ddcf16d8b78e8c44c4538b0193d1cf944fde3b72eb5b279892a370 url: "https://pub.dev" source: hosted - version: "2.6.2" + version: "2.6.3" supabase_flutter: dependency: "direct main" description: name: supabase_flutter - sha256: ca8dfe3d4b109e7338cdf7778f3ec2c660a0178006876bfac343eb39b0f3d1e3 + sha256: "3b5b5b492e342f63f301605d0c66f6528add285b5744f53c9fd9abd5ffdbce5b" url: "https://pub.dev" source: hosted - version: "2.8.3" + version: "2.8.4" term_glyph: dependency: transitive description: @@ -1089,10 +1081,10 @@ packages: dependency: transitive description: name: web - sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" web_socket: dependency: transitive description: @@ -1105,10 +1097,10 @@ packages: dependency: transitive description: name: web_socket_channel - sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" + sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" webview_windows: dependency: transitive description: @@ -1150,5 +1142,5 @@ packages: source: hosted version: "2.0.3" sdks: - dart: ">=3.7.0-0 <4.0.0" + dart: ">=3.7.0 <4.0.0" flutter: ">=3.27.0" diff --git a/pubspec.yaml b/pubspec.yaml index f218e8f..a84a176 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: google_fonts: ^6.2.1 gap: ^3.0.1 - go_router: ^14.6.3 + go_router: ^14.8.1 supabase_flutter: ^2.8.3 font_awesome_flutter: ^10.8.0 uuid: ^4.5.1 @@ -26,14 +26,13 @@ dependencies: lazyxchacha: ^1.0.1 pull_to_refresh: ^2.0.0 redacted: ^1.0.13 - glossy: ^0.0.5 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^5.0.0 - flutter_launcher_icons: "^0.14.3" + flutter_launcher_icons: ^0.14.3 flutter_icons: android: true