56 lines
2.1 KiB
Dart
56 lines
2.1 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:geojson/geojson.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:rogapp/index/index_controller.dart';
|
|
import 'package:rogapp/widgets/bottom_sheet_widget.dart';
|
|
|
|
class ListWidget extends StatelessWidget {
|
|
ListWidget({ Key? key }) : super(key: key);
|
|
|
|
final IndexController indexController = Get.find<IndexController>();
|
|
|
|
Image getImage(int index){
|
|
if(indexController.locations[0].collection[index].properties!["photos"] == null || indexController.locations[0].collection[index].properties!["photos"] == ""){
|
|
return Image(image: AssetImage('assets/images/empty_image.png'));
|
|
}
|
|
else{
|
|
return Image(image: NetworkImage(indexController.locations[0].collection[index].properties!["photos"]));
|
|
}
|
|
}
|
|
|
|
void changeCurrentFeature(GeoJsonFeature fs){
|
|
if(indexController.currentFeature.length > 0){
|
|
indexController.currentFeature.clear();
|
|
}
|
|
indexController.currentFeature.add(fs);
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Obx(() =>
|
|
indexController.locations.length > 0 ?
|
|
ListView.builder(
|
|
itemCount: indexController.locations[0].collection.length,
|
|
shrinkWrap: true,
|
|
itemBuilder: (_, index){
|
|
return Card(
|
|
child: ListTile(
|
|
onTap: (){
|
|
GeoJsonFeature gf = indexController.locations[0].collection[index];
|
|
changeCurrentFeature(gf);
|
|
showModalBottomSheet(
|
|
isScrollControlled: true,
|
|
context: context,
|
|
builder: (context) => BottomSheetWidget(),
|
|
);
|
|
},
|
|
leading: getImage(index),
|
|
title: Text(indexController.locations[0].collection[index].properties!['location_name'].toString()),
|
|
subtitle: Text(indexController.locations[0].collection[index].properties!['category']),
|
|
),
|
|
);
|
|
},
|
|
) : Container(width: 0, height: 0,),
|
|
);
|
|
}
|
|
} |