This commit is contained in:
Patrick Alvin Alcala 2025-03-03 13:38:06 +08:00
parent b21ee2ee82
commit ecccd4a9bf
16 changed files with 232 additions and 193 deletions

View file

@ -2,27 +2,27 @@ C/C++ Structured Logz
x x
v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/additional_project_files.txtC v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¼§âÞÔ2  ž•ŽÑ2w ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  µ”ŠÏÕ2  ž•ŽÑ2w
u 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 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 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 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 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 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 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 à ô•ŽÑ2p
n 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 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 ¤ ˆÈ¼<C388>Ñ2 ^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  µ”ŠÏÕ2 ¤ ˆÈ¼<C388>Ñ2

View file

@ -2,27 +2,27 @@ C/C++ Structured Log|
z z
x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/additional_project_files.txtC x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ‹¨âÞÔ2  ÅîŽÑ2y ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  …•ŠÏÕ2  ÅîŽÑ2y
w 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 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 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 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 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 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 Í ÈîŽÑ2r
p 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 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 ¤ ˆÈ¼<C388>Ñ2 ^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  …•ŠÏÕ2 ¤ ˆÈ¼<C388>Ñ2

View file

@ -2,27 +2,27 @@ C/C++ Structured Logt
r r
p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/additional_project_files.txtC p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  <EFBFBD>¨âÞÔ2  ðŽÑ2q ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ¶•ŠÏÕ2  ðŽÑ2q
o o
m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build.json  <EFBFBD>¨âÞÔ2Á ˜ðŽÑ2v m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build.json  ¶•ŠÏÕ2Á ˜ðŽÑ2v
t t
r/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build_mini.json  <EFBFBD>¨âÞÔ2Ú šðŽÑ2c r/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build_mini.json  ¶•ŠÏÕ2Ú šðŽÑ2c
a a
_/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja  <EFBFBD>¨âÞÔ2‚º ŽðŽÑ2g _/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja  ¶•ŠÏÕ2‚º ŽðŽÑ2g
e e
c/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja.txt  <EFBFBD>¨âÞÔ2l c/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja.txt  ¶•ŠÏÕ2l
j j
h/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build_file_index.txt  <EFBFBD>¨âÞÔ2 ^ ðŽÑ2m h/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build_file_index.txt  ¶•ŠÏÕ2 ^ ðŽÑ2m
k k
i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json  <EFBFBD>¨âÞÔ2q i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json  ¶•ŠÏÕ2q
o o
m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json.bin  <EFBFBD>¨âÞÔ2 w m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json.bin  ¶•ŠÏÕ2 w
u u
s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/metadata_generation_command.txt  <EFBFBD>¨âÞÔ2 s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/metadata_generation_command.txt  ·•ŠÏÕ2
¥ ðŽÑ2j ¥ ðŽÑ2j
h h
f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/prefab_config.json  <EFBFBD>¨âÞÔ2  ( ðŽÑ2o f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/prefab_config.json  ·•ŠÏÕ2  ( ðŽÑ2o
m m
k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/symbol_folder_index.txt  <EFBFBD>¨âÞÔ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  <EFBFBD>¨âÞÔ2 ¤ ˆÈ¼<C388>Ñ2 ^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ·•ŠÏÕ2 ¤ ˆÈ¼<C388>Ñ2

View file

@ -2,27 +2,27 @@ C/C++ Structured Logw
u u
s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/additional_project_files.txtC s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/additional_project_files.txtC
A A
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  “¨âÞÔ2  ßñŽÑ2t ?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Ò•ŠÏÕ2  ßñŽÑ2t
r 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 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 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 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 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 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 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 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 ´ âñŽÑ2m
k 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 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 ¤ ˆÈ¼<C388>Ñ2 ^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  Ó•ŠÏÕ2 ¤ ˆÈ¼<C388>Ñ2

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:pharmacy_mobile/auth/auth_gate.dart'; import 'package:pharmacy_mobile/auth/auth_gate.dart';
import 'package:pharmacy_mobile/pages/add_category_page.dart'; import 'package:pharmacy_mobile/pages/add_category_page.dart';
import 'package:pharmacy_mobile/pages/add_generics_page.dart'; import 'package:pharmacy_mobile/pages/add_generics_page.dart';
import 'package:pharmacy_mobile/pages/add_manufactorer.dart'; import 'package:pharmacy_mobile/pages/add_manufacturer.dart';
import 'package:pharmacy_mobile/pages/add_medicine_page.dart'; import 'package:pharmacy_mobile/pages/add_medicine_page.dart';
import 'package:pharmacy_mobile/pages/add_stock_page.dart'; import 'package:pharmacy_mobile/pages/add_stock_page.dart';
import 'package:pharmacy_mobile/pages/add_type_page.dart'; import 'package:pharmacy_mobile/pages/add_type_page.dart';
@ -57,7 +57,7 @@ final _router = GoRouter(
GoRoute( GoRoute(
name: 'addmanufactorer', name: 'addmanufactorer',
path: '/addmanufactorer', path: '/addmanufactorer',
builder: (context, state) => const AddManufactorerPage(), builder: (context, state) => const AddManufacturerPage(),
), ),
GoRoute( GoRoute(
name: 'addmedicines', name: 'addmedicines',

View file

@ -3,7 +3,7 @@ import 'package:gap/gap.dart';
import 'package:internet_connection_checker/internet_connection_checker.dart'; import 'package:internet_connection_checker/internet_connection_checker.dart';
import 'package:pharmacy_mobile/functions/checkexisting_function.dart'; import 'package:pharmacy_mobile/functions/checkexisting_function.dart';
import 'package:pharmacy_mobile/tables/ref_categories.dart'; import 'package:pharmacy_mobile/tables/ref_categories.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/form_border_widget2.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
@ -94,10 +94,15 @@ class _AddCategoryPageState extends State<AddCategoryPage> {
children: [ children: [
InputWidget(label: 'Category Name', controller: _categoryController), InputWidget(label: 'Category Name', controller: _categoryController),
const Gap(32), const Gap(32),
if (_isLoading) // if (_isLoading)
const Center(child: CircularProgressIndicator(color: Colors.white)) // const Center(child: CircularProgressIndicator(color: Colors.white))
else // else
ButtonWidget(text: 'Save Category', onPressed: _saveCategory) // ButtonWidget(text: 'Save Category', onPressed: _saveCategory)
ButtonWithProgressWidget(
trigger: _isLoading,
progressText: 'Adding Category',
buttonText: 'Save',
onPressed: _saveCategory)
], ],
), ),
)), )),

