BASE: Create AppRouter Util.

This commit is contained in:
2025-12-04 15:20:19 +05:00
parent 841cdf8c21
commit 157545f1c0
11 changed files with 580 additions and 298 deletions

42
lib/utils/app_router.dart Normal file
View File

@@ -0,0 +1,42 @@
import 'package:flutter/material.dart';
class AppRouter {
static final GlobalKey<NavigatorState> navigatorKey =
GlobalKey<NavigatorState>();
static void close() {
if (navigatorKey.currentState?.canPop() ?? false) {
navigatorKey.currentState!.pop();
}
}
static void go(Widget page) {
navigatorKey.currentState?.push(_createRoute(page));
}
static void open(Widget page) {
navigatorKey.currentState?.pushAndRemoveUntil(
_createRoute(page),
(Route<dynamic> route) => false,
);
}
static PageRouteBuilder _createRoute(Widget page) {
return PageRouteBuilder(
transitionDuration: const Duration(milliseconds: 200),
reverseTransitionDuration: const Duration(milliseconds: 100),
pageBuilder: (context, animation, secondaryAnimation) => page,
transitionsBuilder: (context, animation, secondaryAnimation, child) {
final curvedAnimation = CurvedAnimation(
parent: animation,
curve: Curves.ease,
);
return ScaleTransition(
alignment: Alignment.center,
scale: Tween<double>(begin: 0.950, end: 1).animate(curvedAnimation),
child: child,
);
},
);
}
}