Skip to content

Commit b123794

Browse files
jtdLabGroovinChip
andcommitted
feat: add support for routerConfig to MacosApp.router (#390)
* feat: add support for routerConfig to MacosApp.router * remove required keywords in constructor * rm ! in _buildMacosApp * Update CHANGELOG.md Co-authored-by: Reuben Turner <groovinchip@gmail.com> --------- Co-authored-by: Reuben Turner <groovinchip@gmail.com>
1 parent 7f79035 commit b123794

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## [1.12.3]
2+
* Added support for `routerConfig` to `MacosApp.router`. ([#388](https://github.com/macosui/macos_ui/issues/388))
3+
14
## [1.12.2]
25
* 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)).
36

example/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ packages:
9797
path: ".."
9898
relative: true
9999
source: path
100-
version: "1.12.2"
100+
version: "1.12.3"
101101
matcher:
102102
dependency: transitive
103103
description:

lib/src/macos_app.dart

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,17 @@ class MacosApp extends StatefulWidget {
7474
}) : routeInformationProvider = null,
7575
routeInformationParser = null,
7676
routerDelegate = null,
77-
backButtonDispatcher = null;
77+
backButtonDispatcher = null,
78+
routerConfig = null;
7879

7980
/// Creates a [MacosApp] that uses the [Router] instead of a [Navigator].
8081
MacosApp.router({
8182
super.key,
8283
this.routeInformationProvider,
83-
required RouteInformationParser<Object> this.routeInformationParser,
84-
required RouterDelegate<Object> this.routerDelegate,
84+
this.routeInformationParser,
85+
this.routerDelegate,
8586
this.backButtonDispatcher,
87+
this.routerConfig,
8688
this.builder,
8789
this.title = '',
8890
this.onGenerateTitle,
@@ -104,7 +106,8 @@ class MacosApp extends StatefulWidget {
104106
this.themeMode,
105107
this.theme,
106108
this.darkTheme,
107-
}) : assert(supportedLocales.isNotEmpty),
109+
}) : assert(routerDelegate != null || routerConfig != null),
110+
assert(supportedLocales.isNotEmpty),
108111
navigatorObservers = null,
109112
navigatorKey = null,
110113
onGenerateRoute = null,
@@ -157,6 +160,9 @@ class MacosApp extends StatefulWidget {
157160
/// {@macro flutter.widgets.widgetsApp.backButtonDispatcher}
158161
final BackButtonDispatcher? backButtonDispatcher;
159162

163+
/// {@macro flutter.widgets.widgetsApp.routerConfig}
164+
final RouterConfig<Object>? routerConfig;
165+
160166
/// {@macro flutter.widgets.widgetsApp.builder}
161167
final TransitionBuilder? builder;
162168

@@ -300,7 +306,8 @@ class MacosApp extends StatefulWidget {
300306
}
301307

302308
class _MacosAppState extends State<MacosApp> {
303-
bool get _usesRouter => widget.routerDelegate != null;
309+
bool get _usesRouter =>
310+
widget.routerDelegate != null || widget.routerConfig != null;
304311

305312
Widget _macosBuilder(BuildContext context, Widget? child) {
306313
final mode = widget.themeMode ?? ThemeMode.system;
@@ -346,9 +353,10 @@ class _MacosAppState extends State<MacosApp> {
346353
return c.CupertinoApp.router(
347354
key: GlobalObjectKey(this),
348355
routeInformationProvider: widget.routeInformationProvider,
349-
routeInformationParser: widget.routeInformationParser!,
350-
routerDelegate: widget.routerDelegate!,
356+
routeInformationParser: widget.routeInformationParser,
357+
routerDelegate: widget.routerDelegate,
351358
backButtonDispatcher: widget.backButtonDispatcher,
359+
routerConfig: widget.routerConfig,
352360
builder: _macosBuilder,
353361
title: widget.title,
354362
onGenerateTitle: widget.onGenerateTitle,

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: macos_ui
22
description: Flutter widgets and themes implementing the current macOS design language.
3-
version: 1.12.2
3+
version: 1.12.3
44
homepage: "https://macosui.dev"
55
repository: "https://github.com/GroovinChip/macos_ui"
66

0 commit comments

Comments
 (0)