import 'package:carousel_slider/carousel_slider.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/login/login-type.dart';
import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

import '../../splashPage.dart';

class NotAutPage extends StatefulWidget {
  final String title;
  final String description;
  final List<String> infoList;
  final List<ImagesInfo> imagesInfo;

  NotAutPage(
      {@required this.title,
      @required this.description,
      this.infoList,
      this.imagesInfo});

  @override
  _NotAutPageState createState() => _NotAutPageState();
}

class _NotAutPageState extends State<NotAutPage> {
  @override
  Widget build(BuildContext context) {
    ProjectViewModel projectViewModel = Provider.of(context);
    return Scaffold(
      body: SingleChildScrollView(
        padding: EdgeInsets.all(12),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Texts(
              widget.title ?? 'Service',
              fontWeight: FontWeight.w800,
              fontSize: 25,
              bold: true,
              color: Color(0xff60686b),
            ),
            SizedBox(
              height: 12,
            ),
            Texts(
              widget.description ?? 'Description',
              fontWeight: FontWeight.normal,
              fontSize: 17,
            ),
            if (widget.infoList != null)
              SizedBox(
                height: 12,
              ),
            if (widget.infoList != null)
              ...List.generate(
                widget.infoList.length,
                (index) => Container(
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      Row(
                        children: [
                          Container(
                            width: 40,
                            height: 40,
                            decoration: BoxDecoration(
                                borderRadius: BorderRadius.circular(20),
                                color: Theme.of(context).primaryColor),
                            child: Center(
                              child: Texts(
                                '${index + 1}',
                                color: Colors.white,
                              ),
                            ),
                          ),
                          SizedBox(
                            width: 6,
                          ),
                          Expanded(child: Texts('${widget.infoList[index]}'))
                        ],
                      ),
                      SizedBox(
                        height: 12,
                      ),
                    ],
                  ),
                ),
              ),
            SizedBox(
              height: 22,
            ),
            if (!projectViewModel.isInternetConnection)
              Center(
                child: SizedBox(
                  height: MediaQuery.of(context).size.height * 0.55,
                  width: MediaQuery.of(context).size.width * 0.50,
                  child: Image.asset(projectViewModel.isArabic
                      ? 'assets/images/Wifi-AR.png'
                      : 'assets/images/wifi-EN.png'),
                ),
              ),
            if (projectViewModel.isInternetConnection &&
                widget.imagesInfo != null)
              CarouselSlider(
                items: widget.imagesInfo.map((image) {
                  return Builder(
                    builder: (BuildContext context) {
                      return SizedBox(
                          width: MediaQuery.of(context).size.width * 0.50,
                          child: image.isAsset
                              ? Image.asset(projectViewModel.isArabic
                                  ? image.imageAr
                                  : image.imageEn)
                              : Image.network(projectViewModel.isArabic
                                  ? image.imageAr
                                  : image.imageEn));
                    },
                  );
                }).toList(),
                options: CarouselOptions(
                  height: MediaQuery.of(context).size.height * 0.55,
                  autoPlay: widget.imagesInfo.length > 1,
                  viewportFraction: 1.0,
                ),
              ),
            SizedBox(
              height: 77,
            ),
          ],
        ),
      ),
      bottomSheet: Container(
        height: MediaQuery.of(context).size.height * 0.10,
        width: double.infinity,
        child: Column(
          children: <Widget>[
            Container(
              width: MediaQuery.of(context).size.width * 0.9,
              child: SecondaryButton(
                  onTap: () {
                    loginCheck(context);
                  },
                  label: TranslationBase.of(context).serviceInformationButton,
                  textColor: Theme.of(context).backgroundColor),
            ),
          ],
        ),
      ),
    );
  }

  loginCheck(context) async {
    var data = await sharedPref.getObject(IMEI_USER_DATA);
    sharedPref.remove(REGISTER_DATA_FOR_LOGIIN);
    if (data != null) {
      Navigator.of(context).pushNamed(CONFIRM_LOGIN);
    } else {
      Navigator.of(context).pushNamed(
        WELCOME_LOGIN,
      );
    }
  }
}
