import 'package:anyway/layout.dart'; import 'package:anyway/structs/preferences.dart'; import 'package:anyway/utils/fetch_trip.dart'; import 'package:flutter/material.dart'; import "package:anyway/structs/trip.dart"; class NewTripPage extends StatefulWidget { const NewTripPage({Key? key}) : super(key: key); @override _NewTripPageState createState() => _NewTripPageState(); } class _NewTripPageState extends State { final GlobalKey _formKey = GlobalKey(); final TextEditingController latController = TextEditingController(); final TextEditingController lonController = TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text('New Trip'), ), body: Form( key: _formKey, child: Padding( padding: const EdgeInsets.all(15.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ TextFormField( decoration: const InputDecoration(hintText: 'Lat'), controller: latController, validator: (String? value) { if (value == null || value.isEmpty || double.tryParse(value) == null){ return 'Please enter a floating point number'; } return null; }, ), TextFormField( decoration: const InputDecoration(hintText: 'Lon'), controller: lonController, validator: (String? value) { if (value == null || value.isEmpty || double.tryParse(value) == null){ return 'Please enter a floating point number'; } return null; }, ), Divider(height: 15, color: Colors.transparent), ElevatedButton( onPressed: () { if (_formKey.currentState!.validate()) { List startPoint = [ double.parse(latController.text), double.parse(lonController.text) ]; UserPreferences preferences = UserPreferences(); preferences.load(); Future trip = fetchTrip(startPoint, preferences); Navigator.of(context).push( MaterialPageRoute( builder: (context) => BasePage(mainScreen: "map", trip: trip) ) ); } }, child: const Text('Create trip'), ), ], ), ) ) ); } }