Line data Source code
1 : part of '../main.dart'; 2 : 3 : /// A [VRouteElement] similar to [VWidgetBase] but which allows you to specify your own page 4 : /// thanks to [pageBuilder] 5 : class VPageBase extends VRouteElement 6 : with 7 : VRouteElementSingleSubRoute, 8 : VRouteElementWithPage, 9 : VoidVGuard, 10 : VoidVPopHandler { 11 : /// A function which allows you to use your own custom page 12 : /// 13 : /// You must use [child] as the child of your page (though you can wrap it in other widgets) 14 : /// 15 : /// [child] will basically be whatever you put in [widget] 16 : @override 17 : final Page Function(LocalKey key, Widget child, String? name) pageBuilder; 18 : 19 : /// The widget which will be displayed for the given [path] 20 : @override 21 : final Widget widget; 22 : 23 : @override 24 : final LocalKey? key; 25 : 26 : @override 27 : final String? name; 28 : 29 : @override 30 : final List<VRouteElement> stackedRoutes; 31 : 32 14 : VPageBase({ 33 : required this.pageBuilder, 34 : required this.widget, 35 : this.key, 36 : this.name, 37 : this.stackedRoutes = const [], 38 : }); 39 : 40 9 : @override 41 9 : List<VRouteElement> buildRoutes() => stackedRoutes; 42 : 43 8 : @override 44 : bool get popWithSubRoute => false; 45 : }