import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; //import 'package:collection/collection.dart'; import 'dart:math'; import '../../app.dart'; import '../../common/constants.dart'; import '../../common/utils.dart'; import '../../data/repository/_dao.dart'; import '../../data/models/_models.dart'; import '../components/_components.dart'; class Detail_dm5hView extends StatefulWidget { final Object? extra; Detail_dm5hView({super.key, this.extra}); @override State createState() => _Detail_dm5hViewState(); } class _Detail_dm5hViewState extends State { late Detail_dm5hController _view; @override void initState() { super.initState(); _view = Detail_dm5hController()..selectedIndex = widget.extra as int; } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { final app = context.watch(); return ChangeNotifierProvider( create: (context) => _view, child: Consumer( builder: (context, view, child) => Scaffold( backgroundColor: Color(0xffffffff), body: SingleChildScrollView( child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, children: [ Stack( alignment: Alignment.topLeft, children: [ ///***If you have exported images you must have to copy those images in assets/images directory. Image( image: NetworkImage( 'https://images.unsplash.com/photo-1599669454699-248893623440?ixid=MnwxMjA3fDB8MHxzZWFyY2h8MTd8fGhlYWRwaG9uZXN8ZW58MHx8MHx8&ixlib=rb-1.2.1&w=1000&q=80', ), height: MediaQuery.of(context).size.height * 0.5, width: MediaQuery.of(context).size.width, fit: BoxFit.cover, ), Container( margin: EdgeInsets.all(0), padding: EdgeInsets.all(0), width: 30, height: 30, decoration: BoxDecoration( color: Color(0x1f000000), shape: BoxShape.rectangle, borderRadius: BorderRadius.zero, border: Border.all(color: Color(0x4d9e9e9e), width: 1), ), child: Padding( padding: EdgeInsets.fromLTRB(16, 16, 0, 0), child: IconButton( icon: Icon( Icons.arrow_back_ios, color: Color(0xffffffff), size: 24, ), onPressed: () { app.back(); }, ), ), ), ], ), Padding( padding: EdgeInsets.all(16), child: SingleChildScrollView( child: Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, children: [ Padding( padding: EdgeInsets.fromLTRB(0, 0, 0, 16), child: Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.max, children: [ Icon( Icons.shopping_cart, color: Color(0xff3a57e8), size: 18, ), Padding( padding: EdgeInsets.fromLTRB(7, 0, 0, 0), child: Text( Constants.shopping_, textAlign: TextAlign.start, overflow: TextOverflow.clip, style: TextStyle( fontWeight: FontWeight.w700, fontStyle: FontStyle.normal, fontSize: 14, color: Color(0xff3a57e8), ), ), ), ], ), ), Padding2520_wweb( Icons.insert_link, Constants.a1QVBVDBF1222_, ), Padding( padding: EdgeInsets.fromLTRB(0, 16, 0, 0), child: Text( Constants.loremIpsumOrLipsumAsItI_1, textAlign: TextAlign.start, overflow: TextOverflow.clip, style: TextStyle( fontWeight: FontWeight.w400, fontStyle: FontStyle.normal, fontSize: 12, color: Color(0xff000000), ), ), ), Padding2522_3z73(Constants.deliveryLocation_), Padding2523_p4he( Constants.k01362Tbilisi_, Constants.k2PetreMelikshliSt_, Icons.location_on, ), Padding( padding: EdgeInsets.fromLTRB(0, 16, 0, 0), child: Text( Constants.uSD1990_, textAlign: TextAlign.start, overflow: TextOverflow.clip, style: TextStyle( fontWeight: FontWeight.w700, fontStyle: FontStyle.normal, fontSize: 18, color: Color(0xff000000), ), ), ), Padding( padding: EdgeInsets.fromLTRB(0, 16, 0, 0), child: MaterialButton( onPressed: () { view._click(); }, color: Color(0xff3a57e8), elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(24.0), ), padding: EdgeInsets.all(16), child: Text( Constants.addToCart_, style: TextStyle( fontSize: 14, fontWeight: FontWeight.w400, fontStyle: FontStyle.normal, ), ), textColor: Color(0xffffffff), height: 42, minWidth: MediaQuery.of(context).size.width, ), ), ], ), ), ), ], ), ), ), ), ); } } class Detail_dm5hController with ChangeNotifier { int? selectedIndex; dynamic getModel(Dao repository) { final items = repository.getAll(); return (selectedIndex == null || selectedIndex! >= items.length) ? repository.create() : items[selectedIndex!]; } void _click() { /* TODO */ } }