import 'package:flutter/material.dart';

import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';

import 'package:akuCommunity/const/resource.dart';
import 'package:akuCommunity/provider/app_provider.dart';
import 'package:akuCommunity/ui/profile/house/add_house_page.dart';
import 'package:akuCommunity/ui/profile/house/house_card.dart';
import 'package:akuCommunity/ui/profile/house/house_func.dart';
import 'package:akuCommunity/utils/headers.dart';
import 'package:akuCommunity/widget/bee_scaffold.dart';

class HouseOwnersPage extends StatefulWidget {
  HouseOwnersPage({Key key}) : super(key: key);

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

class _HouseOwnersPageState extends State<HouseOwnersPage> {
  EasyRefreshController _refreshController = EasyRefreshController();

  bool get _emptyHouse {
    final appProvider = Provider.of<AppProvider>(context, listen: false);
    return appProvider.houses.isEmpty;
  }

  ///存在已认证的房屋
  bool get _haveAuthedHouse {
    final appProvider = Provider.of<AppProvider>(context, listen: false);
    return (appProvider?.selectedHouse?.status ?? 0) == 4;
  }

  Widget get _houseTitle {
    final appProvider = Provider.of<AppProvider>(context, listen: false);
    if (_emptyHouse) return Text('还没有绑定房屋');
    if (appProvider.selectedHouse.status == 1) return Text('您的身份正在审核中，请耐心等待');
    if (appProvider.selectedHouse.status == 3) return Text('审核未通过');
    return SizedBox();
  }

  @override
  Widget build(BuildContext context) {
    final appProvider = Provider.of<AppProvider>(context);
    return BeeScaffold(
      title: '我的房屋',
      actions: [
        TextButton(
          onPressed: _addHouse,
          child: Text('新增房屋'),
        ),
      ],
      body: EasyRefresh(
        header: MaterialHeader(),
        controller: _refreshController,
        firstRefresh: true,
        onRefresh: () async {
          appProvider.updateHouses(await HouseFunc.houses);
        },
        child: ListView(
          children: [
            _emptyHouse
                ? 280.hb
                : Padding(
                    padding: EdgeInsets.all(32.w),
                    child: HouseCard(
                      type: appProvider.selectedHouse.reviewed
                          ? CardAuthType.SUCCESS
                          : CardAuthType.FAIL,
                      model: appProvider.selectedHouse,
                    ),
                  ),
            if (!_emptyHouse) 88.hb,
            if (!_haveAuthedHouse)
              Stack(
                children: [
                  Padding(
                    padding: EdgeInsets.symmetric(horizontal: 75.w),
                    child: Image.asset(R.ASSETS_STATIC_REVIEWING_WEBP),
                  ),
                  Positioned(
                    bottom: 100.w,
                    left: 0,
                    right: 0,
                    child: _houseTitle.centered(),
                  ),
                ],
              ),
            if (_emptyHouse)
              Center(
                child: ElevatedButton(
                  onPressed: _addHouse,
                  child: Text('添加房屋'),
                ),
              ),
          ],
        ),
      ),
    );
  }

  ///跳转到添加房屋
  _addHouse() async {
    bool result = await Get.to(() => AddHousePage());
    if (result == true) _refreshController.callRefresh();
  }
}
