import 'package:flutter/material.dart';
import 'package:flutter_habit/common/utils/ConvertUtils.dart';
import 'package:flutter_habit/common/I18N.dart';
import 'package:flutter_habit/common/provider/UserProvider.dart';
import 'package:flutter_habit/view/drawer/user/setting/UserSettingPage.dart';
import 'package:flutter_habit/view/drawer/user/sign/SignInPage.dart';
import 'package:provider/provider.dart';

class UserPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    UserProvider userProvider =
        Provider.of<UserProvider>(context, listen: true);
    return Scaffold(
      appBar: AppBar(
        title: Text(I18N.of("用户")),
      ),
      body: Padding(
        padding: EdgeInsets.all(16),
        child: ListView(
          children: userProvider.token == null
              ? unSignInWidgets(context)
              : signInWidgets(context),
        ),
      ),
    );
  }

  List<Widget> unSignInWidgets(BuildContext context) {
    return [
      Center(
        child: Icon(
          Icons.account_circle,
          size: 150,
          color: Theme.of(context).unselectedWidgetColor,
        ),
      ),
      Center(
        child: Text(
          I18N.of("未登录"),
          style: Theme.of(context).textTheme.titleLarge,
        ),
      ),
      Divider(),
      ListTile(
        leading: Icon(Icons.input),
        title: Text(I18N.of("登录")),
        trailing: Icon(Icons.chevron_right),
        onTap: () {
          Navigator.of(context)
              .push(MaterialPageRoute(builder: (_) => SignInPage()));
        },
      ),
    ];
  }

  List<Widget> signInWidgets(BuildContext context) {
    UserProvider userProvider =
        Provider.of<UserProvider>(context, listen: true);
    return [
      Center(
        child: userProvider.photo == null
            ? Icon(
                Icons.account_circle,
                size: 150,
                color: Theme.of(context).unselectedWidgetColor,
              )
            : ClipOval(
                child: Image.memory(
                  userProvider.photo,
                  width: 150,
                  height: 150,
                ),
              ),
      ),
      ListTile(
        leading: Icon(Icons.account_box),
        title: Text(I18N.of("用户名")),
        trailing: Text(ConvertUtils.packString(userProvider.userName)),
      ),
      ListTile(
        leading: Icon(Icons.format_list_numbered),
        title: Text(I18N.of("ID")),
        trailing: Text(userProvider.uid.toString()),
      ),
      ListTile(
        leading: Icon(Icons.email),
        title: Text(I18N.of("邮箱")),
        trailing: Text(userProvider.email.toString()),
      ),
      ListTile(
        leading: Icon(Icons.supervisor_account),
        title: Text(I18N.of("性别")),
        trailing: Text(ConvertUtils.packString(I18N.of(userProvider.gender))),
      ),
      ListTile(
        leading: Icon(Icons.cake),
        title: Text(I18N.of("生日")),
        trailing: Text(ConvertUtils.packString(userProvider.birthday)),
      ),
      ListTile(
        leading: Icon(Icons.monetization_on),
        title: Text(I18N.of("金币")),
        trailing: Text(userProvider.coins.toString()),
      ),
      Divider(),
      ListTile(
        leading: Icon(Icons.settings),
        title: Text(I18N.of("用户设置")),
        trailing: Icon(Icons.chevron_right),
        onTap: () {
          Navigator.of(context)
              .push(MaterialPageRoute(builder: (_) => UserSettingPage()));
        },
      ),
    ];
  }
}