build method

  1. @override
Widget build(
  1. BuildContext context,
  2. CancelableSnacky cancelableSnacky,
  3. SnackyController snackyController
)
override

Implementation

@override
Widget build(
  BuildContext context,
  CancelableSnacky cancelableSnacky,
  SnackyController snackyController,
) {
  final snacky = cancelableSnacky.snacky;
  return BaseSnackyWidget(
    cancelableSnacky: cancelableSnacky,
    snackyController: snackyController,
    margin: margin,
    disableInkWell: disableInkwell,
    borderRadius: borderRadius,
    child: Container(
      width: double.infinity,
      decoration: BoxDecoration(
        color: _getColor(snacky),
        border: _getBorder(snacky),
        borderRadius: borderRadius,
      ),
      padding: padding,
      child: Row(
        children: [
          if (snacky.leadingWidgetBuilder != null) ...[
            snacky.leadingWidgetBuilder!.call(context, cancelableSnacky),
            const SizedBox(width: 8),
          ],
          Expanded(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              mainAxisSize: MainAxisSize.min,
              children: [
                Text(
                  snacky.title,
                  style: _getTextStyle(snacky),
                ),
                if (snacky.subtitle != null) ...[
                  const SizedBox(height: 4),
                  Text(
                    snacky.subtitle!,
                  ),
                ]
              ],
            ),
          ),
          if (snacky.trailingWidgetBuilder != null) ...[
            const SizedBox(width: 8),
            snacky.trailingWidgetBuilder!.call(context, cancelableSnacky),
          ],
          if (snacky.canBeClosed) ...[
            const SizedBox(width: 8),
            TouchFeedback(
              borderRadius: BorderRadius.circular(999),
              onTap: () => cancelableSnacky.cancel(),
              disableInkWell: disableInkwell,
              child: Icon(
                Icons.close,
                color: _getTextStyle(snacky).color,
              ),
            ),
          ],
        ],
      ),
    ),
  );
}