update
This commit is contained in:
parent
148cdec83c
commit
7749f1100d
19 changed files with 447 additions and 217 deletions
|
|
@ -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
¤ ˆÈ¼<C388>Ñ2
|
||||
^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt ³ûÛÌÖ2
¤ ˆÈ¼<C388>Ñ2
|
||||
|
|
@ -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
¤ ˆÈ¼<C388>Ñ2
|
||||
^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt §üÛÌÖ2
¤ ˆÈ¼<C388>Ñ2
|
||||
|
|
@ -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
¤ ˆÈ¼<C388>Ñ2
|
||||
^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt ÆüÛÌÖ2
¤ ˆÈ¼<C388>Ñ2
|
||||
|
|
@ -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
¤ ˆÈ¼<C388>Ñ2
|
||||
^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt ØüÛÌÖ2
¤ ˆÈ¼<C388>Ñ2
|
||||
|
|
@ -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<AddCategoryPage> {
|
|||
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))
|
||||
|
|
|
|||
|
|
@ -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<AddGenericsPage> {
|
|||
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',
|
||||
|
|
|
|||
|
|
@ -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<AddManufacturerPage> {
|
|||
),
|
||||
const Gap(32),
|
||||
const TextWidget(
|
||||
text: 'Add Manufactorer',
|
||||
text: 'Add Manufacturer',
|
||||
title: true,
|
||||
),
|
||||
const Gap(16),
|
||||
|
|
@ -97,9 +98,9 @@ class _AddManufactorerPageState extends State<AddManufacturerPage> {
|
|||
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))
|
||||
|
|
|
|||
|
|
@ -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<AddMedicinePage> {
|
|||
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<AddMedicinePage> {
|
|||
onChanged: _updateManufactorer,
|
||||
),
|
||||
const Gap(16),
|
||||
InputWidget(label: 'Barcode', controller: _barcodeController),
|
||||
InputFormWidget(label: 'Barcode', controller: _barcodeController),
|
||||
ScanbarcodeWidget(onTap: _scanBarcode),
|
||||
const Gap(16),
|
||||
if (imageUrl.isNotEmpty)
|
||||
|
|
|
|||
|
|
@ -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<AddStockPage> with WidgetsBindingObserver
|
|||
],
|
||||
),
|
||||
const Gap(16),
|
||||
InputWidget(label: 'Quantity', controller: _quantityController),
|
||||
InputFormWidget(label: 'Quantity', controller: _quantityController),
|
||||
const Gap(16),
|
||||
DatePickerWidget(
|
||||
label: 'Date Expiration',
|
||||
|
|
|
|||
|
|
@ -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<AddTypePage> {
|
|||
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))
|
||||
|
|
|
|||
|
|
@ -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<DeleteStockPage> {
|
|||
// 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(
|
||||
|
|
|
|||
|
|
@ -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<LoginPage> {
|
|||
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();
|
||||
}
|
||||
},
|
||||
child: InputWidget(
|
||||
InputFormWidget(
|
||||
label: 'Password',
|
||||
controller: _passwordController,
|
||||
password: true,
|
||||
),
|
||||
onSubmitted: (String password) {
|
||||
_signIn();
|
||||
},
|
||||
),
|
||||
const Gap(40),
|
||||
ButtonWithProgressWidget(
|
||||
trigger: _isLoading, progressText: 'Logging In', buttonText: 'Login', onPressed: _signIn)
|
||||
trigger: _isLoading, progressText: 'Logging In', buttonText: 'Login', onPressed: _signIn),
|
||||
],
|
||||
)),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
@ -111,9 +110,7 @@ class _RegisterPageState extends State<RegisterPage> {
|
|||
body: PageBackgroundWidget(
|
||||
page: 'register',
|
||||
child: Center(
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
child: Column(mainAxisAlignment: MainAxisAlignment.start, children: [
|
||||
const Gap(96),
|
||||
const TitleWidget(
|
||||
firstTextSize: 14,
|
||||
|
|
@ -129,34 +126,35 @@ class _RegisterPageState extends State<RegisterPage> {
|
|||
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),
|
||||
InputWidget(
|
||||
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),
|
||||
InputWidget(
|
||||
InputFormWidget(
|
||||
label: 'Confirm Password',
|
||||
controller: _confirmPasswordController,
|
||||
password: true,
|
||||
onSubmitted: (String? password) {
|
||||
_signUp();
|
||||
},
|
||||
),
|
||||
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)
|
||||
trigger: _isLoading, progressText: 'Registering', buttonText: 'Register', onPressed: _signUp)
|
||||
],
|
||||
)),
|
||||
),
|
||||
|
|
@ -180,9 +178,6 @@ class _RegisterPageState extends State<RegisterPage> {
|
|||
)
|
||||
],
|
||||
)
|
||||
],
|
||||
),
|
||||
)),
|
||||
);
|
||||
]))));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
184
lib/widgets/customized_pub/glossy_container.dart
Normal file
184
lib/widgets/customized_pub/glossy_container.dart
Normal file
|
|
@ -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>? 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<Color> 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,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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),
|
||||
|
|
|
|||
60
lib/widgets/input_form_widget.dart
Normal file
60
lib/widgets/input_form_widget.dart
Normal file
|
|
@ -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<String>? 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,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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,
|
||||
),
|
||||
],
|
||||
);
|
||||
|
|
|
|||
90
pubspec.lock
90
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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue