import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:grostore/app_lang.dart'; import 'package:grostore/configs/theme_config.dart'; import 'package:grostore/custom_ui/Boxdecorations.dart'; import 'package:grostore/custom_ui/common_appbar.dart'; import 'package:grostore/custom_ui/shimmers.dart'; import 'package:grostore/helpers/device_info_helper.dart'; import 'package:grostore/helpers/shared_value_helper.dart'; import 'package:grostore/presenters/stock_locations_presenter.dart'; import 'package:toast/toast.dart'; import 'package:provider/provider.dart'; class StockLocations extends StatefulWidget { StockLocations({Key? key}) : super(key: key); @override _StockLocationsState createState() => _StockLocationsState(); } class _StockLocationsState extends State { @override void initState() { // TODO: implement initState super.initState(); Provider.of(context,listen: false).setContext(context); } @override void dispose() { super.dispose(); } @override void didChangeDependencies() { super.didChangeDependencies(); } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, appBar: buildAppBar(context), body: Consumer( builder: (context,data,child) { return RefreshIndicator( //color: MyTheme.accent_color, backgroundColor: Colors.white, onRefresh: data.onRefresh, displacement: 0, child: CustomScrollView( physics: const BouncingScrollPhysics( parent: AlwaysScrollableScrollPhysics()), slivers: [ SliverList( delegate: SliverChildListDelegate([ Padding( padding: const EdgeInsets.all(18.0), child: buildLanguageMethodList(data), ), ]), ) ], ), ); } )); } AppBar buildAppBar(BuildContext context) { return CommonAppbar.show(title: AppLang.local(context).locations, context: context); } buildLanguageMethodList(StockLocationsPresenter data) { if (!data.isLocationInit && data.locations.isEmpty) { return SingleChildScrollView( child: Shimmers.list(10, getWidth(context), 20)); } else if (data.locations.isNotEmpty) { return SingleChildScrollView( child: ListView.separated( separatorBuilder: (context, index) { return const SizedBox( height: 14, ); }, itemCount: data.locations.length, scrollDirection: Axis.vertical, physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, itemBuilder: (context, index) { return buildCard(index,data); }, ), ); } else if (data.isLocationInit && data.locations.isEmpty) { return Container( height: 100, child: Center( child: Text( AppLang.local(context).data_is_not_available, style: TextStyle(color: ThemeConfig.fontColor), ))); } } GestureDetector buildCard(index,StockLocationsPresenter data) { return GestureDetector( onTap: () { print(data.locations[index].id); data.onchange(data.locations[index].id); }, child: Stack( children: [ AnimatedContainer( duration: const Duration(milliseconds: 400), decoration: BoxDecorations.basic().copyWith( border: Border.all( color: stock_location_id.$ == data.locations[index].id.toString() ? ThemeConfig.accentColor: ThemeConfig.lightGrey, width: stock_location_id.$ == data.locations[index].id.toString() ? 1.0 : 0.0)), child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( width: 150, height: 50, alignment: Alignment.center, child: Padding( padding: const EdgeInsets.only(left: 8.0), child: Text( "${data.locations[index].name}", textAlign: TextAlign.left, overflow: TextOverflow.ellipsis, style: TextStyle( color: ThemeConfig.fontColor, fontSize: 14, height: 1.6, fontWeight: FontWeight.bold), ), ), ), ]), ), // Positioned( // left: 16, // top: 16, // child: buildCheckContainer(data.selectedIndex == index), // ) ], ), ); } // Container buildCheckContainer(bool check) { // return check // ? Container( // height: 16, // width: 16, // decoration: BoxDecoration( // borderRadius: BorderRadius.circular(16.0), color: Colors.green), // child: Padding( // padding: const EdgeInsets.all(3), // child: Icon(Icons.check, color: Colors.white, size: 10), // ), // ) // : Container(); // } }