messageDecoration function

BoxDecoration messageDecoration(
  1. BuildContext context, {
  2. Color? color,
  3. double radius = 8.0,
  4. double tightRadius = 0.0,
  5. MessagePosition? messagePosition = MessagePosition.isolated,
  6. MessageFlow messageFlow = MessageFlow.outgoing,
})

Implementation

BoxDecoration messageDecoration(BuildContext context,
    {Color? color,
    double radius = 8.0,
    double tightRadius = 0.0,
    MessagePosition? messagePosition = MessagePosition.isolated,
    MessageFlow messageFlow = MessageFlow.outgoing}) {
  double topLeftRadius;
  double topRightRadius;
  double botLeftRadius;
  double botRightRadius;

  final bool isTopSurrounded = messagePosition == MessagePosition.surrounded ||
      messagePosition == MessagePosition.surroundedTop;
  if (messageFlow == MessageFlow.outgoing) {
    botLeftRadius = radius;
    botRightRadius = 0;
    topLeftRadius = radius;
    topRightRadius = isTopSurrounded ? tightRadius : radius;
  } else {
    botLeftRadius = 0;
    botRightRadius = radius;
    topLeftRadius = isTopSurrounded ? tightRadius : radius;
    topRightRadius = radius;
  }

  return BoxDecoration(
      color: color ??
          (messageFlow == MessageFlow.outgoing
              ? Theme.of(context).primaryColor
              : CustomColors.incomingMessageContainerColor(context)),
      borderRadius: BorderRadius.only(
          topLeft: Radius.circular(topLeftRadius),
          topRight: Radius.circular(topRightRadius),
          bottomLeft: Radius.circular(botLeftRadius),
          bottomRight: Radius.circular(botRightRadius)));
}