This commit is contained in:
Patrick Alvin Alcala 2025-02-20 17:20:01 +08:00
parent 5164d55905
commit 6f54a6f9fc
65 changed files with 313 additions and 137 deletions

View file

@ -1,19 +1,17 @@
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:gap/gap.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';
import 'package:pharmacy_mobile/widgets/menu_widget2.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';
import 'package:pharmacy_mobile/widgets/title_widget.dart';
import 'package:go_router/go_router.dart';
import 'package:animated_notch_bottom_bar/animated_notch_bottom_bar/animated_notch_bottom_bar.dart';
class CustomerMainPage extends StatefulWidget {
final NotchBottomBarController? controller;
const CustomerMainPage({super.key, this.controller});
// final NotchBottomBarController? controller;
const CustomerMainPage({super.key});
@override
State<CustomerMainPage> createState() => _CustomerMainPageState();
@ -44,10 +42,12 @@ class _CustomerMainPageState extends State<CustomerMainPage> {
const Gap(32),
const TextWidget(text: 'Menu'),
const Gap(16),
MenuWidget(
icon: FontAwesomeIcons.eraser,
text: 'Remove Stock',
MenuWidget2(
// icon: FontAwesomeIcons.diagramNext,
text: 'Diagnose by ',
description: 'aaa',
onPressed: () => {context.push('/deletestock')},
color: 'green',
),
const Gap(32),
ButtonWidget(text: 'Log Out', onPressed: signOut)

View file

@ -1,13 +1,73 @@
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:pharmacy_mobile/tables/ref_medicines.dart';
import 'package:pharmacy_mobile/tables/storage.dart';
import 'package:pharmacy_mobile/widgets/button_widget.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart';
import 'package:pharmacy_mobile/widgets/title_widget.dart';
import 'package:animated_notch_bottom_bar/animated_notch_bottom_bar/animated_notch_bottom_bar.dart';
class CustomerSearchPage extends StatelessWidget {
final NotchBottomBarController? controller;
const CustomerSearchPage({super.key, this.controller});
class CustomerSearchPage extends StatefulWidget {
// final NotchBottomBarController? controller;
// final
const CustomerSearchPage({super.key});
@override
State<CustomerSearchPage> createState() => _CustomerSearchPageState();
}
class _CustomerSearchPageState extends State<CustomerSearchPage> {
final _searchController = TextEditingController();
final _storage = Storage();
final _refMedicines = RefMedicines();
late String imageUrl = '';
// List<String> imageUrl = [];
void getURL() async {
final image = await _storage.getPublicURL('ref_medicines_images', 'cb6eafdb-d86f-460a-9571-44446570d4cb.webp');
log(image);
setState(() {
imageUrl = image;
});
final meds = await _refMedicines.getList2();
log(meds.toString());
}
// void getURLs() async {
// try {
// for (int i = 1; i <= 4; i++) {
// final image = await _storage.getPublicURL(
// context,
// 'ref_medicines_images',
// 'ca3e2949-4964-4d25-a274-2a18608b7bdb.webp', // Replace with your actual image path
// );
// log(image);
// setState(() {
// imageUrl.add(image);
// });
// }
// } catch (e, stackTrace) {
// log('Error getting URLs: $e', stackTrace: stackTrace);
// }
// }
void _filterList() {}
@override
void initState() {
getURL();
super.initState();
}
@override
void dispose() {
_searchController.dispose();
imageUrl = '';
super.dispose();
}
@override
Widget build(BuildContext context) {
@ -24,8 +84,36 @@ class CustomerSearchPage extends StatelessWidget {
logoSize: 90,
),
const Gap(32),
const TextWidget(text: 'Search'),
const Gap(16),
Container(
padding: EdgeInsets.only(left: 32, right: 32),
child: Column(
children: [
InputWidget(label: '', controller: _searchController),
const Gap(8),
ButtonWidget(
text: 'Search',
onPressed: _filterList,
width: 160,
)
],
),
),
const Gap(32),
Center(
child: imageUrl.isNotEmpty
? ClipRRect(
borderRadius: BorderRadius.circular(12), // Add your desired border radius here
child: Image.network(imageUrl,
fit: BoxFit.cover,
width: 250,
height: 250,
cacheWidth: (250 * MediaQuery.of(context).devicePixelRatio).round()))
: const CircularProgressIndicator(
color: Colors.white,
strokeWidth: 4,
padding: EdgeInsets.all(8),
),
)
],
)
],