getPresentationWidgetsCommonExpandCollaspeTemplate function

String getPresentationWidgetsCommonExpandCollaspeTemplate(
  1. String projectName
)

Implementation

String getPresentationWidgetsCommonExpandCollaspeTemplate(String projectName) {
  return '''
import 'package:flutter/material.dart';
import 'package:${projectName}/core/theme/app_colors.dart';
import 'package:${projectName}/core/utils/responsive_size.dart';
import 'package:${projectName}/presentation/widgets/text_widget.dart';

class ExpandCollapseWidget extends StatelessWidget {
  final String title;
  final Widget? parentWidget;
  final Widget child;
  final bool? isExpanded;
  final VoidCallback? onToggle;
  final double? width;
  final double? height;
  final EdgeInsetsGeometry? margin;
  final dynamic item;

  const ExpandCollapseWidget({
    super.key,
    required this.title,
    this.parentWidget,
    required this.child,
    this.isExpanded,
    this.onToggle,
    this.width,
    this.height,
    this.margin,
    required this.item,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      width: width,
      height: height,
      margin: EdgeInsets.zero,
      padding: EdgeInsets.zero,
      decoration: BoxDecoration(
        // color: ColorResource.appTheme,
        borderRadius: BorderRadius.circular(12.sp),
        border: Border.all(color: AppColors.themeBorder, width: 1),
      ),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        children: [
          ClipRRect(
            borderRadius: BorderRadius.only(
              topLeft: Radius.circular(12.sp),
              topRight: Radius.circular(12.sp),
              bottomLeft: Radius.circular(item.isExpanded == false ? 8.sp : 0),
              bottomRight: Radius.circular(item.isExpanded == false ? 8.sp : 0),
            ),
            child: GestureDetector(
              onTap: onToggle,
              child: Container(
                color: AppColors.orangeBackground,

                child: Padding(
                  padding: EdgeInsets.symmetric(
                    horizontal: 15.sp,
                    vertical: 10.sp,
                  ),
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      TextWidget(
                        text: title,
                        textSize: 16.sp,
                        color: Colors.white,
                        fontWeight: FontWeight.w500,
                      ),
                      Icon(
                        isExpanded == true
                            ? Icons.keyboard_arrow_up
                            : Icons.keyboard_arrow_down,
                        size: 20.sp,
                        color: Colors.white,
                      ),
                      // Image.asset(
                      //   isExpanded==true ? ImageResource.upImage : ImageResource.downImage,
                      //   width: 13.dp,
                      //   height: 13.dp,
                      //   color: Colors.white,
                      // ),
                    ],
                  ),
                ),
              ),
            ),
          ),
          AnimatedCrossFade(
            firstCurve: Curves.fastOutSlowIn,
            secondCurve: Curves.fastOutSlowIn,
            firstChild: Container(),
            secondChild: child,
            crossFadeState: isExpanded == true
                ? CrossFadeState.showSecond
                : CrossFadeState.showFirst,
            duration: Duration(milliseconds: 300),
          ),
        ],
      ),
    );
  }
}
''';
}