[flutter_adaptive_scaffold] Fix leading and trailing Navigation Rail Widgets (#3080)

The leading and trailing Navigation Rail widgets were not being passed
through to the Navigation Rail.

Fixes flutter/flutter#114684
diff --git a/packages/flutter_adaptive_scaffold/CHANGELOG.md b/packages/flutter_adaptive_scaffold/CHANGELOG.md
index 85dcaaa..88f6aa1 100644
--- a/packages/flutter_adaptive_scaffold/CHANGELOG.md
+++ b/packages/flutter_adaptive_scaffold/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.0.9
+
+* Fix passthrough of `leadingExtendedNavRail`, `leadingUnextendedNavRail` and `trailingNavRail`
+
 ## 0.0.8
 
 Make fuchsia a mobile platform.
diff --git a/packages/flutter_adaptive_scaffold/lib/src/adaptive_scaffold.dart b/packages/flutter_adaptive_scaffold/lib/src/adaptive_scaffold.dart
index 58509ff..e9ec851 100644
--- a/packages/flutter_adaptive_scaffold/lib/src/adaptive_scaffold.dart
+++ b/packages/flutter_adaptive_scaffold/lib/src/adaptive_scaffold.dart
@@ -480,6 +480,8 @@
             ? Drawer(
                 child: NavigationRail(
                   extended: true,
+                  leading: widget.leadingExtendedNavRail,
+                  trailing: widget.trailingNavRail,
                   selectedIndex: widget.selectedIndex,
                   destinations: widget.destinations
                       .map((_) => AdaptiveScaffold.toRailDestination(_))
@@ -498,6 +500,8 @@
                 key: const Key('primaryNavigation'),
                 builder: (_) => AdaptiveScaffold.standardNavigationRail(
                   width: widget.navigationRailWidth,
+                  leading: widget.leadingUnextendedNavRail,
+                  trailing: widget.trailingNavRail,
                   selectedIndex: widget.selectedIndex,
                   destinations: widget.destinations
                       .map((_) => AdaptiveScaffold.toRailDestination(_))
@@ -510,6 +514,8 @@
                 builder: (_) => AdaptiveScaffold.standardNavigationRail(
                   width: widget.extendedNavigationRailWidth,
                   extended: true,
+                  leading: widget.leadingExtendedNavRail,
+                  trailing: widget.trailingNavRail,
                   selectedIndex: widget.selectedIndex,
                   destinations: widget.destinations
                       .map((_) => AdaptiveScaffold.toRailDestination(_))
diff --git a/packages/flutter_adaptive_scaffold/pubspec.yaml b/packages/flutter_adaptive_scaffold/pubspec.yaml
index 36a30a2..33b0353 100644
--- a/packages/flutter_adaptive_scaffold/pubspec.yaml
+++ b/packages/flutter_adaptive_scaffold/pubspec.yaml
@@ -1,6 +1,6 @@
 name: flutter_adaptive_scaffold
 description: Widgets to easily build adaptive layouts, including navigation elements.
-version: 0.0.8
+version: 0.0.9
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+flutter_adaptive_scaffold%22
 repository: https://github.com/flutter/packages/tree/main/packages/flutter_adaptive_scaffold
 
diff --git a/packages/flutter_adaptive_scaffold/test/adaptive_scaffold_test.dart b/packages/flutter_adaptive_scaffold/test/adaptive_scaffold_test.dart
index 41377d1..36a451c 100644
--- a/packages/flutter_adaptive_scaffold/test/adaptive_scaffold_test.dart
+++ b/packages/flutter_adaptive_scaffold/test/adaptive_scaffold_test.dart
@@ -193,6 +193,35 @@
       expect(find.byType(PreferredSizeWidgetImpl), findsOneWidget);
     },
   );
+
+  // Verify that the leading navigation rail widget is displayed
+  // based on the screen size
+  testWidgets(
+    'adaptive scaffold displays leading widget in navigation rail',
+    (WidgetTester tester) async {
+      await Future.forEach(SimulatedLayout.values,
+          (SimulatedLayout region) async {
+        final MaterialApp app = region.app();
+        await tester.binding.setSurfaceSize(region.size);
+        await tester.pumpWidget(app);
+        await tester.pumpAndSettle();
+
+        if (region.size == SimulatedLayout.large.size) {
+          expect(find.text('leading_extended'), findsOneWidget);
+          expect(find.text('leading_unextended'), findsNothing);
+          expect(find.text('trailing'), findsOneWidget);
+        } else if (region.size == SimulatedLayout.medium.size) {
+          expect(find.text('leading_extended'), findsNothing);
+          expect(find.text('leading_unextended'), findsOneWidget);
+          expect(find.text('trailing'), findsOneWidget);
+        } else if (region.size == SimulatedLayout.small.size) {
+          expect(find.text('leading_extended'), findsNothing);
+          expect(find.text('leading_unextended'), findsNothing);
+          expect(find.text('trailing'), findsNothing);
+        }
+      });
+    },
+  );
 }
 
 /// An empty widget that implements [PreferredSizeWidget] to ensure that
diff --git a/packages/flutter_adaptive_scaffold/test/simulated_layout.dart b/packages/flutter_adaptive_scaffold/test/simulated_layout.dart
index 231b6b2..e81a5ff 100644
--- a/packages/flutter_adaptive_scaffold/test/simulated_layout.dart
+++ b/packages/flutter_adaptive_scaffold/test/simulated_layout.dart
@@ -86,6 +86,9 @@
       smallSecondaryBody: (_) => Container(color: Colors.red),
       secondaryBody: (_) => Container(color: Colors.green),
       largeSecondaryBody: (_) => Container(color: Colors.blue),
+      leadingExtendedNavRail: const Text('leading_extended'),
+      leadingUnextendedNavRail: const Text('leading_unextended'),
+      trailingNavRail: const Text('trailing'),
     );
   }
 }