pharmacy_mobile/lib/pages/customer_pages/customer_search_page.dart
2025-02-28 14:08:05 +08:00

185 lines
6.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:pharmacy_mobile/tables/stocks.dart';
import 'package:pharmacy_mobile/tables/storage.dart';
import 'package:pharmacy_mobile/widgets/input_widget.dart';
import 'package:pharmacy_mobile/widgets/item_card_widget.dart';
import 'package:pharmacy_mobile/widgets/logo_widget.dart';
import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
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 _stocks = Stocks();
// final _refMedicines = RefMedicines();
late String imageUrl = '';
late List _stockList = [];
Future<void> _getURL() async {
final image = await _storage.getPublicURL('ref_medicines_images', 'a3e430fe-86c1-4d46-9c6a-aed2dae57fef.webp');
setState(() {
imageUrl = image;
});
}
Future<void> _getAllStocks() async {
_stockList = await _stocks.getList();
}
// 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() {}
void autoRun() async {
await _getAllStocks();
await _getURL();
}
@override
void initState() {
autoRun();
super.initState();
}
@override
void dispose() {
_searchController.dispose();
imageUrl = '';
_stockList = [];
super.dispose();
}
@override
Widget build(BuildContext context) {
const double imageSize = 180;
return Scaffold(
body: PageBackgroundWidget(
dark: true,
// height: MediaQuery.of(context).size.height * 2,
child: Column(
children: [
Column(
children: [
const Gap(96),
const Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Gap(16),
LogoWidget(size: 56),
],
),
const Gap(8),
Container(
padding: const EdgeInsets.only(left: 64, right: 64),
child: Column(
children: [
InputWidget(
label: '',
controller: _searchController,
placeholder: 'Search for medicine',
),
// 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),
// ),
// )
Column(
children: [
Padding(
padding: const EdgeInsets.fromLTRB(0, 8, 0, 8),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ItemCardWidget(
imageUrl: imageUrl,
text: 'sample',
price: 500,
quantity: 15,
),
ItemCardWidget(
imageUrl: imageUrl,
text: 'sample',
price: 20,
quantity: 85,
),
],
),
)
],
),
Column(
children: [
Padding(
padding: const EdgeInsets.fromLTRB(0, 8, 0, 8),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
ItemCardWidget(
imageUrl: imageUrl,
text: 'sample',
price: 500,
quantity: 15,
),
ItemCardWidget(
imageUrl: imageUrl,
text: 'sample',
price: 20,
quantity: 85,
),
],
),
)
],
)
],
)
],
)));
}
}