Skip to content

Commit 97ece58

Browse files
committed
[feature] add optional builder to nuvigator
1 parent 59d468b commit 97ece58

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

lib/src/nuvigator.dart

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ class _NuvigatorInner<T extends INuRouter> extends Navigator {
8787
this.debug = false,
8888
this.inheritableObservers = const [],
8989
this.shouldPopRoot = false,
90+
this.builder,
9091
}) : super(
9192
observers: [
9293
HeroController(),
@@ -123,6 +124,7 @@ class _NuvigatorInner<T extends INuRouter> extends Navigator {
123124
final ScreenType screenType;
124125
final WrapperFn? wrapper;
125126
final List<ObserverBuilder> inheritableObservers;
127+
final TransitionBuilder? builder;
126128

127129
@override
128130
NavigatorState createState() {
@@ -493,7 +495,11 @@ class NuvigatorState<T extends INuRouter> extends NavigatorState
493495
child: child,
494496
);
495497
}
496-
return child;
498+
final builder = widget.builder;
499+
500+
return builder != null
501+
? Builder(builder: (context) => builder(context, child))
502+
: child;
497503
}
498504
}
499505

@@ -512,6 +518,7 @@ class Nuvigator<T extends INuRouter?> extends StatelessWidget {
512518
this.inheritableObservers = const [],
513519
this.shouldPopRoot = false,
514520
this.shouldRebuild,
521+
this.builder,
515522
}) : _innerKey = key,
516523
assert(router != null);
517524

@@ -551,6 +558,7 @@ class Nuvigator<T extends INuRouter?> extends StatelessWidget {
551558
final Key? _innerKey;
552559
final Map<String, dynamic>? initialArguments;
553560
final ShouldRebuildFn? shouldRebuild;
561+
final TransitionBuilder? builder;
554562

555563
/// Maybe fetches a [NuvigatorState] from the current BuildContext.
556564
static NuvigatorState<T>? maybeOf<T extends INuRouter>(
@@ -604,6 +612,7 @@ class Nuvigator<T extends INuRouter?> extends StatelessWidget {
604612
router: router as NuRouter,
605613
shouldRebuild: shouldRebuild,
606614
builder: (moduleRouter) => _NuvigatorInner(
615+
builder: builder,
607616
router: moduleRouter,
608617
debug: debug,
609618
inheritableObservers: inheritableObservers,

0 commit comments

Comments
 (0)