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.
100 lines
3.9 KiB
Dart
100 lines
3.9 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:diplomaticquarterapp/config/size_config.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import '../base/base_view.dart';
|
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
|
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
|
|
import 'package:diplomaticquarterapp/widgets/others/rounded_container.dart';
|
|
import 'dart:typed_data';
|
|
import 'dart:convert';
|
|
|
|
import 'package:diplomaticquarterapp/core/viewModels/pharmacies_view_model.dart';
|
|
import 'package:map_launcher/map_launcher.dart';
|
|
|
|
class PharmaciesList extends StatefulWidget {
|
|
String medicineID;
|
|
int url;
|
|
|
|
PharmaciesList({this.url, this.medicineID});
|
|
|
|
@override
|
|
_PharmaciesListState createState() => _PharmaciesListState();
|
|
|
|
//
|
|
}
|
|
|
|
class _PharmaciesListState extends State<PharmaciesList> {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return BaseView<PharmacyViewModel>(
|
|
//onModelReady: (model) => model.getMedicine(),
|
|
builder: (BuildContext context, PharmacyViewModel model, Widget child) =>
|
|
AppScaffold(
|
|
appBarTitle: 'Pharmacies List',
|
|
body: !model.isFinished
|
|
? AppCircularProgressIndicator()
|
|
: model.hasError
|
|
? Center(
|
|
child: Text(
|
|
model.errorMsg,
|
|
style: TextStyle(color: Colors.red),
|
|
),
|
|
)
|
|
: Container(
|
|
height: SizeConfig.screenHeight,
|
|
child: ListView(
|
|
shrinkWrap: true,
|
|
scrollDirection: Axis.vertical,
|
|
physics: AlwaysScrollableScrollPhysics(),
|
|
children: <Widget>[
|
|
RoundedContainer(
|
|
child: Row(
|
|
children: <Widget>[
|
|
Expanded(
|
|
flex: 1,
|
|
child: ClipRRect(
|
|
borderRadius: BorderRadius.all(
|
|
Radius.circular(7),
|
|
),
|
|
child: Image.memory(
|
|
dataFromBase64String(
|
|
widget.url.toString()),
|
|
height:
|
|
SizeConfig.imageSizeMultiplier * 19,
|
|
width:
|
|
SizeConfig.imageSizeMultiplier * 18,
|
|
fit: BoxFit.cover,
|
|
),
|
|
),
|
|
),
|
|
Expanded(
|
|
flex: 3,
|
|
child: Column(
|
|
mainAxisAlignment:
|
|
MainAxisAlignment.start,
|
|
crossAxisAlignment:
|
|
CrossAxisAlignment.stretch,
|
|
children: <Widget>[],
|
|
),
|
|
)
|
|
],
|
|
))
|
|
],
|
|
),
|
|
)),
|
|
);
|
|
}
|
|
|
|
Image imageFromBase64String(String base64String) {
|
|
return Image.memory(base64Decode(base64String));
|
|
}
|
|
|
|
Uint8List dataFromBase64String(String base64String) {
|
|
return base64Decode(base64String);
|
|
}
|
|
|
|
String base64String(Uint8List data) {
|
|
return base64Encode(data);
|
|
}
|
|
}
|