/*
 * Display a snackbar with:
 *
 * a) Text on the left
 * b) Icon on the right
 *
 * | Text          <icon> |
 */

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:one_context/one_context.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

void showSnackIcon(String text, {IconData icon, Function onAction, bool success, String actionText}) {

  OneContext().hideCurrentSnackBar();

  Color backgroundColor;

  // Make some selections based on the "success" value
  if (success == true) {
    backgroundColor = Colors.lightGreen;

  } else if (success == false) {
    backgroundColor = Colors.deepOrange;
  }

  SnackBarAction action;

  if (onAction != null) {

    if (actionText == null) {
      // Default action text
      actionText = I18N.of(OneContext().context).details;
    }

    action = SnackBarAction(
      label: actionText,
      onPressed: onAction,
    );
  }

  List<Widget> childs = [
    Text(text),
    Spacer(),
  ];

  if (icon != null) {
    childs.add(FaIcon(icon));
  }

  OneContext().showSnackBar(builder: (context) => SnackBar(
    content: Row(
        children: childs
    ),
    backgroundColor: backgroundColor,
    action: action
    )
  );

}