import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:akuCommunity/utils/screenutil.dart';
import 'package:akuCommunity/base/assets_image.dart';
import 'package:flutter_icons/flutter_icons.dart';

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

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

class _NoteCreatePageState extends State<NoteCreatePage> {
  TextEditingController _noteContent = new TextEditingController();

  String hintText = '这一刻的想法...';

  bool _isSelect = false;

  List<Map<String, dynamic>> _themeList = [
    {'title': '选择话题:', 'isSelect': false},
    {'title': "#教师节", 'isSelect': false},
    {'title': "#快乐植树节", 'isSelect': false},
    {'title': "#关爱老人", 'isSelect': false},
    {'title': "#运动会", 'isSelect': false},
  ];

  AppBar _appBar() {
    return AppBar(
      elevation: 0,
      backgroundColor: Color(0xffffffff),
      centerTitle: true,
      title: Text(
        '社区',
        style: TextStyle(
          fontSize: 36.sp,
          color: Color(0xff333333),
        ),
      ),
      leading: InkWell(
        onTap: () => Navigator.pop(context),
        child: Container(
          padding: EdgeInsets.only(left: 32.w),
          alignment: Alignment.center,
          child: Text(
            '取消',
            style: TextStyle(
              fontSize: 34.sp,
              color: Color(0xff030303),
            ),
          ),
        ),
      ),
      actions: [
        Container(
          alignment: Alignment.center,
          padding: EdgeInsets.only(right: 32.w),
          child: InkWell(
            onTap: () {},
            child: Container(
              height: 64.w,
              width: 116.w,
              alignment: Alignment.center,
              decoration: BoxDecoration(
                color: Color(0xffffd000),
                borderRadius: BorderRadius.all(Radius.circular(4)),
              ),
              child: Text(
                '发表',
                style: TextStyle(
                  fontSize: 34.sp,
                  color: Color(0xff030303),
                ),
              ),
            ),
          ),
        ),
      ],
    );
  }

  Container _containerTextField() {
    return Container(
      child: TextFormField(
        cursorColor: Color(0xffffc40c),
        style: TextStyle(
          fontSize: 34.sp,
        ),
        controller: _noteContent,
        onChanged: (String value) {},
        maxLines: 6,
        decoration: InputDecoration(
          isDense: true,
          contentPadding: EdgeInsets.only(
            top: 0.w,
            bottom: 0.w,
          ),
          hintText: hintText,
          border: InputBorder.none, //去掉输入框的下滑线
          fillColor: Colors.white,
          filled: true,
          hintStyle: TextStyle(
            color: Color(0xff999999),
            fontSize: 34.sp,
            fontWeight: FontWeight.normal,
          ),
        ),
      ),
    );
  }

  InkWell _containerAddImage() {
    return InkWell(
      onTap: () {},
      child: Container(
        width: 196.w,
        height: 196.w,
        decoration: BoxDecoration(
          color: Colors.white,
          image: DecorationImage(
              image: AssetImage(AssetsImage.IMAGEADD), fit: BoxFit.fill),
        ),
        // child: ,
      ),
    );
  }

  InkWell _inkWellSelect() {
    return InkWell(
      onTap: () {
        setState(() {
          _isSelect = !_isSelect;
        });
      },
      child: Container(
        padding: EdgeInsets.symmetric(vertical: 30.w),
        decoration: BoxDecoration(
          border: Border(
            top: BorderSide(color: Color(0xffd8d8d8), width: 1),
            bottom: BorderSide(color: Color(0xffd8d8d8), width: 1),
          ),
        ),
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            Row(
              mainAxisAlignment: MainAxisAlignment.start,
              children: [
                Icon(
                  AntDesign.message1,
                  color: Color(0xff333333),
                  size: 28.sp,
                ),
                SizedBox(width: 10.w),
                Text(
                  '不可评论',
                  style: TextStyle(
                    fontSize: 28.sp,
                    color: Color(0xff333333),
                  ),
                ),
              ],
            ),
            _isSelect
                ? Icon(
                    AntDesign.check,
                    color: Color(0xffffd003),
                    size: 40.sp,
                  )
                : SizedBox(height: 40.sp),
          ],
        ),
      ),
    );
  }

  Wrap _wrapThemeList() {
    return Wrap(
        spacing: 15.w,
        runSpacing: 20.w,
        children: _themeList
            .asMap()
            .keys
            .map((index) => index == 0
                ? Container(
                  padding: EdgeInsets.only(top: 10.w),
                  width: 156.w,
                  alignment: Alignment.centerLeft,
                  child: Text(
                    _themeList[index]['title'],
                    style: TextStyle(
                      fontSize: 34.sp,
                      color: Color(0xff333333),
                    ),
                  ),
                )
                : InkWell(
                    onTap: () {
                      _themeList.forEach((item) {
                        item['isSelect'] = false;
                      });
                      setState(() {
                        _themeList[index]['isSelect'] = true;
                      });
                    },
                    child: Container(
                      decoration: BoxDecoration(
                          color: _themeList[index]['isSelect']
                              ? Color(0xfffff8e4)
                              : Color(0xffffffff),
                          border: Border.all(
                              color: _themeList[index]['isSelect']
                                  ? Color(0xffffc40c)
                                  : Color(0xff979797),
                              width: 0.5),
                          borderRadius: BorderRadius.all(Radius.circular(36))),
                      padding: EdgeInsets.symmetric(
                        horizontal: 29.w,
                        vertical: 13.w,
                      ),
                      child: Text(
                        _themeList[index]['title'],
                        style: TextStyle(
                          fontSize: 34.sp,
                          color: _themeList[index]['isSelect']
                              ? Color(0xff333333)
                              : Color(0xff999999),
                        ),
                      ),
                    ),
                  ))
            .toList());
  }

  @override
  Widget build(BuildContext context) {
    double _statusHeight = MediaQuery.of(context).padding.top;
    return Scaffold(
      appBar: _appBar(),
      body: SingleChildScrollView(
        child: Container(
          height: MediaQuery.of(context).size.height -
              kToolbarHeight -
              _statusHeight,
          color: Colors.white,
          child: GestureDetector(
            behavior: HitTestBehavior.opaque,
            onTap: () {
              FocusScope.of(context).requestFocus(FocusNode());
            },
            child: Container(
              padding: EdgeInsets.only(
                top: 49.w,
                left: 62.w,
                right: 62.w,
              ),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  _containerTextField(),
                  _containerAddImage(),
                  SizedBox(height: 202.w),
                  _inkWellSelect(),
                  SizedBox(height: 28.w),
                  _wrapThemeList(),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}