showSnackBar method

void showSnackBar ({@required SnackBarMessageType messageType, @required bool iconVisibility, String message: "", Duration duration, Color backgroundColor: Colors.black, Color textColor: Colors.white, Color iconColor: Colors.white, TextDirection textDirection: TextDirection.ltr })

Implementation

void showSnackBar({
  @required SnackBarMessageType messageType,
  @required bool iconVisibility,
  String message = "",
  Duration duration,
  Color backgroundColor = Colors.black,
  Color textColor = Colors.white,
  Color iconColor = Colors.white,
  TextDirection textDirection = TextDirection.ltr,
}) {
  IconData icon;
  switch (messageType) {
    case SnackBarMessageType.info:
      icon = Icons.info;
      break;
    case SnackBarMessageType.warning:
      icon = Icons.warning;
      break;
    case SnackBarMessageType.error:
      icon = Icons.error;
      break;
    case SnackBarMessageType.successful:
      icon = Icons.done;
      break;
    case SnackBarMessageType.failed:
      icon = Icons.close;
      break;
    case SnackBarMessageType.none:
      break;
  }

  final text = Text(
    message,
    style: this.textTheme.subhead.copyWith(color: textColor),
  );

  this.scaffoldKey.currentState.showSnackBar(
        SnackBar(
          backgroundColor: backgroundColor,
          duration: duration ?? Duration(seconds: 1),
          content: Directionality(
            textDirection: textDirection,
            child: iconVisibility
                ? Row(
                    mainAxisSize: MainAxisSize.min,
                    children: <Widget>[
                      Icon(icon, color: iconColor),
                      SizedBox(width: 4.0),
                      text,
                    ],
                  )
                : text,
          ),
        ),
      );
}