second/lib/src/ui/views/detail_dm5h.dart

217 lines
8.3 KiB
Dart

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<Detail_dm5hView> createState() => _Detail_dm5hViewState();
}
class _Detail_dm5hViewState extends State<Detail_dm5hView> {
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<AppController>();
return ChangeNotifierProvider(
create: (context) => _view,
child: Consumer<Detail_dm5hController>(
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 */
}
}