imageUI method

Widget imageUI(
  1. Function funAdd,
  2. Function funDelete, {
  3. double? padding,
})

Implementation

Widget imageUI(Function funAdd, Function funDelete, {double? padding}) => Container(width: 1.sw,
    margin: EdgeInsets.fromLTRB(padding??40.sp, padding??40.sp, padding??40.sp, 0), padding: EdgeInsets.all(20.sp),
    decoration: BoxDecoration(image: DecorationImage(fit: BoxFit.fill,
        image: Image.asset('assets/images/v5/bg_border.png').image),
        borderRadius: BorderRadius.circular(16.sp)), height: 320.sp,
    child: BlocBuilder(bloc: bloc, builder: (context, state) =>
    images!.isEmpty ? ButtonImageWidget(16.sp, funAdd, Column(children: [
      Image.asset('assets/images/v5/ic_add_image.png', width: 114.sp, height: 114.sp),
      Padding(padding: EdgeInsets.only(top: 16.sp, bottom: 8.sp),
          child: LabelCustom('Upload ảnh', size: 36.sp, color: const Color(0xFF5B5B5B))),
      LabelCustom('Thêm ảnh hoặc chụp ảnh mới', size: 30.sp, color: const Color(0xFF5B5B5B), weight: FontWeight.normal)
    ], mainAxisAlignment: MainAxisAlignment.center))
        : Row(children: [
      Expanded(child: ListView.separated(padding: EdgeInsets.zero,
          itemCount: images!.length, scrollDirection: Axis.horizontal,
          separatorBuilder: (context, index) => SizedBox(width: 20.sp),
          itemBuilder: (context, index) => Stack(children: [
            ClipRRect(child: Image.memory(
                Uint8List.fromList(images![index].bytes), height: 280.sp, fit: BoxFit.cover),
                borderRadius: BorderRadius.circular(16.sp)),
            ButtonImageWidget(100, () => funDelete(index), Container(
                margin: EdgeInsets.all(10.sp),
                padding: EdgeInsets.all(10.sp),
                decoration: BoxDecoration(
                    color: Colors.black26,
                    borderRadius: BorderRadius.circular(100)
                ),
                child: Icon(Icons.clear, color: Colors.white, size: 42.sp)
            ))
          ], alignment: Alignment.topRight)
      )),
      Padding(child: ButtonImageWidget(100, funAdd, Image.asset('assets/images/v5/ic_add_image.png',
          width: 114.sp, height: 114.sp)), padding: EdgeInsets.only(left: 20.sp))
    ]), buildWhen: (oldS, newS) => newS.runtimeType.toString() == 'AddImageHomeState'));