This commit is contained in:
Patrick Alvin Alcala 2025-02-14 11:57:34 +08:00
parent b45cf8bd73
commit 941e9eaa5b
8 changed files with 91 additions and 19 deletions

View file

@ -2,12 +2,14 @@ import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:image_picker/image_picker.dart';
import 'package:internet_connection_checker/internet_connection_checker.dart';
import 'package:pharmacy_mobile/tables/ref_categories.dart';
import 'package:pharmacy_mobile/tables/ref_generic_names.dart';
import 'package:pharmacy_mobile/tables/ref_manufactorers.dart';
import 'package:pharmacy_mobile/tables/ref_medicines.dart';
import 'package:pharmacy_mobile/tables/ref_types.dart';
import 'package:pharmacy_mobile/tables/storage.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/dropdown_widget.dart';
import 'package:pharmacy_mobile/widgets/dropdown_wrapper_widget.dart';
@ -18,6 +20,7 @@ import 'package:pharmacy_mobile/widgets/snackbar_widget.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart';
import 'package:pharmacy_mobile/widgets/title_widget.dart';
import 'package:go_router/go_router.dart';
import 'package:uuid/uuid.dart';
class AddMedicinePage extends StatefulWidget {
const AddMedicinePage({super.key});
@ -33,6 +36,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
final _refTypes = RefTypes();
final _refManufactorer = RefManufactorers();
final _refMedicines = RefMedicines();
final _storage = Storage();
final _nameController = TextEditingController();
final FocusNode _focusNode = FocusNode();
bool _isLoading = false;
@ -44,6 +48,9 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
late String _selectedType = '';
late List _manufactorerList = [];
late String _selectedManufactorer = '';
late String uuid = '';
late bool imageUploaded = false;
late String imageUrl = '';
void _checkResult(List list, String name) {
if (list.isEmpty) {
@ -84,8 +91,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
setState(() {});
final sample = await _refMedicines.getList2();
log(sample.toString());
// final sample = await _refMedicines.getList2();
} else {
if (mounted) {
showNotification(context, 'Error: No Internet Connection', false);
@ -125,7 +131,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
final medTypeUUID = await _refTypes.getUUID(_selectedType);
final medManufactorerUUID = await _refManufactorer.getUUID(_selectedManufactorer);
await _refMedicines.postMedicine(medName, medManufactorerUUID, medGenericUUID, medTypeUUID);
await _refMedicines.postMedicine(uuid, medName, medManufactorerUUID, medGenericUUID, medTypeUUID);
} else {
if (mounted) {
showNotification(context, 'Error: No Internet Connection', false);
@ -140,6 +146,20 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
}
}
void _addImage() async {
final imageName = Uuid().v4();
uuid = imageName;
final ImagePicker picker = ImagePicker();
final XFile? image = await picker.pickImage(source: ImageSource.gallery);
const storageName = 'ref_medicines_images';
if (image == null) {
return;
}
imageUrl = await _storage.uploadImage(storageName, image, '$imageName.webp');
}
@override
void initState() {
autoRun();
@ -213,6 +233,17 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
listTitle: 'manufactorer_name',
onChanged: _updateManufactorer)),
const Gap(32),
// if (imageUrl.isNotEmpty)
ClipRRect(
borderRadius: BorderRadius.circular(12), // Add your desired border radius here
child: Image.network(
'https://lijihnvjlucyvxfhghqd.supabase.co/storage/v1/object/public/ref_medicines_images//ab033e88-1933-496b-8e11-47bf85d21d8f.webp',
fit: BoxFit.cover,
width: 250,
height: 250)),
// else
// ButtonWidget(text: 'Add Image', onPressed: _addImage),
const Gap(32),
if (_isLoading)
const Center(child: CircularProgressIndicator(color: Colors.white))
else