import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/borderedButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/others/close_back.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:google_maps_place_picker/google_maps_place_picker.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:provider/provider.dart'; class PickupLocationFromMap extends StatelessWidget { final Function(PickResult) onPick; final double latitude; final double longitude; final bool isWithAppBar; final String buttonLabel; final Color buttonColor; const PickupLocationFromMap( {Key key, this.onPick, this.latitude, this.longitude, this.isWithAppBar = true, this.buttonLabel, this.buttonColor}) : super(key: key); @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return Scaffold( appBar: isWithAppBar ? AppBar( elevation: 0, textTheme: TextTheme( headline6: TextStyle(color: Colors.white, fontWeight: FontWeight.bold), ), title: Text('Location'), leading: CloseBack(), centerTitle: true, ) : null, body: PlacePicker( apiKey: GOOGLE_API_KEY, enableMyLocationButton: true, automaticallyImplyAppBarLeading: false, autocompleteLanguage: projectViewModel.currentLanguage, enableMapTypeButton: true, selectInitialPosition: true, onPlacePicked: (PickResult result) { print(result.adrAddress); onPick(result); Navigator.of(context).pop(); }, selectedPlaceWidgetBuilder: (_, selectedPlace, state, isSearchBarFocused) { print("state: $state, isSearchBarFocused: $isSearchBarFocused"); return isSearchBarFocused ? Container() : FloatingCard( bottomPosition: 0.0, leftPosition: 0.0, rightPosition: 0.0, width: 500, borderRadius: BorderRadius.circular(12.0), child: state == SearchingState.Searching ? Center(child: CircularProgressIndicator()) : Container( margin: EdgeInsets.all(12), child: BorderedButton( buttonLabel != null ? buttonLabel : TranslationBase.of(context).next, textColor: Colors.white, fontWeight: FontWeight.bold, backgroundColor: buttonColor != null ? buttonColor : Colors.grey[800], fontSize: 14, vPadding: 12, radius: 10, handler: () { onPick(selectedPlace); Navigator.of(context).pop(); }, ), /* SecondaryButton( color: Colors.grey[800], textColor: Colors.white, onTap: () { onPick(selectedPlace); Navigator.of(context).pop(); }, label: TranslationBase.of(context).next, ),*/ ), ); }, initialPosition: LatLng(latitude, longitude), useCurrentLocation: true, ), ); } }