import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:gap/gap.dart'; import 'package:pharmacy_mobile/auth/auth_service.dart'; import 'package:pharmacy_mobile/blocs/user/functions/bloc_getuser.dart'; import 'package:pharmacy_mobile/blocs/user/functions/bloc_setuser.dart'; import 'package:pharmacy_mobile/blocs/user/user_bloc.dart'; import 'package:pharmacy_mobile/blocs/user/user_event.dart'; import 'package:pharmacy_mobile/tables/cart.dart'; import 'package:pharmacy_mobile/tables/stocks.dart'; import 'package:pharmacy_mobile/tables/storage.dart'; import 'package:pharmacy_mobile/widgets/customer_pagebackground_widget.dart'; import 'package:pharmacy_mobile/widgets/customer_title_widget.dart'; import 'package:pharmacy_mobile/widgets/indicator_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/item_card_widget.dart'; class CustomerSearchPage extends StatefulWidget { const CustomerSearchPage({super.key}); @override State createState() => _CustomerSearchPageState(); } class _CustomerSearchPageState extends State { final _searchController = TextEditingController(); final _authService = AuthService(); final _storage = Storage(); // final _refMedicines = RefMedicines(); final _stocks = Stocks(); final _carts = Carts(); // final _refMedicines = RefMedicines(); late String imageUrl = ''; late List _stockList = []; late List _cartList = []; // late final List _medicinesList = []; Future _getURL() async { final image = await _storage.getPublicURL('ref_medicines_images', 'a3e430fe-86c1-4d46-9c6a-aed2dae57fef.webp'); setState(() { imageUrl = image; }); } Future _getAllStocks() async { _stockList = await _stocks.getList(); } Future _getCurrentUserId() async { final result = _authService.getCurrentUserId(); return result.toString(); } Future _getCarts() async { final currentUser = await _getCurrentUserId(); _cartList = await _carts.getCart(currentUser); } // Future _getAllMedicines() async { // _medicinesList = await _refMedicines.getList(); // } // void getURLs() async { // try {demo@ // 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 _getCarts(); // // // await _getAllMedicines(); await _getURL(); } @override void initState() { autoRun(); super.initState(); } @override void dispose() { _searchController.dispose(); imageUrl = ''; _stockList = []; super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( body: CustomerPagebackgroundWidget( height: MediaQuery.of(context).size.height + 800, child: Column( children: [ Column( children: [ const Gap(68), const CustomerTitleWidget(), const Gap(8), Container( padding: const EdgeInsets.symmetric(horizontal: 8), child: Column( children: [ InputWidget( label: '', controller: _searchController, placeholder: 'Search for medicine', ), ], ), ), const Gap(32), const IndicatorWidget(text: 'All Stocks'), const Gap(8), SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( children: [ if (imageUrl.isEmpty) const Row( children: [ ItemCardWidget( imageUrl: 'imageUrl', text: 'item[medicine_name]', subtext: 'item[generic_name]', price: 123, quantity: 123, isLoading: true, cart: 0), ItemCardWidget( imageUrl: 'imageUrl', text: 'item[medicine_name]', subtext: 'item[generic_name]', price: 123, quantity: 123, isLoading: true, cart: 0), ItemCardWidget( imageUrl: 'imageUrl', text: 'item[medicine_name]', subtext: 'item[generic_name]', price: 123, quantity: 123, isLoading: true, cart: 0) ], ) else for (var item in _stockList) ItemCardWidget( imageUrl: imageUrl, text: item['medicine_name'].toString(), subtext: item['generic_name'].toString(), price: item['price'].toDouble(), quantity: item['quantity'].toDouble(), isLoading: false, cart: 0), ], )), const Gap(16), const IndicatorWidget(text: 'For Fever'), const Gap(8), SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( children: [ ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 0, isLoading: imageUrl.isEmpty, cart: 2), ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ], )), const Gap(16), const IndicatorWidget(text: 'For Headaches'), const Gap(8), SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( children: [ ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ], )), const Gap(16), const IndicatorWidget(text: 'For Colds and Coughes'), const Gap(8), SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( children: [ ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ], )), const Gap(16), const IndicatorWidget(text: 'For Infection and Irritations'), const Gap(8), SingleChildScrollView( scrollDirection: Axis.horizontal, child: Row( children: [ ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ItemCardWidget( imageUrl: imageUrl, text: 'sample', subtext: 'generic_name', price: 500, quantity: 15, isLoading: imageUrl.isEmpty, cart: 0), ], )), ], ) ], ))); } }