

import 'package:app_hit_a_wod/src/providers/auth.provider.dart';
import 'package:app_hit_a_wod/src/styles.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_neumorphic/flutter_neumorphic.dart';
import 'package:provider/provider.dart';

class NoSubscriptionsPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(40),
      decoration: BoxDecoration(
        gradient: neuGradient
      ),
      child: Scaffold(
        backgroundColor: Colors.transparent,
        body: PageView(
          children: <Widget>[
            _pageNoSubscriptions(context)
          ]
        )
      ),
    );
  }

  _pageNoSubscriptions(BuildContext context) {
    final auth = Provider.of<AuthProvider>(context, listen: false);
    return SafeArea(
      child: Column(children: <Widget>[
        ClipRRect(borderRadius: BorderRadius.circular(8), child: Image(image: AssetImage("assets/img/tired.jpg"), height: 250, width: double.infinity, fit: BoxFit.cover)),
        SizedBox(height: 40),
        Text("No tienes suscripciones activas", style: Theme.of(context).textTheme.title, textAlign: TextAlign.center),
        SizedBox(height: 20),
        Text("No tienes ninguna suscripción activa o bien se han caducado tus suscripciones con los boxes. Para volver a activar el acceso, por favor dirígete a tu centro de Crossfit y activa una nueva suscripción.", style: Theme.of(context).textTheme.body1, textAlign: TextAlign.center),
        Expanded(child: SizedBox(),),
        neuButton(NeumorphicButton( //boto de iniciar suscripcio amb renovacio automatica
          padding: EdgeInsets.symmetric(horizontal: 20, vertical: 20),
          style: neuButtonStyle(),
          child: Text("Recargar suscripciones", style: Theme.of(context).textTheme.display2, textAlign: TextAlign.center,),
          onClick: () async {
            try {
              var resp = await auth.refreshToken();
              if(resp.subscriptions.length > 0) {
                Navigator.pushReplacementNamed(context, 'home');
              }
            } on Exception catch(e) {
              auth.logout();
              Navigator.pushReplacementNamed(context, 'login');
            }
            
          },
        ), colors: secondaryShadow, width: double.infinity),
        SizedBox(height: 20),
        neuButton(NeumorphicButton( //boto de iniciar suscripcio amb renovacio automatica
          padding: EdgeInsets.symmetric(horizontal: 20, vertical: 20),
          style: neuButtonStyle(),
          child: Text("Cerrar sesión", style: Theme.of(context).textTheme.body1, textAlign: TextAlign.center,),
          onClick: () {
            Navigator.pushReplacementNamed(context, 'login');
            auth.logout();
          },
        ), width: double.infinity)
      ]),
    );
  }
}