View file

@ -4,8 +4,9 @@ import 'package:internet_connection_checker/internet_connection_checker.dart';
import 'package:pharmacy_mobile/functions/checkexisting_function.dart'; import 'package:pharmacy_mobile/functions/checkexisting_function.dart';
import 'package:pharmacy_mobile/tables/ref_categories.dart'; import 'package:pharmacy_mobile/tables/ref_categories.dart';
import 'package:pharmacy_mobile/tables/ref_generic_names.dart'; import 'package:pharmacy_mobile/tables/ref_generic_names.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart';
import 'package:pharmacy_mobile/widgets/dropdown_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/form_border_widget2.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
@ -71,7 +72,7 @@ class _AddGenericsPageState extends State<AddGenericsPage> {
_selectedCategory = category; _selectedCategory = category;
} }
void saveGeneric() async { void _saveGeneric() async {
setState(() => _isLoading = true); setState(() => _isLoading = true);
try { try {
@ -153,47 +154,26 @@ class _AddGenericsPageState extends State<AddGenericsPage> {
color: 'blue', color: 'blue',
child: Form( child: Form(
key: _formKey, key: _formKey,
child: Column( child: DropdownWrapperMultiWidget(list: _categoryList, text: 'List', children: [
Column(
children: [ children: [
InputWidget(label: 'Name', controller: _nameController), InputWidget(label: 'Name', controller: _nameController),
const Gap(16), const Gap(16),
if (_categoryList.isEmpty)
const Column(
children: [
Gap(8),
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
spacing: 16,
children: [
CircularProgressIndicator(color: Colors.white),
TextWidget(
text: 'Fetching Categories',
size: 16,
)
],
),
],
)
else
Column(
children: [
DropDownWidget( DropDownWidget(
label: 'Category', label: 'Category',
list: _categoryList, list: _categoryList,
listTitle: 'category_name', listTitle: 'category_name',
onChanged: _updateCategory, onChanged: _updateCategory,
// value: _selectedCategory,
), ),
const Gap(32), const Gap(32),
if (_isLoading) ButtonWithProgressWidget(
const Center(child: CircularProgressIndicator(color: Colors.white)) trigger: _isLoading,
else progressText: 'Adding Generics',
ButtonWidget(text: 'Add', onPressed: saveGeneric) buttonText: 'Save',
onPressed: _saveGeneric)
], ],
), ),
], ])),
)),
) )
], ],
)), )),

