import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:photolink_beta/Custome_Script/size_config.dart'; import 'package:photolink_beta/Model/Trip/Trip.dart'; import 'package:photolink_beta/secreens/photolinkmap.dart'; class Card_Trip extends StatelessWidget { final Trip trip; String tripId; String trip_image; Card_Trip({this.trip}); double ScaleFactorWith() { if (SizeConfig.screenWidth > 270.0 && SizeConfig.screenWidth <= 760) { return 0.5; } else if (SizeConfig.screenWidth > 760 && SizeConfig.screenWidth <= 1024.0) { return 0.65; } else { return 1; } } double ScaleFactorHight() { if (SizeConfig.screenHeight > 450 && SizeConfig.screenHeight <= 750.0) { return 0.5; } else if (SizeConfig.screenHeight > 750.0 && SizeConfig.screenHeight <= 1366.0) { return 0.8; } else { return 0.6; } } int heightIndicators() { if (SizeConfig.screenWidth >= 768 && SizeConfig.screenWidth <= 1024) { return 5; } else return 4; } @override Widget build(BuildContext context) { return Container( padding: EdgeInsets.symmetric( horizontal: 0.05 * SizeConfig.heightMultiplier * ScaleFactorHight(), vertical: /*review this*/ 0 * SizeConfig.heightMultiplier * ScaleFactorWith()), constraints: BoxConstraints( maxHeight: 150 * SizeConfig.widthMultiplier * ScaleFactorWith(), minHeight: 120 * SizeConfig.widthMultiplier * ScaleFactorWith(), maxWidth: 100 * SizeConfig.widthMultiplier * ScaleFactorWith(), ), child: Card( color: Colors.grey, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), margin: EdgeInsets.symmetric( horizontal: 5 * SizeConfig.widthMultiplier * ScaleFactorWith(), vertical: 2* SizeConfig.heightMultiplier * ScaleFactorHight()), elevation: 0.4, child: Container( decoration: BoxDecoration( boxShadow: [ BoxShadow( spreadRadius: 0.5, color: Color.fromARGB(10, 256, 256, 227), blurRadius: 8, offset: Offset(3, 1), // changes position of shadow ), ], ), child: InkWell( onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => photolinkmap(trip: trip))); }, child: LimitedBox( maxWidth: 50 * SizeConfig.widthMultiplier * ScaleFactorWith(), maxHeight: 60 * SizeConfig.heightMultiplier * ScaleFactorWith(), child: Container( constraints: BoxConstraints( maxHeight: 60 * SizeConfig.heightMultiplier * ScaleFactorHight(), minHeight: 50 * SizeConfig.heightMultiplier * ScaleFactorHight()), decoration: BoxDecoration( color: Colors.white70, borderRadius: BorderRadius.circular(20), ), child: Column( children: [ Expanded( flex: 2, child: Container( height: 10 * SizeConfig.heightMultiplier * ScaleFactorHight(), width: double.infinity, child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Expanded( child: Stack(children: [ Container( constraints: BoxConstraints( maxHeight: 45 * SizeConfig.heightMultiplier * ScaleFactorHight()), decoration: BoxDecoration( borderRadius: BorderRadius.only( topLeft: Radius.circular(20), topRight: Radius.circular(20)), image: DecorationImage( image: NetworkImage( "http://51.222.156.166:8000" + (trip.picture!=null && trip.picture.isNotEmpty&& trip.picture!="null"?trip.picture:"/media/camelsoftcover.jpeg")), fit: BoxFit.cover)), ), Positioned( right: 2 * SizeConfig.widthMultiplier * ScaleFactorWith(), top: 1.5 * SizeConfig.widthMultiplier * ScaleFactorWith(), child: Container( // color: Colors.green, constraints: BoxConstraints( maxHeight: 20 * SizeConfig.heightMultiplier * ScaleFactorHight(), maxWidth: 40 * SizeConfig.heightMultiplier * ScaleFactorHight()), child: Padding( padding: EdgeInsets.symmetric( horizontal: 5 * SizeConfig.widthMultiplier * ScaleFactorWith(), vertical: 3 * SizeConfig.heightMultiplier * ScaleFactorWith(), ), child: Visibility( visible: trip.end_date != null ? true : false, child: Container( constraints: BoxConstraints( maxHeight: 15 * SizeConfig .widthMultiplier * ScaleFactorWith()), padding: EdgeInsets.symmetric( horizontal: 6 * SizeConfig .widthMultiplier * ScaleFactorWith(), vertical: 1.5 * SizeConfig .heightMultiplier * ScaleFactorHight(), ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), color: Colors.orange, ), child: Padding( padding: EdgeInsets.symmetric( horizontal: 1 * SizeConfig .widthMultiplier * ScaleFactorWith(), ), child: Container( height: heightIndicators() * SizeConfig .heightMultiplier * ScaleFactorHight(), width: 50 * SizeConfig .widthMultiplier * ScaleFactorWith(), child: Padding( padding: EdgeInsets.fromLTRB( 0 * SizeConfig .widthMultiplier * ScaleFactorWith(), 0 * SizeConfig .heightMultiplier * ScaleFactorHight(), 0 * SizeConfig .widthMultiplier * ScaleFactorWith(), 0 * SizeConfig .heightMultiplier * ScaleFactorHight()), child: Center( child: Text( trip.end_date!="null" && trip.end_date!= null ? '${trip.end_date}' : "IN PROGRESS", style: TextStyle( color: Colors.white, fontFamily: "Almarai Bold", fontSize: SizeConfig .textMultiplier * 6 * ScaleFactorWith(), ), maxLines: 1, overflow: TextOverflow .ellipsis, ), ), ), ), )), ), ), ), ), Positioned( left: 2 * SizeConfig.widthMultiplier * ScaleFactorWith(), top: 10 * SizeConfig.widthMultiplier * ScaleFactorWith(), child: Container( // color: Colors.green, constraints: BoxConstraints( maxHeight: 40 * SizeConfig.heightMultiplier * ScaleFactorHight(), maxWidth: 40 * SizeConfig.heightMultiplier * ScaleFactorHight()), child: Text( '${DateFormat("yyyy-MM-dd").format(DateTime.parse(trip.start_date))}', style: TextStyle( color: Colors.white, fontFamily: "Almarai Bold", fontSize: SizeConfig .textMultiplier * 6 * ScaleFactorWith(), ), maxLines: 1, overflow: TextOverflow .ellipsis, ), ), ) ]), ) ], ), )), Expanded( flex: 2, child: Container( constraints: BoxConstraints( maxHeight: 40 * SizeConfig.heightMultiplier * ScaleFactorHight()), decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), ), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Expanded( child: Container( child: Column( children: [ Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.start, children: [], ), Padding( padding: EdgeInsets.fromLTRB( 3 * SizeConfig.widthMultiplier, 2 * SizeConfig .heightMultiplier * ScaleFactorHight() * ScaleFactorHight(), 3 * SizeConfig.widthMultiplier, 0 * SizeConfig .heightMultiplier * ScaleFactorHight() * ScaleFactorHight()), child: Column( children: [ Align( alignment: Alignment.centerRight, child: Padding( padding: EdgeInsets.fromLTRB( 0 * SizeConfig .widthMultiplier, 0 * SizeConfig .heightMultiplier * ScaleFactorHight() * ScaleFactorHight(), 0 * SizeConfig .widthMultiplier, 0 * SizeConfig .heightMultiplier * ScaleFactorHight() * ScaleFactorHight()), child: Text( trip.name.toString(), maxLines: 2, style: TextStyle( fontFamily: "Almarai extra Bold", fontSize: SizeConfig .textMultiplier * 6.5 * ScaleFactorWith(), height: 1, ), overflow: TextOverflow.ellipsis, ), ), ), Container( // color: Colors.yellow, constraints: BoxConstraints( maxHeight: 15 * SizeConfig .heightMultiplier * ScaleFactorHight() * ScaleFactorHight()), padding: EdgeInsets.fromLTRB( 1 * SizeConfig .widthMultiplier, 2 * SizeConfig .heightMultiplier * ScaleFactorHight() * ScaleFactorHight(), 1 * SizeConfig .widthMultiplier, 0 * SizeConfig .heightMultiplier * ScaleFactorHight() * ScaleFactorHight()), child: Row( children: [ Flexible( child: Text( "${trip.description}", style: TextStyle( fontFamily: "Almarai Bold", fontWeight: FontWeight.bold, fontSize: SizeConfig .textMultiplier * 5 * ScaleFactorWith(), color: Colors.black, ), maxLines: 1, overflow: TextOverflow .ellipsis, ), ), ], ), /************btn *****************/ /************btn *****************/ ), ], ), ), ], ), Flexible( child: SizedBox( height: SizeConfig.screenHeight * 0.4, )), Container( color: Colors.green.withAlpha(4), constraints: BoxConstraints( maxHeight: 25 * SizeConfig.widthMultiplier * ScaleFactorWith()), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Padding( padding: EdgeInsets.symmetric( horizontal: 1 * SizeConfig .widthMultiplier), child: Container( constraints: BoxConstraints( maxHeight: 20 * SizeConfig .heightMultiplier * ScaleFactorHight()), margin: EdgeInsets.fromLTRB( 10, 1, 10, 5), width: 10 * SizeConfig .imageSizeMultiplier, height: 10 * SizeConfig .imageSizeMultiplier, decoration: new BoxDecoration( shape: BoxShape.circle, image: DecorationImage( image: NetworkImage( "http://51.222.156.166:8000" + (trip.picture!=null&& trip.picture.isNotEmpty && trip.picture!="null"?trip.picture:"/media/camelsoft.jpeg")), fit: BoxFit.cover))), ), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, children: [ Padding( padding: EdgeInsets.symmetric( horizontal: 5 * SizeConfig .widthMultiplier), child: RichText( maxLines: 2, overflow: TextOverflow .ellipsis, text: TextSpan(children: [ TextSpan( text: ' ' + trip .name + ' ', style: TextStyle( color: Colors.black, fontSize: SizeConfig .textMultiplier * 5 * ScaleFactorWith(), fontFamily: 'Almarai Bold', ), ), ]), ), ), ], ), ), ]), ), ], )), ) ], ), )), ], ), ), ), ), )), ); } }