diff --git a/CHANGELOG.md b/CHANGELOG.md index 50742fa2..c79798a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## [1.12.3] +* Added support for `routerConfig` to `MacosApp.router`. ([#388](https://github.com/macosui/macos_ui/issues/388)) + ## [1.12.2] * Fixed a bug where clicking on a overflowed toolbar item with a navigation callback wouldn't work ([#346](https://github.com/GroovinChip/macos_ui/issues/346)). diff --git a/example/pubspec.lock b/example/pubspec.lock index cf8e59b8..546efaa5 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -97,7 +97,7 @@ packages: path: ".." relative: true source: path - version: "1.12.2" + version: "1.12.3" matcher: dependency: transitive description: diff --git a/lib/src/macos_app.dart b/lib/src/macos_app.dart index c4068f30..a430ce1b 100644 --- a/lib/src/macos_app.dart +++ b/lib/src/macos_app.dart @@ -74,15 +74,17 @@ class MacosApp extends StatefulWidget { }) : routeInformationProvider = null, routeInformationParser = null, routerDelegate = null, - backButtonDispatcher = null; + backButtonDispatcher = null, + routerConfig = null; /// Creates a [MacosApp] that uses the [Router] instead of a [Navigator]. MacosApp.router({ super.key, this.routeInformationProvider, - required RouteInformationParser this.routeInformationParser, - required RouterDelegate this.routerDelegate, + this.routeInformationParser, + this.routerDelegate, this.backButtonDispatcher, + this.routerConfig, this.builder, this.title = '', this.onGenerateTitle, @@ -104,7 +106,8 @@ class MacosApp extends StatefulWidget { this.themeMode, this.theme, this.darkTheme, - }) : assert(supportedLocales.isNotEmpty), + }) : assert(routerDelegate != null || routerConfig != null), + assert(supportedLocales.isNotEmpty), navigatorObservers = null, navigatorKey = null, onGenerateRoute = null, @@ -157,6 +160,9 @@ class MacosApp extends StatefulWidget { /// {@macro flutter.widgets.widgetsApp.backButtonDispatcher} final BackButtonDispatcher? backButtonDispatcher; + /// {@macro flutter.widgets.widgetsApp.routerConfig} + final RouterConfig? routerConfig; + /// {@macro flutter.widgets.widgetsApp.builder} final TransitionBuilder? builder; @@ -300,7 +306,8 @@ class MacosApp extends StatefulWidget { } class _MacosAppState extends State { - bool get _usesRouter => widget.routerDelegate != null; + bool get _usesRouter => + widget.routerDelegate != null || widget.routerConfig != null; Widget _macosBuilder(BuildContext context, Widget? child) { final mode = widget.themeMode ?? ThemeMode.system; @@ -346,9 +353,10 @@ class _MacosAppState extends State { return c.CupertinoApp.router( key: GlobalObjectKey(this), routeInformationProvider: widget.routeInformationProvider, - routeInformationParser: widget.routeInformationParser!, - routerDelegate: widget.routerDelegate!, + routeInformationParser: widget.routeInformationParser, + routerDelegate: widget.routerDelegate, backButtonDispatcher: widget.backButtonDispatcher, + routerConfig: widget.routerConfig, builder: _macosBuilder, title: widget.title, onGenerateTitle: widget.onGenerateTitle, diff --git a/pubspec.yaml b/pubspec.yaml index 4d660503..7e1d73a1 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: macos_ui description: Flutter widgets and themes implementing the current macOS design language. -version: 1.12.2 +version: 1.12.3 homepage: "https://macosui.dev" repository: "https://github.com/GroovinChip/macos_ui"