part of web;

class ReadDiscussPage extends StatefulWidget {
  // 点 x 事件
  final void Function()? onTap;
  // 点击 搜索全文 中的列表事件
  final void Function(SearchAllModel sModel)? onTapSearchItem;
  final BookDetailModel bookDetailModel;
  // 当前的章节id
  final String chapterId;
  const ReadDiscussPage({
    Key? key,
    required this.onTap,
    required this.bookDetailModel,
    required this.chapterId,
    this.onTapSearchItem
  }) : super(key: key);

  @override
  State<ReadDiscussPage> createState() => _ReadDiscussPageState();
}

class _ReadDiscussPageState extends State<ReadDiscussPage> {
  @override
  Widget build(BuildContext context) {
    return GetBuilder<DiscussController>(
      init: DiscussController(bookDetailModel: widget.bookDetailModel,chapterId: widget.chapterId),
      builder:(controller) => Scaffold(
        resizeToAvoidBottomInset: false,
        body: Column(
          crossAxisAlignment: CrossAxisAlignment.end,
          children: [
            GestureDetector(
              onTap: (){
                widget.onTap!();
              },
              child: Container(
                  color: Colors.white,
                  padding: EdgeInsets.only(left: 15.w,right: 15.w,top: 15.w,bottom: 15.w),
                  child: Image.asset('assets/images/close.png')
              ),
            ),
            Row(
              children: [
                Expanded(
                    child: Container(
                      margin: EdgeInsets.only(left: 15.w,right: 15.w,),
                      decoration: BoxDecoration(
                        color: const Color(0xFFF9F9F9),
                        borderRadius: BorderRadius.circular(17.5.w),
                        boxShadow: [
                          BoxShadow(
                            color: const Color(0xFFC7C7C7).withOpacity(0.5),
                            offset: Offset(3.w, 0),
                            blurRadius: 10.w,
                            spreadRadius: 0.w,
                          ),
                        ],
                      ),
                      child: ClipRRect(
                        borderRadius: BorderRadius.circular(17.5.w),
                        child: CustomInputSearch(
                          controller: controller.searchInput,
                          readOnly: false,
                          hintText: '搜索全文',
                          onTap: () {
                            // context.pushNamed(Routes.msgs);
                          },
                          onEditingComplete: () {
                            controller.setShowSearch(true);
                            controller.onRefreshSearch();
                            Tools.unfocus();
                          },
                        ),
                      ),
                    ),
                ),
                controller.showSearch?GestureDetector(
                  onTap: () {
                    controller.setShowSearch(false);
                    Tools.unfocus();
                  },
                  child:  Container(
                    margin: EdgeInsets.only(right: 15.w),
                    child: Text('取消'),
                  )
                ):const SizedBox(),
              ],
            ),
            controller.showSearch? Expanded(
                child: CustomPullScrollView(
                  controller: controller.refreshController,
                  onRefresh: controller.onRefreshSearch,
                  onLoading: controller.onLoadingSearch,
                  child: BuildSearchAll(
                    onTap: (SearchAllModel sModel){
                      if (widget.onTapSearchItem !=null) {
                        widget.onTapSearchItem!(sModel);
                      }
                    },
                    searchALlResults: controller.searchALlResults,
                  ),
                )):
            Expanded(child: Stack(
              children: [
                Column(
                  children: [
                    BuildBook(bookDetailModel: widget.bookDetailModel,),
                    Expanded(child: CustomPullScrollView(
                      controller: controller.refreshController,
                      onRefresh: controller.onRefresh,
                      onLoading: controller.onLoading,
                      child: ListView.builder(
                        itemBuilder: (BuildContext context,int index){
                          DiscussModel model = controller.discuss[index];
                          return BuildDiscuss(
                            model: model,
                            controller: controller,
                            bookId: widget.bookDetailModel.bookId.toString(),
                            onTapDel: (DiscussModel dModel){
                              controller.delComment(discussModel: dModel);
                            },
                          );
                        },
                        itemCount: controller.discuss.length,
                      ),
                    ),),
                  ],
                ),
                Visibility(
                  visible: controller.showReply,
                  child: Positioned(
                    bottom:-69,
                    left: 0,
                    right: 0,
                    top: 0,
                    child: GestureDetector(
                      onTap: (){
                        controller.setShow();
                      },
                      child: Container(
                        // color: Colors.white,
                        color: const Color(0xFF000000).withOpacity(0.5),
                        child: SingleChildScrollView(
                          reverse: true,
                          child: GestureDetector(
                            behavior: HitTestBehavior.opaque,
                            onTap: (){},
                            child: Container(
                              color: Colors.white,
                              padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
                              child: Padding(
                                padding: const EdgeInsets.all(8.0),
                                child: Row(
                                  children: [
                                    Expanded(
                                      child:  TextField(
                                        autofocus: true,
                                        maxLines: null,
                                        controller: controller.replyInput,
                                        decoration: InputDecoration(
                                          border: InputBorder.none,
                                          enabledBorder: InputBorder.none,
                                          focusedBorder: InputBorder.none,
                                          hintText: '请输入内容',
                                          hintStyle:TextStyle(fontSize: 12.w,height: 1.5,color: Colours.c9,),
                                          filled: true,
                                          fillColor: Colours.cF8,
                                        ),
                                      ),
                                    ),
                                    Gaps.hGaps10,
                                    GestureDetector(
                                      onTap: (){
                                        controller.submit();
                                        controller.setShow();
                                      },
                                      child: Container(
                                        decoration: BoxDecoration(
                                          borderRadius: BorderRadius.circular(15.w),
                                          color: AppTheme.primary,
                                          gradient: LinearGradient(
                                            colors: [const Color(0xFFD53676).withOpacity(0.9),AppTheme.primary] , // 不可点击时的颜色，透明度为0.7
                                            begin: Alignment.topCenter,
                                            end: Alignment.bottomCenter,
                                          ),
                                        ),
                                        padding:  EdgeInsets.symmetric(horizontal:13.5.w,vertical: 4.w),
                                        child:  Text('发表',style: TextStyle(fontSize: 14.w,fontWeight: Fonts.medium,color: Colors.white),),
                                      ),
                                    )
                                  ],
                                ),
                              ),
                            ),
                          ),
                        ),
                      ),
                    )
                  ),
                )
              ],
            ),)
          ],
        ),
      ),
    );
  }
}