View file

@ -5,6 +5,7 @@ import 'package:internet_connection_checker/internet_connection_checker.dart';
import 'package:pharmacy_mobile/functions/checkexisting_function.dart'; import 'package:pharmacy_mobile/functions/checkexisting_function.dart';
import 'package:pharmacy_mobile/tables/ref_manufactorers.dart'; import 'package:pharmacy_mobile/tables/ref_manufactorers.dart';
import 'package:pharmacy_mobile/widgets/button_widget.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/form_border_widget2.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
@ -12,14 +13,14 @@ import 'package:pharmacy_mobile/widgets/snackbar_widget.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart'; import 'package:pharmacy_mobile/widgets/text_widget.dart';
import 'package:pharmacy_mobile/widgets/title_widget.dart'; import 'package:pharmacy_mobile/widgets/title_widget.dart';
class AddManufactorerPage extends StatefulWidget { class AddManufacturerPage extends StatefulWidget {
const AddManufactorerPage({super.key}); const AddManufacturerPage({super.key});
@override @override
State<AddManufactorerPage> createState() => _AddManufactorerPageState(); State<AddManufacturerPage> createState() => _AddManufactorerPageState();
} }
class _AddManufactorerPageState extends State<AddManufactorerPage> { class _AddManufactorerPageState extends State<AddManufacturerPage> {
final _formKey = GlobalKey<FormState>(); final _formKey = GlobalKey<FormState>();
final _nameController = TextEditingController(); final _nameController = TextEditingController();
final _addressController = TextEditingController(); final _addressController = TextEditingController();
@ -100,10 +101,15 @@ class _AddManufactorerPageState extends State<AddManufactorerPage> {
const Gap(16), const Gap(16),
InputWidget(label: 'Address', controller: _addressController), InputWidget(label: 'Address', controller: _addressController),
const Gap(32), const Gap(32),
if (_isLoading) // if (_isLoading)
const Center(child: CircularProgressIndicator(color: Colors.white)) // const Center(child: CircularProgressIndicator(color: Colors.white))
else // else
ButtonWidget(text: 'Save Manufactorer', onPressed: _saveManufactorer) // ButtonWidget(text: 'Save Manufactorer', onPressed: _saveManufactorer)
ButtonWithProgressWidget(
trigger: _isLoading,
progressText: 'Adding Manufacturer',
buttonText: 'Save',
onPressed: _saveManufactorer)
], ],
))) )))
], ],

View file

