import 'package:flutter/material.dart'; export 'route.dart'; export 'router.dart'; // Kelas abstrak untuk helper navigasi abstract class AppNavigator { AppNavigator._(); // Kunci global untuk mengakses state navigator static final key = GlobalKey(); // Mendapatkan BuildContext saat ini dari navigator static BuildContext get currentContext => key.currentState!.context; // Memeriksa apakah bisa kembali ke halaman sebelumnya static bool get canPop => key.currentState!.canPop(); // Kembali ke halaman pertama dalam tumpukan navigasi static void popUntilIsFirst() { return key.currentState!.popUntil( (route) => route.isFirst, ); } // Pindah ke halaman baru menggunakan nama rute static Future? pushNamed(String route, {arguments}) { return key.currentState!.pushNamed(route, arguments: arguments); } // Pindah ke halaman baru dan mengganti halaman saat ini static Future? pushNamedReplacement(String route, {arguments}) { return key.currentState!.pushReplacementNamed(route, arguments: arguments); } // Pindah ke halaman baru dan menghapus semua halaman sebelumnya static Future? pushNamedAndClear(String route, {arguments}) { return key.currentState!.pushNamedAndRemoveUntil( route, (_) => false, arguments: arguments, ); } // Kembali ke halaman sebelumnya jika memungkinkan static void pop({result}) { if (canPop) return key.currentState!.pop(result); } }