Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:auto_size_text/auto_size_text.dart';
- import 'package:cloud_firestore/cloud_firestore.dart';
- import 'package:dotted_border/dotted_border.dart';
- import 'package:easytickets/src/backend/dialogs/dialogDisplayTicket.dart';
- import 'package:easytickets/src/backend/firebase/database.dart';
- import 'package:easytickets/src/backend/language/appLocalizations.dart';
- import 'package:easytickets/src/backend/utils/design/textReferences.dart';
- import 'package:firebase_auth/firebase_auth.dart';
- import 'package:flutter/material.dart';
- import 'package:qr_flutter/qr_flutter.dart';
- class TicketsPage extends StatefulWidget {
- final FirebaseUser user;
- TicketsPage({Key key, @required this.user}) : assert(user != null), super(key: key);
- @override
- _TicketsPageState createState() => _TicketsPageState();
- }
- class _TicketsPageState extends State<TicketsPage> {
- final Firestore db = Firestore.instance;
- int ticketsNumber;
- bool isLoading = true;
- @override
- void initState() {
- Database().getTicketsNumber(widget.user).then((int gettedTicketsNumber) {
- setState(() {
- ticketsNumber = gettedTicketsNumber;
- });
- }).whenComplete(() {
- isLoading = false;
- });
- super.initState();
- }
- @override
- Widget build(BuildContext context) {
- return StreamBuilder<QuerySnapshot>(
- stream: db.collection("data").document(widget.user.uid).collection("tickets").snapshots(),
- builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
- if (snapshot.hasData) {
- return Column(
- mainAxisAlignment: MainAxisAlignment.start,
- crossAxisAlignment: CrossAxisAlignment.start,
- children: <Widget>[
- textPageTitle(context),
- Expanded(
- child: isLoading ? Center(child: CircularProgressIndicator()) : ListView(children: ticketsNumber > 0 ? getTickets(widget.user, snapshot) : <Widget>[placeholderNoTickets(context)])
- )
- ]
- );
- } else if (snapshot.hasError){
- return Center(
- child: AutoSizeText(
- AppLocalizations.of(context).errorGetTicket,
- style: TextReferences().textStyleErrorGetTickets(),
- maxLines: 2,
- softWrap: true
- )
- );
- } else {
- return Center(
- child: CircularProgressIndicator()
- );
- }
- }
- );
- }
- // Metodo per predere i dati dei biglietti nel database
- List<Widget> getTickets(FirebaseUser user, AsyncSnapshot<QuerySnapshot> snapshot) => snapshot.data.documents.map((document) => ticketModel(context, user, document)).toList();
- // Titolo della pagina
- Widget textPageTitle(BuildContext context) {
- return Padding(
- padding: EdgeInsets.only(
- top: MediaQuery.of(context).size.height / 45,
- right: MediaQuery.of(context).size.width / 22.5,
- left: MediaQuery.of(context).size.width / 22.5,
- bottom: MediaQuery.of(context).size.height / 35
- ),
- child: AutoSizeText(
- AppLocalizations.of(context).ticketsPageTitle,
- style: TextReferences().textStyleTicketsPageTile(),
- maxLines: 2,
- softWrap: true
- )
- );
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement