mad_navigation 0.3.1+1
mad_navigation: ^0.3.1+1 copied to clipboard
A pure Dart package providing core navigation interfaces and abstractions for building maintainable and testable applications.
0.3.1 (24-09-2025) #
Updated #
NavigationBuilder
now uses the generic typeS extends MadNavigationState
for the parametersupon
andbuilder
.
0.3.0 (11-09-2025) #
Breaking changes #
RouterTabDelegate
has been renamed toTabRouterDelegate
.NavTabPage
has been renamed toNavTabHolder
.TabPageMapper
has been renamed toTabHolderMapper
.
0.2.0 (29-08-2025) #
Breaking changes #
For the MadRouteMapper
class, the principle of registering NavRoute
object handlers has been
changed. Instead of
directly adding handlers to switch-case, a new API is now used:
MadNavMapper
is a base class for grouping routes by type (PageMapper
,TabPageMapper
,DialogMapper
,BottomSheetMapper
), providing typed processing ofNavRoute
routes.MadRouteBuilder
— a class for creating route handlers, allowing you to define the route type and the associated widget via thebuilder
function. Supports route compatibility checking via the canHandle method and handler invocation via thecall
method.
Added #
Exception classes inherited from MadNavigationException
:
MissingPageFactoryException
— aPage
object could not be created for the passed route.UnhandledRouteException
— the route was not handled by any registered handler.DuplicateRouteException
— the route builder has already been added.
Updated #
- The navigation example in
example
has been reworked.
0.1.3 (11-08-2025) #
Added #
- The
router
directory in themad_navigation_flutter
module, including:MadRouteMapper
— an abstraction for displayingNavRoute
inPage
with support for various page types (NavPage
,NavDialog
,NavBottomSheet
, etc.);MadPageFactoryBuilder
— a factory for creating pages with the ability to extend and customize them viabuildCustomPageFromMissingNavPage
andbuildCustomPageFromMissingNavRoute
;pages
— contains basic implementations of page types for navigation, including standard Flutter pages (MaterialPage
,CupertinoPage
) and custom pages with animations (FadeAnimationPage
,SimplePage
), as well as pages for displaying modal components — dialogs (Dialog
) and bottom sheets (BottomSheet
);AppRouterDelegate
— implementation ofRouterDelegate
for managing navigation using the root page stack (MadNavigationService
).RouterTabDelegate
— implementation ofRouterDelegate
for managing navigation using a combined tab stack (MadTabNavigationService
).MadUrlParser
— abstraction for parsing and restoring route state (with support for flutter web).
0.1.2 (21-07-2025) #
0.1.1 (01-07-2025) #
Added #
DelayedPopTransitionDelegate
— a delegate that allows you to avoid a type error that occurs whenpop
is executed quickly.
0.1.0 (23-05-2025) #
Breaking Changes #
MadNavigationState
has been split into two separate classes:MadNavigationState
- the base navigation state class;MadTabNavigationState
- an extended navigation state class for working with tabs.MadNavigationService
has been split into two separate services:MadNavigationService
- basic navigation service;MadTabNavigationService
- extended navigation service for working with tabs.
- A similar split has been made for
MadNavigationServiceImpl
intoMadNavigationServiceImpl
andMadTabNavigationServiceImpl
.
Updated #
- Fixed empty stack errors when working with
pop
andpopUntill
; - Added a type restriction for
NavigationListener
andNavigationBuilder
; - Redesigned the navigation example in
example
.
0.0.2 (13-05-2025) #
Added #
Standard navigation methods:
void replaceInRoot<T>({NavRoute<T> oldRoute, NavRoute<T> newRoute})
void replaceInTab<T>({NavRoute<T> oldRoute, NavRoute<T> newRoute})
Future<T?> popAndPushToRoot<T>(NavRoute<T> route, {Object? result})
Future<T?> popAndPushToCurrentTab<T>(NavRoute<T> route, {Object? result})
void popUntil(NavRoutePredicate predicate)
Future<T?> pushAndRemoveUntilForRootStack<T>(NavRoute<T> route, {NavRoutePredicate predicate})
Future<T?> pushAndRemoveUntilForTabStack<T>(NavRoute<T> route, {NavRoutePredicate predicate})
Updated #
The PageType
enumeration has been replaced with an abstract class
to allow for type extension.
0.0.1 (05-05-2025) #
Initial release
Added #
- The
mad_navigation
module, containing models and descriptions of system navigation methods (not including user transitions);- The navigation state is described by the
MadNavigationState
class, and the basic methods are defined inMadNavigationService
; NavPage
,NavDialog
, andNavBottomSheet
are used for page, dialog, and BS instances, respectively.- The
PageTabNav
,MadTabType
, andMadTabState
classes have been created to manage tabs.
- The navigation state is described by the
- The
mad_navigation_impl
module contains the implementation of theMadNavigationServiceImpl
navigator based on the flutter independent packagebloc
. - The
mad_navigation_flutter
module contains components for managing the application UI, such asNavigationListener
andNavigationBuilder
. - Other utilities and extensions of navigation functionality.