// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'router.dart';

// **************************************************************************
// GoRouterGenerator
// **************************************************************************

List<RouteBase> get $appRoutes => [$homeShellRouteData, $itemDetailRouteData];

RouteBase get $homeShellRouteData => StatefulShellRouteData.$route(
  factory: $HomeShellRouteDataExtension._fromState,
  branches: [
    StatefulShellBranchData.$branch(
      routes: [
        GoRouteData.$route(
          path: '/scanner',
          factory: $ScannerRouteData._fromState,
        ),
      ],
    ),
    StatefulShellBranchData.$branch(
      routes: [
        GoRouteData.$route(
          path: '/history',
          factory: $HistoryRouteData._fromState,
        ),
      ],
    ),
  ],
);

extension $HomeShellRouteDataExtension on HomeShellRouteData {
  static HomeShellRouteData _fromState(GoRouterState state) =>
      const HomeShellRouteData();
}

mixin $ScannerRouteData on GoRouteData {
  static ScannerRouteData _fromState(GoRouterState state) =>
      const ScannerRouteData();

  @override
  String get location => GoRouteData.$location('/scanner');

  @override
  void go(BuildContext context) => context.go(location);

  @override
  Future<T?> push<T>(BuildContext context) => context.push<T>(location);

  @override
  void pushReplacement(BuildContext context) =>
      context.pushReplacement(location);

  @override
  void replace(BuildContext context) => context.replace(location);
}

mixin $HistoryRouteData on GoRouteData {
  static HistoryRouteData _fromState(GoRouterState state) =>
      const HistoryRouteData();

  @override
  String get location => GoRouteData.$location('/history');

  @override
  void go(BuildContext context) => context.go(location);

  @override
  Future<T?> push<T>(BuildContext context) => context.push<T>(location);

  @override
  void pushReplacement(BuildContext context) =>
      context.pushReplacement(location);

  @override
  void replace(BuildContext context) => context.replace(location);
}

RouteBase get $itemDetailRouteData => GoRouteData.$route(
  path: '/item/:barcode',
  factory: $ItemDetailRouteData._fromState,
);

mixin $ItemDetailRouteData on GoRouteData {
  static ItemDetailRouteData _fromState(GoRouterState state) =>
      ItemDetailRouteData(barcode: state.pathParameters['barcode']!);

  ItemDetailRouteData get _self => this as ItemDetailRouteData;

  @override
  String get location =>
      GoRouteData.$location('/item/${Uri.encodeComponent(_self.barcode)}');

  @override
  void go(BuildContext context) => context.go(location);

  @override
  Future<T?> push<T>(BuildContext context) => context.push<T>(location);

  @override
  void pushReplacement(BuildContext context) =>
      context.pushReplacement(location);

  @override
  void replace(BuildContext context) => context.replace(location);
}