home_tab_header_widget.dart 4.95 KB
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:wow_english/common/extension/string_extension.dart';
import 'package:wow_english/pages/user/bloc/user_bloc.dart';

import '../../../common/core/app_config_helper.dart';
import '../../section/courese_module_model.dart';

enum HeaderActionType {
  //视频跟读
  video,
  //阶段选择
  phase,
  //磨耳朵
  listen,
  //购买
  shop,
  //个人信息
  user,
}

class HomeTabHeaderWidget extends StatelessWidget {
  const HomeTabHeaderWidget({super.key, this.courseModuleCode, this.actionTap});

  final String? courseModuleCode;

  final Function(HeaderActionType type)? actionTap;

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<UserBloc, UserState>(
      builder: (context, state) {
        return Container(
            height: 45,
            width: double.infinity,
            color:
                CourseModuleModel(courseModuleCode ?? 'Phase-1').color,
            padding: EdgeInsets.symmetric(horizontal: 9.5.w),
            child: Row(
              children: [
                ScreenUtil().bottomBarHeight.horizontalSpace,
                GestureDetector(
                  onTap: () {
                    Navigator.pop(context);
                  },
                  child: Container(
                    alignment: Alignment.center,
                    child: Image.asset(
                      'back_around'.assetPng,
                      height: 40.h,
                      width: 40.w,
                    ),
                  ),
                ),
                // GestureDetector(
                //   onTap: () => actionTap?.call(HeaderActionType.user),
                //   child: Container(
                //     decoration: BoxDecoration(
                //       border: Border.all(
                //         width: 1.0,
                //         color: const Color(0xFF140C10),
                //       ),
                //       borderRadius: BorderRadius.circular(21),
                //     ),
                //     child: CircleAvatar(
                //       radius: 21,
                //       backgroundImage: ImageUtil.getImageProviderOnDefault(UserUtil.getUser()?.avatarUrl),
                //     ),
                //   ),
                // ),
                // GestureDetector(
                //   onTap: () {
                //     if (actionTap != null) {
                //       actionTap!(HeaderActionType.user);
                //     }
                //   },
                //   child: Container(
                //     margin: const EdgeInsets.only(left: 7),
                //     padding: const EdgeInsets.all(4.0),
                //     decoration: BoxDecoration(
                //       color: Colors.white,
                //       borderRadius: BorderRadius.circular(2),
                //       border: Border.all(width: 1.0, color: const Color(0xFF140C10), style: BorderStyle.solid),
                //     ),
                //     child: Text(
                //       UserUtil.getUser()?.name ?? '未登录',
                //       style: TextStyle(color: const Color(0xFF333333), fontSize: 16.sp),
                //     ),
                //   ),
                // ),
                20.horizontalSpace,
                Expanded(
                    child: Text(
                  CourseModuleModel(courseModuleCode ?? 'Phase-1')
                      .courseModuleTitle,
                  textAlign: TextAlign.left,
                  style: const TextStyle(color: Colors.white, fontSize: 30.0),
                )),
                // IconButton(
                //     onPressed: () {
                //       if (actionTap != null) {
                //         actionTap!(HeaderActionType.video);
                //       }
                //     },
                //     icon: Image.asset('video'.assetPng)),
                IconButton(
                    onPressed: () {
                      if (actionTap != null) {
                        actionTap!(HeaderActionType.phase);
                      }
                    },
                    icon: Image.asset('home'.assetPng)),
                IconButton(
                    onPressed: () {
                      if (actionTap != null) {
                        actionTap!(HeaderActionType.listen);
                      }
                    },
                    icon: Image.asset('listen'.assetPng)),
                Offstage(
                  offstage: AppConfigHelper.shouldHidePay(),
                  child: IconButton(
                      onPressed: () {
                        if (actionTap != null) {
                          actionTap!(HeaderActionType.shop);
                        }
                      },
                      icon: Image.asset('shop'.assetPng)),
                ),
                ScreenUtil().bottomBarHeight.horizontalSpace,
              ],
            ));
      },
    );
  }
}