@ -12,6 +12,7 @@ import 'package:pharmacy_mobile/tables/ref_medicines.dart';
import 'package:pharmacy_mobile/tables/ref_types.dart'; import 'package:pharmacy_mobile/tables/ref_types.dart';
import 'package:pharmacy_mobile/tables/storage.dart'; import 'package:pharmacy_mobile/tables/storage.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart';
import 'package:pharmacy_mobile/widgets/dropdown_widget.dart'; import 'package:pharmacy_mobile/widgets/dropdown_widget.dart';
import 'package:pharmacy_mobile/widgets/dropdown_wrappermulti_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/form_border_widget2.dart';
@ -240,19 +241,15 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
color: 'green', color: 'green',
child: Form( child: Form(
key: _formKey, key: _formKey,
child: Center( child: DropdownWrapperMultiWidget(list: _genericNameList, text: 'Data', children: [
child: Column( Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
children: [
InputWidget(label: 'Name', controller: _nameController), InputWidget(label: 'Name', controller: _nameController),
const Gap(16), const Gap(16),
DropdownWrapperMultiWidget(list: _genericNameList, text: 'Data', children: [
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
DropDownWidget( DropDownWidget(
label: 'Generic Name', label: 'Generic Name',
list: _genericNameList, list: _genericNameList,
listTitle: 'generic_name', listTitle: 'generic_name',
onChanged: _updateGeneric, onChanged: _updateGeneric,
// value: _selectedGeneric,
), ),
const Gap(8), const Gap(8),
Padding( Padding(
@ -265,7 +262,6 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
list: _typeList, list: _typeList,
listTitle: 'type_name', listTitle: 'type_name',
onChanged: _updateType, onChanged: _updateType,
// value: _selectedType,
), ),
const Gap(16), const Gap(16),
DropDownWidget( DropDownWidget(
@ -273,7 +269,6 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
list: _manufactorerList, list: _manufactorerList,
listTitle: 'manufactorer_name', listTitle: 'manufactorer_name',
onChanged: _updateManufactorer, onChanged: _updateManufactorer,
// value: _selectedManufactorer,
), ),
const Gap(16), const Gap(16),
InputWidget(label: 'Barcode', controller: _barcodeController), InputWidget(label: 'Barcode', controller: _barcodeController),
@ -282,8 +277,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
if (imageUrl.isNotEmpty) if (imageUrl.isNotEmpty)
Center( Center(
child: ClipRRect( child: ClipRRect(
borderRadius: borderRadius: BorderRadius.circular(12), // Add your desired border radius here
BorderRadius.circular(12), // Add your desired border radius here
child: ImageWidget( child: ImageWidget(
imagePath: imageUrl, imagePath: imageUrl,
size: 250, size: 250,
@ -299,15 +293,17 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
outline: true, outline: true,
), ),
const Gap(32), const Gap(32),
if (_isLoading) // if (_isLoading)
const Center(child: CircularProgressIndicator(color: Colors.white)) // const Center(child: CircularProgressIndicator(color: Colors.white))
else // else
ButtonWidget(text: 'Save Medicine', onPressed: _saveMedicine) // ButtonWidget(text: 'Save Medicine', onPressed: _saveMedicine)
ButtonWithProgressWidget(
trigger: _isLoading,
progressText: 'Adding Medicine',
buttonText: 'Save',
onPressed: _saveMedicine)
]) ])
]), ])))
],
),
)))
])))); ]))));
} }
} }

View file

@ -4,6 +4,7 @@ import 'package:internet_connection_checker/internet_connection_checker.dart';
import 'package:pharmacy_mobile/functions/checkexisting_function.dart'; import 'package:pharmacy_mobile/functions/checkexisting_function.dart';
import 'package:pharmacy_mobile/tables/ref_types.dart'; import 'package:pharmacy_mobile/tables/ref_types.dart';
import 'package:pharmacy_mobile/widgets/button_widget.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/form_border_widget2.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
@ -97,10 +98,15 @@ class _AddTypePageState extends State<AddTypePage> {
children: [ children: [
InputWidget(label: 'Type Name', controller: _typeController), InputWidget(label: 'Type Name', controller: _typeController),
const Gap(32), const Gap(32),
if (_isLoading) // if (_isLoading)
const Center(child: CircularProgressIndicator(color: Colors.white)) // const Center(child: CircularProgressIndicator(color: Colors.white))
else // else
ButtonWidget(text: 'Save Type', onPressed: _saveType) // ButtonWidget(text: 'Save Type', onPressed: _saveType)
ButtonWithProgressWidget(
trigger: _isLoading,
progressText: 'Adding Type',
buttonText: 'Save',
onPressed: _saveType)
], ],
), ),
)), )),

View file

@ -4,6 +4,7 @@ import 'package:go_router/go_router.dart';
import 'package:gap/gap.dart'; import 'package:gap/gap.dart';
import 'package:pharmacy_mobile/auth/auth_service.dart'; import 'package:pharmacy_mobile/auth/auth_service.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart';
@ -151,10 +152,12 @@ class _LoginPageState extends State<LoginPage> {
), ),
const Gap(40), const Gap(40),
// TextButton(onPressed: () => {_signIn()}, child: const Text('Login')) // TextButton(onPressed: () => {_signIn()}, child: const Text('Login'))
if (_isLoading) // if (_isLoading)
const Center(child: CircularProgressIndicator(color: Color.fromRGBO(255, 255, 255, 1))) // const Center(child: CircularProgressIndicator(color: Color.fromRGBO(255, 255, 255, 1)))
else // else
ButtonWidget(text: 'Login', onPressed: _signIn) // ButtonWidget(text: 'Login', onPressed: _signIn),
ButtonWithProgressWidget(
trigger: _isLoading, progressText: 'Logging In', buttonText: 'Login', onPressed: _signIn)
], ],
)), )),
), ),

