import 'package:flutter/material.dart';

/// Utility class untuk mengelola keyboard dengan lebih baik
class KeyboardUtils {
  /// Meminta fokus ke field tertentu
  static void requestFocus(BuildContext context, FocusNode focusNode) {
    FocusScope.of(context).requestFocus(focusNode);
  }

  /// Menutup keyboard hanya jika sedang terbuka dan tidak ada field yang difokuskan
  static void dismissKeyboardIfNeeded(BuildContext context) {
    final currentFocus = FocusScope.of(context);
    if (!currentFocus.hasPrimaryFocus && currentFocus.focusedChild != null) {
      FocusManager.instance.primaryFocus?.unfocus();
    }
  }

  /// Menutup keyboard dengan paksa
  static void forceCloseKeyboard() {
    FocusManager.instance.primaryFocus?.unfocus();
  }

  /// Menambahkan padding untuk menghindari keyboard
  static EdgeInsets keyboardAvoidingPadding(BuildContext context) {
    final keyboardHeight = MediaQuery.of(context).viewInsets.bottom;
    return EdgeInsets.only(
      bottom: keyboardHeight > 0 ? keyboardHeight + 20 : 0,
    );
  }
}
