import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:shimmer/shimmer.dart'; extension WidgetExtensions on Widget { Widget onPress(VoidCallback onTap) => InkWell(onTap: onTap, child: this); Widget get expanded => Expanded(child: this); Widget get center => Center(child: this); Widget circle(double _value) => ClipRRect(borderRadius: BorderRadius.circular(_value), child: this); Widget paddingAll(double _value) => Padding(padding: EdgeInsets.all(_value), child: this); Widget paddingOnly({double left = 0.0, double right = 0.0, double top = 0.0, double bottom = 0.0}) => Padding(padding: EdgeInsets.only(left: left, right: right, top: top, bottom: bottom), child: this); Widget toExpanded({int flex = 1}) => Expanded(flex: flex, child: this); Widget toShimmer({bool isShow = true}) => isShow ? Shimmer.fromColors( baseColor: Color(0xffe8eff0), highlightColor: Colors.white, child: Container( color: Colors.white, child: this, ), ) : Container( child: this, ); Widget animatedSwither() => AnimatedSwitcher( duration: const Duration(milliseconds: 500), // transitionBuilder: (Widget child, Animation animation) { // return ScaleTransition(scale: animation, child: child); // }, switchInCurve: Curves.linearToEaseOut, switchOutCurve: Curves.linearToEaseOut, child: this, ); Widget objectContainerView({String title = "", String note = "", bool disablePadding = false, double radius = 15, bool center = true}) { return Container( padding: disablePadding ? EdgeInsets.zero : const EdgeInsets.only(top: 15, bottom: 15, left: 14, right: 14), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(radius), boxShadow: [ BoxShadow( color: const Color(0xff000000).withOpacity(.05), blurRadius: 26, offset: const Offset(0, -3), ), ], ), alignment: center ? Alignment.center : null, child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ if (title.isNotEmpty) title.toText16(), if (title.isNotEmpty) 12.height, this, if (note.isNotEmpty) note.toText11(), ], ), ); } Widget objectContainerBorderView( {String title = "", String note = "", bool disablePadding = false, double radius = 15, Color? color, Color borderColor = MyColors.lightGreyEFColor, bool disableWidth = false, bool isAlignment = false}) { return Container( padding: disablePadding ? EdgeInsets.zero : const EdgeInsets.only(top: 15, bottom: 15, left: 14, right: 14), decoration: BoxDecoration( borderRadius: BorderRadius.circular(radius), color: color, border: Border.all( color: borderColor, width: disableWidth ? 2 : 1, ), ), alignment: isAlignment ? Alignment.center : null, child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ if (title.isNotEmpty) title.toText16(), if (title.isNotEmpty) 12.height, this, if (note.isNotEmpty) note.toText11(), ], ), ); } }