View file

@ -52,8 +52,8 @@ class _MainPageState extends State<MainPage> {
const Gap(16), const Gap(16),
MenuWidget( MenuWidget(
icon: FontAwesomeIcons.circlePlus, icon: FontAwesomeIcons.circlePlus,
text: 'Add Manufactorer', text: 'Add Manufacturer',
description: 'Register manufactorer to the list', description: 'Register manufacturer to the list',
onPressed: () => {context.push('/addmanufactorer')}, onPressed: () => {context.push('/addmanufactorer')},
color: 'blue', color: 'blue',
), ),

View file

@ -3,6 +3,7 @@ import 'package:gap/gap.dart';
import 'package:internet_connection_checker/internet_connection_checker.dart'; import 'package:internet_connection_checker/internet_connection_checker.dart';
import 'package:pharmacy_mobile/auth/auth_service.dart'; import 'package:pharmacy_mobile/auth/auth_service.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart';
@ -150,10 +151,15 @@ class _RegisterPageState extends State<RegisterPage> {
), ),
const Gap(40), const Gap(40),
// TextButton(onPressed: () => {_signIn()}, child: const Text('Login')) // TextButton(onPressed: () => {_signIn()}, child: const Text('Login'))
if (_isLoading) // if (_isLoading)
const Center(child: CircularProgressIndicator(color: Colors.white)) // const Center(child: CircularProgressIndicator(color: Colors.white))
else // else
ButtonWidget(text: 'Create Account', onPressed: _signUp) // ButtonWidget(text: 'Create Account', onPressed: _signUp)
ButtonWithProgressWidget(
trigger: _isLoading,
progressText: 'Registering',
buttonText: 'Register',
onPressed: _signUp)
], ],
)), )),
), ),

View file

@ -0,0 +1,37 @@
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart';
class ButtonWithProgressWidget extends StatelessWidget {
final bool trigger;
final String progressText;
final String buttonText;
final VoidCallback onPressed;
const ButtonWithProgressWidget(
{super.key,
required this.trigger,
required this.progressText,
required this.buttonText,
required this.onPressed});
@override
Widget build(BuildContext context) {
if (trigger) {
return Center(
child: Column(
children: [
const CircularProgressIndicator(color: Color.fromRGBO(255, 255, 255, 1)),
const Gap(16),
TextWidget(
text: progressText,
size: 12,
)
],
));
} else {
return ButtonWidget(text: buttonText, onPressed: onPressed);
}
}
}

View file

@ -20,13 +20,14 @@ class DropdownWrapperWidget extends StatelessWidget {
? Column( ? Column(
children: [ children: [
const Gap(8), const Gap(8),
Row( Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
spacing: 16, spacing: 16,
children: [ children: [
const CircularProgressIndicator(color: Color.fromRGBO(255, 255, 255, 1)), const CircularProgressIndicator(color: Color.fromRGBO(255, 255, 255, 1)),
TextWidget(text: 'Fetching $text', size: 16) const Gap(4),
TextWidget(text: 'Fetching $text', size: 14)
], ],
), ),
], ],

View file

@ -19,16 +19,15 @@ class DropdownWrapperMultiWidget extends StatelessWidget {
return (list.isEmpty) return (list.isEmpty)
? Column( ? Column(
children: [ children: [
const Gap(8), Column(
Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
spacing: 16,
children: [ children: [
const CircularProgressIndicator(color: Color.fromRGBO(255, 255, 255, 1)), const CircularProgressIndicator(color: Color.fromRGBO(255, 255, 255, 1)),
const Gap(16),
TextWidget( TextWidget(
text: 'Fetching $text', text: 'Fetching $text',
size: 16, size: 14,
) )
], ],
), ),