From f716ecc279d38ed3d33a40e1a1f1192dee094cdf Mon Sep 17 00:00:00 2001
From: Osman <AO3856@zebra.com>
Date: Wed, 13 Mar 2024 13:54:39 +0000
Subject: [PATCH] change to have breadcrumb inputs

---
 .../pages/components/breadcrumbs_example.dart | 20 ++++++++++++++++---
 .../components/breadcrumbs_widgetbook.dart    | 20 ++++++++++++++++---
 .../components/breadcrumbs/breadcrumbs.dart   | 15 +++++++-------
 3 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/example/lib/pages/components/breadcrumbs_example.dart b/example/lib/pages/components/breadcrumbs_example.dart
index a9eaf235..12566eda 100644
--- a/example/lib/pages/components/breadcrumbs_example.dart
+++ b/example/lib/pages/components/breadcrumbs_example.dart
@@ -12,9 +12,15 @@ class BreadCrumbsExample extends StatefulWidget {
 }
 
 class _BreadCrumbsExampleState extends State<BreadCrumbsExample> {
-  List<String> _children = [
-    'Icon before with seperator',
+  List<BreadCrumb> _children = [
+    BreadCrumb(
+      label: 'Icon before with seperator',
+      onPressed: () {
+        print("Breadcrumb " + 0.toString() + "Clicked");
+      },
+    ),
   ];
+  int index = 1;
 
   @override
   Widget build(BuildContext context) {
@@ -32,7 +38,15 @@ class _BreadCrumbsExampleState extends State<BreadCrumbsExample> {
                 FilledButton(
                     onPressed: () {
                       setState(() {
-                        _children.add('Icon before with seperator');
+                        _children.add(
+                          BreadCrumb(
+                            label: 'Icon before with seperator',
+                            onPressed: () {
+                              print("Breadcrumb clicked");
+                            },
+                          ),
+                        );
+                        index++;
                       });
                     },
                     child: Text("Add Breadcrumb"))
diff --git a/example/widgetbook/pages/components/breadcrumbs_widgetbook.dart b/example/widgetbook/pages/components/breadcrumbs_widgetbook.dart
index 9c867267..2ecdb9e2 100644
--- a/example/widgetbook/pages/components/breadcrumbs_widgetbook.dart
+++ b/example/widgetbook/pages/components/breadcrumbs_widgetbook.dart
@@ -18,9 +18,15 @@ class BreadCrumbExample extends StatefulWidget {
 }
 
 class _BreadCrumbExampleState extends State<BreadCrumbExample> {
-  List<String> _children = [
-    'Icon before with seperator',
+  List<BreadCrumb> _children = [
+    BreadCrumb(
+      label: 'Icon before with seperator',
+      onPressed: () {
+        print("Breadcrumb " + 0.toString() + "Clicked");
+      },
+    ),
   ];
+  int index = 1;
 
   @override
   Widget build(BuildContext _) {
@@ -58,7 +64,15 @@ class _BreadCrumbExampleState extends State<BreadCrumbExample> {
             FilledButton(
                 onPressed: () {
                   setState(() {
-                    _children.add('Icon before with seperator');
+                    _children.add(
+                      BreadCrumb(
+                        label: 'Icon before with seperator',
+                        onPressed: () {
+                          print("Breadcrumb clicked");
+                        },
+                      ),
+                    );
+                    index++;
                   });
                 },
                 child: Text("Add Breadcrumb"))
diff --git a/lib/src/components/breadcrumbs/breadcrumbs.dart b/lib/src/components/breadcrumbs/breadcrumbs.dart
index 59fac935..2c0dce9f 100644
--- a/lib/src/components/breadcrumbs/breadcrumbs.dart
+++ b/lib/src/components/breadcrumbs/breadcrumbs.dart
@@ -14,7 +14,7 @@ class ZetaBreadCrumbs extends StatefulWidget {
   });
 
   /// Breadcrumb children
-  final List<String> children;
+  final List<BreadCrumb> children;
 
   /// {@macro zeta-component-rounded}
   final bool rounded;
@@ -29,7 +29,7 @@ class ZetaBreadCrumbs extends StatefulWidget {
   void debugFillProperties(DiagnosticPropertiesBuilder properties) {
     super.debugFillProperties(properties);
     properties
-      ..add(IterableProperty<String>('children', children))
+      ..add(IterableProperty<BreadCrumb>('children', children))
       ..add(DiagnosticsProperty<bool?>('rounded', rounded))
       ..add(DiagnosticsProperty<IconData?>('activeIcon', activeIcon));
   }
@@ -37,7 +37,7 @@ class ZetaBreadCrumbs extends StatefulWidget {
 
 class _ZetaBreadCrumbsState extends State<ZetaBreadCrumbs> {
   late int _selectedIndex;
-  late List<String> _children;
+  late List<BreadCrumb> _children;
 
   @override
   void initState() {
@@ -86,20 +86,21 @@ class _ZetaBreadCrumbsState extends State<ZetaBreadCrumbs> {
   }
 
   ///Creates breadcumb widget
-  BreadCrumb createBreadCrumb(String label, int index) {
+  BreadCrumb createBreadCrumb(BreadCrumb input, int index) {
     return BreadCrumb(
-      label: label,
+      label: input.label,
       isSelected: _selectedIndex == index,
       onPressed: () {
         setState(() {
           _selectedIndex = index;
         });
+        input.onPressed.call();
       },
       activeIcon: widget.activeIcon,
     );
   }
 
-  List<Widget> renderedChildren(List<String> children) {
+  List<Widget> renderedChildren(List<BreadCrumb> children) {
     final List<Widget> returnList = [];
     if (children.length > 3) {
       returnList.add(createBreadCrumb(children.first, 0));
@@ -134,7 +135,7 @@ class BreadCrumb extends StatelessWidget {
     super.key,
     required this.label,
     this.icon,
-    required this.isSelected,
+    this.isSelected = false,
     required this.onPressed,
     this.activeIcon,
   });