flutter_edd 1.0.0 copy "flutter_edd: ^1.0.0" to clipboard
flutter_edd: ^1.0.0 copied to clipboard

A package that facilitates event-driven design for Flutter apps

example/lib/main.dart

import 'package:example/core/deep_link/deep_link_listener.dart';
import 'package:example/core/navigation/navigation_listener_cubit.dart';
import 'package:example/dashboard/dashboard_page.dart';
import 'package:example/hotel_selection/hotel_selection_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

void main() {
  runApp(const MyApp());
}

final globalNavigatorKey = GlobalKey<NavigatorState>();

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return BlocProvider(
      create: (context) => NavigationListenerCubit(),
      child: BlocBuilder<NavigationListenerCubit, NavigationListenerState>(
        builder: (context, state) {
          return DeepLinkListener(
            child: MaterialApp(
              debugShowCheckedModeBanner: false,
              title: 'Flutter Demo',
              theme: ThemeData(
                colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
                useMaterial3: true,
              ),
              navigatorKey: globalNavigatorKey,
              initialRoute: '/dashboard',
              onGenerateRoute: (settings) {
                final routeUri = settings.name is String ? Uri.tryParse(settings.name as String) : null;

                final arguments = routeUri?.queryParameters ?? {};

                switch (routeUri?.path ?? "") {
                  case '/dashboard':
                    return MaterialPageRoute(builder: (context) => const DashboardPage());
                  case '/hotel-selection':
                    return MaterialPageRoute(
                      builder: (context) => HotelSelectionPage(
                        city: arguments['city'] as String,
                        dateRange: arguments['dateRange'] as String,
                        numberOfPeople: int.parse(arguments['numberOfPeople'] as String),
                      ),
                    );
                }
              },
            ),
          );
        },
      ),
    );
  }
}
1
likes
140
points
20
downloads

Publisher

unverified uploader

Weekly Downloads

A package that facilitates event-driven design for Flutter apps

Repository (GitHub)
View/report issues

Topics

#event #event-driven #event-driven-design #reactive-programming #bloc

Documentation

API reference

License

MIT (license)

Dependencies

bloc, flutter, rxdart

More

Packages that depend on flutter_edd