Travel Widget

Questa documentazione descrive i widget principali utilizzati per gestire la ricerca e la visualizzazione dei risultati di viaggio. I widget inclusi sono TravelSearchForm e TravelSearchResult.

TravelSearchForm Widget

Il TravelSearchForm è un widget StatefulWidget utilizzato per consentire agli utenti di cercare viaggi specificando dettagli come il numero di posti, la località di partenza e arrivo, la data e gli orari.

Definizione della classe

class TravelSearchForm extends StatefulWidget {
  final Function(int seats, AdamLocation departure, AdamLocation arrival, DateTime selectedDate, TimeOfDay selectedTime, TimeOfDay selectedArrivalTime)
      onResult;

  const TravelSearchForm({super.key, required this.onResult});
  ....

Costruttore

  • onResult (Function): Una funzione callback che riceve i seguenti parametri:

    • seats (int): il numero di posti selezionati.

    • departure (AdamLocation): la località di partenza.

    • arrival (AdamLocation): la località di arrivo.

    • selectedDate (DateTime): la data selezionata.

    • selectedTime (TimeOfDay): l’orario di partenza selezionato.

    • selectedArrivalTime (TimeOfDay): l’orario di arrivo selezionato.

Esempi di utilizzo

L’esempio sotto mostra una form di ricerca viaggio.

../../../_images/travel1.png
TravelSearchForm(
  onResult: (seats, departure, arrival, selectedDate, selectedTime, selectedArrivalTime) {
    // Gestisci i risultati della ricerca
  },
);

TravelSearchResult Widget

Il TravelSearchResult è un widget StatefulWidget utilizzato per visualizzare i risultati della ricerca di viaggio. Utilizza un’istanza di TravelResultViewModel per rappresentare i dettagli del viaggio.

Definizione della classe

class TravelSearchResult extends StatefulWidget {
  final Function() onTap;
  final TravelResultViewModel travelResult;

  const TravelSearchResult({super.key, required this.travelResult, required this.onTap});

Costruttore

  • onTap (Function): funzione callback eseguita quando il widget viene premuto.

  • travelResult (TravelResultViewModel): un’istanza di TravelResultViewModel che rappresenta i dettagli di un viaggio. Contiene informazioni come l’owner, i posti disponibili, la distanza, e gli orari di partenza e arrivo.

Esempi di utilizzo

L’esempio sotto mostra una card di result relativa ad un viaggio.

../../../_images/travel2.png
TravelSearchResult(
    onTap: () => print('Result tapped'),
    travelResult: TravelResultViewModel(
        owner: "Mario Rossi",
        avatarUri: null,
        availableSeats: 4,
        showFrequency: true,
        from: "Fiumicio",
        to: "Roma",
        fromTime: "07:30",
        toTime: "08:30",
        duration: "1:00",
        fromDistance: 2,
        toDistance: 3))