import 'package:flutter/material.dart';

class ToastHelper {
  static void showSuccess(
    BuildContext context,
    String message, {
    Duration duration = const Duration(seconds: 3),
  }) {
    _showToast(
      context,
      message,
      duration: duration,
      backgroundColor: Colors.green,
    );
  }

  static void showError(
    BuildContext context,
    String message, {
    Duration duration = const Duration(seconds: 5),
  }) {
    _showToast(
      context,
      message,
      duration: duration,
      backgroundColor: Colors.red,
    );
  }

  static void showInfo(
    BuildContext context,
    String message, {
    Duration duration = const Duration(seconds: 3),
  }) {
    _showToast(
      context,
      message,
      duration: duration,
    );
  }

  static void _showToast(
    BuildContext context,
    String message, {
    required Duration duration,
    Color? backgroundColor,
  }) {
    final screenWidth = MediaQuery.of(context).size.width;
    final screenHeight = MediaQuery.of(context).size.height;
    final topPadding = MediaQuery.of(context).padding.top;
    final toastWidth = screenWidth * 0.5; // 50% of screen width
    final horizontalMargin = (screenWidth - toastWidth) / 2;

    // Position toast very close to top (10px into safe area)
    final topMargin = topPadding - 10;
    const toastHeight = 60.0;
    final bottomMargin = screenHeight - topMargin - toastHeight;

    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(
        content: Text(
          message,
          style: const TextStyle(
            color: Colors.white,
            fontWeight: FontWeight.bold,
          ),
        ),
        duration: duration,
        behavior: SnackBarBehavior.floating,
        backgroundColor: backgroundColor,
        margin: EdgeInsets.only(
          top: topMargin,
          left: horizontalMargin,
          right: horizontalMargin,
          bottom: bottomMargin,
        ),
      ),
    );
  }
}
