118 lines
2.5 KiB
Dart
118 lines
2.5 KiB
Dart
import 'package:get/get.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
/// navigator
|
|
class HelpNav {
|
|
/// clear all route
|
|
static Future<T?>? offAllNamed<T>(
|
|
String newRouteName, {
|
|
Map? arguments,
|
|
RoutePredicate? predicate,
|
|
String? tag,
|
|
Map? parameters,
|
|
}) {
|
|
return Get.offAllNamed<T>(
|
|
newRouteName,
|
|
arguments: arguments,
|
|
predicate: predicate,
|
|
parameters: {...?parameters},
|
|
);
|
|
}
|
|
|
|
static Future<T?>? off<T>(Widget page, {arguments, preventDuplicates}) {
|
|
return Get.off<T>(
|
|
() => page,
|
|
arguments: arguments,
|
|
preventDuplicates: preventDuplicates ?? false,
|
|
);
|
|
}
|
|
|
|
static Future<T?>? offAll<T>(Widget page, {arguments, preventDuplicates}) {
|
|
return Get.offAll<T>(() => page, arguments: arguments);
|
|
}
|
|
|
|
static Future<T?>? offNamed<T>(
|
|
String newRouteName, {
|
|
arguments,
|
|
preventDuplicates,
|
|
}) {
|
|
return Get.offNamed<T>(
|
|
newRouteName,
|
|
arguments: arguments,
|
|
preventDuplicates: preventDuplicates ?? true,
|
|
);
|
|
}
|
|
|
|
/// to name
|
|
static Future<T?>? toNamed<T>(
|
|
String newRouteName, {
|
|
arguments,
|
|
String? tag,
|
|
Map? parameters,
|
|
}) {
|
|
return Get.toNamed<T>(
|
|
newRouteName,
|
|
arguments: arguments,
|
|
parameters: {...?parameters},
|
|
);
|
|
}
|
|
|
|
/// to route
|
|
static Future<T?>? to<T>(Widget page, {arguments, binding}) {
|
|
return Get.to<T>(
|
|
() => page,
|
|
arguments: arguments,
|
|
binding: binding,
|
|
preventDuplicates: false,
|
|
);
|
|
}
|
|
|
|
static void _until<T>({String? routeName, T? result}) {
|
|
if (result == null) {
|
|
Get.back<T>(result: result);
|
|
return;
|
|
}
|
|
// Get.back<T>(result: result);
|
|
//
|
|
if (routeName == null) {
|
|
Get.back<T>(result: result);
|
|
return;
|
|
}
|
|
}
|
|
|
|
/// back pre
|
|
/// [result]
|
|
static void back<T>({T? result, String? routeName}) {
|
|
_until(routeName: routeName, result: result);
|
|
}
|
|
|
|
/// show dialog
|
|
static Future<T?> showDialog<T>(
|
|
Widget child, {
|
|
bool barrierDismissible = false,
|
|
}) {
|
|
return Get.dialog<T>(
|
|
Center(child: child),
|
|
barrierDismissible: barrierDismissible,
|
|
);
|
|
}
|
|
|
|
/// show bottom sheet
|
|
static Future<T?> showBottom<T>(
|
|
Widget child, {
|
|
Color? safeAreaColor,
|
|
|
|
double? borderRadius,
|
|
bool isDismissible = false,
|
|
bool isScrollControlled = false,
|
|
bool? enableDrag,
|
|
}) {
|
|
return Get.bottomSheet<T>(
|
|
child,
|
|
isScrollControlled: isScrollControlled,
|
|
enableDrag: enableDrag ?? true,
|
|
isDismissible: isDismissible,
|
|
);
|
|
}
|
|
}
|