wizard_router 0.9.2 copy "wizard_router: ^0.9.2" to clipboard
wizard_router: ^0.9.2 copied to clipboard

Routing for linear wizards. No dependencies between pages. Pages merely request the next page. Routes and conditions defined in a central place.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:wizard_router/wizard_router.dart';

import 'models.dart';
import 'pages.dart';
import 'routes.dart';
import 'services.dart';

void main() {
  final service = NetworkService();
  runApp(
    ChangeNotifierProvider(
      create: (_) => NetworkModel(service),
      child: const WizardApp(),
    ),
  );
}

class WizardApp extends StatelessWidget {
  const WizardApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Wizard(
        initialRoute: Routes.initial,
        routes: <String, WizardRoute>{
          Routes.welcome: WizardRoute(
            builder: WelcomePage.create,
          ),
          Routes.chooser: WizardRoute(
            builder: ChooserPage.create,
            onNext: (settings) {
              switch (settings.arguments as Choice?) {
                case Choice.preview:
                  return Routes.preview;
                case Choice.install:
                  if (!context.read<NetworkModel>().isConnected) {
                    return Routes.connect;
                  }
                  return Routes.install;
                default:
                  throw ArgumentError(settings.arguments);
              }
            },
          ),
          Routes.preview: WizardRoute(
            builder: PreviewPage.create,
          ),
          Routes.connect: WizardRoute(
            builder: ConnectPage.create,
            onBack: (_) => Routes.chooser,
          ),
          Routes.install: WizardRoute(
            builder: InstallPage.create,
            onBack: (_) => Routes.chooser,
          ),
        },
      ),
    );
  }
}
21
likes
0
pub points
76%
popularity

Publisher

verified publishercanonical.com

Routing for linear wizards. No dependencies between pages. Pages merely request the next page. Routes and conditions defined in a central place.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

collection, flow_builder, flutter

More

Packages that depend on wizard_router