getEsigSnackBar function

SnackBar? getEsigSnackBar(
  1. String mensagem,
  2. {BuildContext? context,
  3. int duracao = 6,
  4. Color corFundo = Colors.grey,
  5. Color corTexto = Colors.white,
  6. IconData? icon = Icons.info,
  7. EdgeInsets? padding,
  8. SnackBarAction? action}
)

Função com retorno dependendo dos parâmetros:

  • Se context NÃO FOR passado, retorna o widget SnackBar padrão do flutter com os valores especificado nos parâmetros.

  • Se context FOR passado, não retorna nada e mostra o SnackBar no Scaffold que está à mostra no app por meio do código: ScaffoldMessenger.of(context).showSnackBar(snackbar)

Implementation

SnackBar? getEsigSnackBar(
  String mensagem, {
  BuildContext? context,
  int duracao = 6,
  Color corFundo = Colors.grey,
  Color corTexto = Colors.white,
  IconData? icon = Icons.info,
  EdgeInsets? padding,
  SnackBarAction? action,
}) {
  if (context != null) {
    action ??= SnackBarAction(
      label: 'Fechar',
      textColor: corTexto,
      onPressed: () => ScaffoldMessenger.of(context).hideCurrentSnackBar(),
    );
  }

  final snackbar = SnackBar(
    padding: EdgeInsets.symmetric(horizontal: 0, vertical: 10).copyWith(
      top: padding?.top,
      right: padding?.right,
      bottom: padding?.bottom,
      left: padding?.left,
    ),
    backgroundColor: corFundo,
    duration: Duration(seconds: duracao),
    action: action,
    content: Row(
      mainAxisAlignment: MainAxisAlignment.spaceBetween,
      children: [
        SizedBox(width: 10),
        Icon(icon, color: corTexto),
        SizedBox(width: 10),
        Expanded(
          child: Text(
            mensagem,
            overflow: TextOverflow.visible,
            style: TextStyle(color: corTexto),
          ),
        ),
      ],
    ),
  );

  if (context == null) {
    return snackbar;
  } else {
    ScaffoldMessenger.of(context).showSnackBar(snackbar);
  }
  return null;
}