From 2885ac9afaa4f12bd273e6023186bf086cabcdef Mon Sep 17 00:00:00 2001 From: markkiepe Date: Mon, 27 May 2024 09:43:40 +0200 Subject: [PATCH] feat: dart documentation --- .../default_order_detail_configuration.dart | 3 ++- .../flutter_shopping_configuration.dart | 27 +++++++------------ lib/src/go_router.dart | 4 +-- lib/src/routes.dart | 12 ++++----- .../flutter_shopping_userstory_go_router.dart | 5 ++-- ...flutter_shopping_userstory_navigation.dart | 16 ++++++++--- .../widgets/default_order_failed_widget.dart | 6 ++--- .../widgets/default_order_succes_widget.dart | 6 ++--- 8 files changed, 41 insertions(+), 38 deletions(-) diff --git a/lib/src/config/default_order_detail_configuration.dart b/lib/src/config/default_order_detail_configuration.dart index 09e3562..20059e4 100644 --- a/lib/src/config/default_order_detail_configuration.dart +++ b/lib/src/config/default_order_detail_configuration.dart @@ -3,7 +3,8 @@ import "package:flutter_order_details/flutter_order_details.dart"; import "package:flutter_shopping/main.dart"; import "package:go_router/go_router.dart"; -/// TODO +/// Default order detail configuration for the app. +/// This configuration is used to create the order detail page. OrderDetailConfiguration getDefaultOrderDetailConfiguration( BuildContext context, FlutterShoppingConfiguration configuration, diff --git a/lib/src/config/flutter_shopping_configuration.dart b/lib/src/config/flutter_shopping_configuration.dart index e11a582..f5be6db 100644 --- a/lib/src/config/flutter_shopping_configuration.dart +++ b/lib/src/config/flutter_shopping_configuration.dart @@ -1,46 +1,39 @@ import "package:flutter/material.dart"; import "package:flutter_order_details/flutter_order_details.dart"; -/// TODO +/// Configuration class for the flutter_shopping user-story. class FlutterShoppingConfiguration { - /// TODO + /// Constructor for the FlutterShoppingConfiguration. const FlutterShoppingConfiguration({ required this.shopBuilder, required this.shoppingCartBuilder, required this.onCompleteUserStory, - this.showOrderDetails = false, this.orderDetailsBuilder, this.onCompleteOrderDetails, this.orderSuccessBuilder, this.orderFailedBuilder, - }) : assert( - showOrderDetails && orderDetailsBuilder != null || - !showOrderDetails && orderDetailsBuilder == null, - "showOrderDetails and orderDetailsBuilder must be both set or unset.", - ); + }); - /// TODO + /// Builder for the shop/product page. final Widget Function(BuildContext context) shopBuilder; - /// TODO + /// Builder for the shopping cart page. final Widget Function(BuildContext context) shoppingCartBuilder; - /// TODO + /// Function that is called when the user-story is completed. final Function(BuildContext context) onCompleteUserStory; - /// TODO - final bool showOrderDetails; - - /// TODO + /// Builder for the order details page. This does not have to be set if you + /// are using the default order details page. final Widget Function(BuildContext context)? orderDetailsBuilder; /// Allows you to execute actions before final Future Function(BuildContext context, OrderResult result)? onCompleteOrderDetails; - /// TODO + /// Builder for when the order is successful. final Widget Function(BuildContext context)? orderSuccessBuilder; - /// TODO + /// Builder for when the order failed. final Widget Function(BuildContext context)? orderFailedBuilder; } diff --git a/lib/src/go_router.dart b/lib/src/go_router.dart index b2fc911..cce7de5 100644 --- a/lib/src/go_router.dart +++ b/lib/src/go_router.dart @@ -1,7 +1,7 @@ import "package:flutter/material.dart"; import "package:go_router/go_router.dart"; -/// TODO +/// Builder with a fade transition for when navigating to a new screen. CustomTransitionPage buildScreenWithFadeTransition({ required BuildContext context, required GoRouterState state, @@ -14,7 +14,7 @@ CustomTransitionPage buildScreenWithFadeTransition({ FadeTransition(opacity: animation, child: child), ); -/// TODO +/// Builder without a transition for when navigating to a new screen. CustomTransitionPage buildScreenWithoutTransition({ required BuildContext context, required GoRouterState state, diff --git a/lib/src/routes.dart b/lib/src/routes.dart index 4b2c52c..753285a 100644 --- a/lib/src/routes.dart +++ b/lib/src/routes.dart @@ -1,17 +1,17 @@ -/// TODO +/// All the routes used in the user-story. mixin FlutterShoppingRoutes { - /// TODO + /// The shop page route. static const String shop = "/shop"; - /// TODO + /// The shopping cart page route. static const String shoppingCart = "/shopping-cart"; - /// TODO + /// The order details page route. static const String orderDetails = "/order-details"; - /// TODO + /// The order success page route. static const String orderSuccess = "/order-success"; - /// TODO + /// The order failed page route. static const String orderFailed = "/order-failed"; } diff --git a/lib/src/user_stores/flutter_shopping_userstory_go_router.dart b/lib/src/user_stores/flutter_shopping_userstory_go_router.dart index 6629092..e212b6e 100644 --- a/lib/src/user_stores/flutter_shopping_userstory_go_router.dart +++ b/lib/src/user_stores/flutter_shopping_userstory_go_router.dart @@ -7,7 +7,7 @@ import "package:flutter_shopping/src/widgets/default_order_failed_widget.dart"; import "package:flutter_shopping/src/widgets/default_order_succes_widget.dart"; import "package:go_router/go_router.dart"; -/// TODO +/// All the routes for the shopping story. List getShoppingStoryRoutes({ required FlutterShoppingConfiguration configuration, }) => @@ -36,8 +36,7 @@ List getShoppingStoryRoutes({ name: "orderDetails", path: FlutterShoppingRoutes.orderDetails, pageBuilder: (BuildContext context, GoRouterState state) { - if (configuration.showOrderDetails && - configuration.orderDetailsBuilder != null) { + if (configuration.orderDetailsBuilder != null) { return buildScreenWithFadeTransition( context: context, state: state, diff --git a/lib/src/user_stores/flutter_shopping_userstory_navigation.dart b/lib/src/user_stores/flutter_shopping_userstory_navigation.dart index 121ef64..fff5bd1 100644 --- a/lib/src/user_stores/flutter_shopping_userstory_navigation.dart +++ b/lib/src/user_stores/flutter_shopping_userstory_navigation.dart @@ -3,7 +3,11 @@ import "package:flutter_order_details/flutter_order_details.dart"; import "package:flutter_shopping/main.dart"; import "package:go_router/go_router.dart"; -/// TODO +/// Default on complete order details function. +/// This function will navigate to the order success or order failed page. +/// +/// You can create your own implementation if you decide to use a different +/// approach. Future onCompleteOrderDetails( BuildContext context, FlutterShoppingConfiguration configuration, @@ -28,14 +32,20 @@ Future onCompleteOrderDetails( } } -/// TODO +/// Default on complete shopping cart function. +/// +/// You can create your own implementation if you decide to use a different +/// approach. void onCompleteShoppingCart( BuildContext context, ) { context.go(FlutterShoppingRoutes.orderDetails); } -/// TODO +/// Default on complete product page function. +/// +/// You can create your own implementation if you decide to use a different +/// approach. void onCompleteProductPage( BuildContext context, ) { diff --git a/lib/src/widgets/default_order_failed_widget.dart b/lib/src/widgets/default_order_failed_widget.dart index a3bce79..60718c8 100644 --- a/lib/src/widgets/default_order_failed_widget.dart +++ b/lib/src/widgets/default_order_failed_widget.dart @@ -1,15 +1,15 @@ import "package:flutter/material.dart"; import "package:flutter_shopping/main.dart"; -/// TODO +/// Default order failed widget. class DefaultOrderFailed extends StatelessWidget { - /// TODO + /// Constructor for the DefaultOrderFailed. const DefaultOrderFailed({ required this.configuration, super.key, }); - /// TODO + /// Configuration for the user-story. final FlutterShoppingConfiguration configuration; @override diff --git a/lib/src/widgets/default_order_succes_widget.dart b/lib/src/widgets/default_order_succes_widget.dart index 645560f..98cd9e6 100644 --- a/lib/src/widgets/default_order_succes_widget.dart +++ b/lib/src/widgets/default_order_succes_widget.dart @@ -1,15 +1,15 @@ import "package:flutter/material.dart"; import "package:flutter_shopping/main.dart"; -/// TODO +/// Default order success widget. class DefaultOrderSucces extends StatelessWidget { - /// TODO + /// Constructor for the DefaultOrderSucces. const DefaultOrderSucces({ required this.configuration, super.key, }); - /// TODO + /// Configuration for the user-story. final FlutterShoppingConfiguration configuration; @override