You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
doctor_app_flutter/lib/widgets/medicine/medicine_item_widget.dart

120 lines
3.8 KiB
Dart

5 years ago
import 'dart:convert';
import 'dart:typed_data';
5 years ago
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/widgets/shared/card_with_bg_widget.dart';
5 years ago
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/material.dart';
5 years ago
import '../shared/app_texts_widget.dart';
import '../shared/rounded_container_widget.dart';
class MedicineItemWidget extends StatefulWidget {
final String label;
final Color backgroundColor;
final bool showBorder;
final bool showArrow;
final bool showPrice;
final Color borderColor;
final String url;
final String price;
MedicineItemWidget(
{@required this.label,
this.backgroundColor = Colors.white,
this.showBorder = true,
this.borderColor = Colors.white,
this.url,
this.showArrow = true, this.showPrice = false, this.price});
4 years ago
@override
_MedicineItemWidgetState createState() => _MedicineItemWidgetState();
}
class _MedicineItemWidgetState extends State<MedicineItemWidget> {
@override
Widget build(BuildContext context) {
return CardWithBgWidget(
// height: SizeConfig.heightMultiplier * 12.9,
bgColor: Colors.transparent,
hasBorder: false,
widget: Padding(
padding: const EdgeInsets.symmetric(
vertical: 4,
),
5 years ago
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
if (widget.url != null)
ClipRRect(
borderRadius: BorderRadius.circular(20.0),
5 years ago
child: Image.network(
widget.url,
height: 25,
width: 30,
errorBuilder: (BuildContext context, Object exception,
StackTrace stackTrace) {
return Text('');
},
)),
Expanded(
child: Center(
child: Padding(
padding: EdgeInsets.all(2.5),
child: Align(
alignment: Alignment.centerLeft,
child: Column(
crossAxisAlignment:CrossAxisAlignment.start,
children: [
AppText(
Helpers.convertToTitleCase(widget.label ?? ''),
fontHeight: 1.4,
color: AppGlobal.appTextColor,
textAlign: TextAlign.start,
fontWeight: FontWeight.w600,
letterSpacing: -0.33,
),
if(widget.showPrice)
AppText(
Helpers.convertToTitleCase(widget.price ?? ''),
fontHeight: 1.4,
color: AppGlobal.appTextColor,
textAlign: TextAlign.start,
fontWeight: FontWeight.w600,
letterSpacing: -0.33,
),
],
),
),
),
),
),
if(widget.showArrow)
Icon(EvaIcons.arrowForward)
],
),
5 years ago
),
// backgroundColor: widget.backgroundColor,
// showBorder: widget.showBorder,
// borderColor: widget.borderColor,
// // margin: 4.0,
// // margin: EdgeInsets.all(4),
// raduis: 10,
);
}
5 years ago
Image imageFromBase64String(String base64String) {
return Image.memory(base64Decode(base64String));
}
5 years ago
Uint8List dataFromBase64String(String base64String) {
return base64Decode(base64String);
}
5 years ago
String base64String(Uint8List data) {
return base64Encode(data);
}
5 years ago
}