This commit is contained in:
Patrick Alvin Alcala 2025-01-27 17:26:00 +08:00
parent 5469c484e1
commit c87b10a050
11 changed files with 241 additions and 39 deletions

View file

@ -0,0 +1,82 @@
import 'dart:developer';
import 'package:gap/gap.dart';
import 'package:flutter/material.dart';
// import 'package:pharmacy_mobile/auth/auth_service.dart';
import 'package:pharmacy_mobile/tables/ref_categories.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/dropdown_widget.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart';
import 'package:pharmacy_mobile/widgets/title_widget.dart';
class AddGenericsPage extends StatefulWidget {
const AddGenericsPage({super.key});
@override
AddGenericsPageState createState() => AddGenericsPageState();
}
class AddGenericsPageState extends State<AddGenericsPage> {
// final _formKey = GlobalKey<FormState>();
final _refCategories = RefCategories();
final _nameController = TextEditingController();
late List _categoryList;
@override
void initState() {
autoRun();
super.initState();
}
void autoRun() async {
_categoryList = await _refCategories.getList();
}
void saveData() async {}
@override
void dispose() {
_nameController.dispose();
_categoryList = [];
// _genericNameController.dispose();
// _typeController.dispose();
// _manufactorerController.dispose();
// _focusNode.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
alignment: Alignment.center,
height: MediaQuery.of(context).size.height,
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: [
Color.fromRGBO(34, 51, 69, 1),
Color.fromRGBO(22, 32, 44, 1),
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
),
),
child: Center(
child: Column(
children: [
const Gap(120),
const TitleWidget(firstTextSize: 16, secondTextSize: 32),
const Gap(32),
const TextWidget(text: 'Add Generics'),
const Gap(16),
InputWidget(label: 'Name', controller: _nameController),
const Gap(16),
DropDownWidget(label: 'Category', list: _categoryList, listTitle: 'category_name'),
const Gap(16),
ButtonWidget(text: 'Add', onPressed: saveData)
],
)),
),
);
}
}

View file

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart';
// import 'package:google_fonts/google_fonts.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart';
import 'package:pharmacy_mobile/widgets/title_widget.dart';
@ -12,6 +13,29 @@ class AddMedicinePage extends StatefulWidget {
}
class AddMedicinePageState extends State<AddMedicinePage> {
final _formKey = GlobalKey<FormState>();
// final _authService = AuthService();
final _nameController = TextEditingController();
final _genericNameController = TextEditingController();
final _typeController = TextEditingController();
final _manufactorerController = TextEditingController();
final FocusNode _focusNode = FocusNode();
// @override
// void initState() {
// super.initState();
// }
@override
void dispose() {
_nameController.dispose();
_genericNameController.dispose();
_typeController.dispose();
_manufactorerController.dispose();
_focusNode.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
@ -36,6 +60,15 @@ class AddMedicinePageState extends State<AddMedicinePage> {
const Gap(32),
const TextWidget(text: 'Add Medicine'),
const Gap(16),
Form(
key: _formKey,
child: Center(
child: Column(
children: [
InputWidget(label: 'Name', controller: _nameController),
],
),
))
],
),
),

View file

@ -1,8 +1,10 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:google_fonts/google_fonts.dart';
// import 'package:google_fonts/google_fonts.dart';
import 'package:gap/gap.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart';
import 'package:pharmacy_mobile/widgets/title_widget.dart';
class IndexPage extends StatelessWidget {
const IndexPage({super.key});
@ -21,8 +23,9 @@ class IndexPage extends StatelessWidget {
decoration: const BoxDecoration(
gradient: LinearGradient(
colors: [
Color.fromRGBO(34, 51, 69, 1),
Color.fromRGBO(22, 32, 44, 1),
Color.fromRGBO(165, 105, 189, 1),
Color.fromRGBO(142, 68, 173, 1),
Color.fromRGBO(165, 105, 189, 1),
],
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
@ -33,20 +36,18 @@ class IndexPage extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.start,
children: [
const Gap(120),
Text('Ofelia Franco-Alcala',
style: GoogleFonts.outfit(
textStyle: const TextStyle(color: Color.fromRGBO(255, 255, 255, 1), fontSize: 32))),
Text('Pharmacy',
style: GoogleFonts.outfit(
textStyle: const TextStyle(color: Color.fromRGBO(255, 255, 255, 1), fontSize: 40))),
const TitleWidget(firstTextSize: 32, secondTextSize: 40),
const Gap(32),
Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 16, 0),
child: Image.asset('assets/ph_logo.webp',
width: 256, cacheWidth: (256 * MediaQuery.of(context).devicePixelRatio).round()),
width: 200, cacheWidth: (200 * MediaQuery.of(context).devicePixelRatio).round()),
),
const Gap(32),
ButtonWidget(text: 'Login', onPressed: gotoLogin)
ButtonWidget(text: 'Login', onPressed: gotoLogin),
const MaxGap(500),
const TextWidget(text: 'Copyright © 2025 - Ofelia Franco-Alcala Pharmacy', size: 14),
const TextWidget(text: 'Developed By: Pat Alcala', size: 12)
],
),
),

View file

@ -1,14 +1,12 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:go_router/go_router.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:gap/gap.dart';
import 'package:pharmacy_mobile/auth/auth_service.dart';
import 'package:pharmacy_mobile/main.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart';
import 'package:pharmacy_mobile/widgets/title_widget.dart';
import 'dart:developer';
import 'package:quickalert/quickalert.dart';
class LoginPage extends StatefulWidget {
@ -62,6 +60,7 @@ class _LoginPageState extends State<LoginPage> {
void dispose() {
_emailController.dispose();
_passwordController.dispose();
_focusNode.dispose();
super.dispose();
}
@ -99,15 +98,8 @@ class _LoginPageState extends State<LoginPage> {
child: Form(
child: Column(
children: [
TextFormField(
controller: _emailController,
decoration: const InputDecoration(
labelText: 'Email',
border: OutlineInputBorder(),
),
style: const TextStyle(color: Colors.white),
),
const Gap(8),
InputWidget(label: 'Email', controller: _emailController),
const Gap(16),
KeyboardListener(
focusNode: _focusNode,
onKeyEvent: (event) {
@ -115,17 +107,9 @@ class _LoginPageState extends State<LoginPage> {
_signIn();
}
},
child: TextFormField(
obscureText: true,
controller: _passwordController,
decoration: const InputDecoration(
labelText: 'Password',
border: OutlineInputBorder(),
),
style: const TextStyle(color: Colors.white),
),
child: InputWidget(label: 'Password', controller: _passwordController, password: true,),
),
const Gap(16),
const Gap(24),
// TextButton(onPressed: () => {_signIn()}, child: const Text('Login'))
ButtonWidget(text: 'Login', onPressed: _signIn)
],

View file

@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:gap/gap.dart';
import 'package:go_router/go_router.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:pharmacy_mobile/auth/auth_service.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/menu_widget.dart';
@ -25,6 +24,10 @@ class MainPage extends StatelessWidget {
context.push('/addmedicines');
}
void gotoAddGenerics() {
context.push('/addgenerics');
}
return Scaffold(
body: Container(
alignment: Alignment.center,
@ -56,6 +59,7 @@ class MainPage extends StatelessWidget {
MenuWidget(
icon: FontAwesomeIcons.squarePlus,
text: 'Add Generics',
onPressed: gotoAddGenerics,
),
const Gap(16),
MenuWidget(