2017-05-04 15:33:40 -04:00
|
|
|
/*
|
2017-05-14 01:01:02 -04:00
|
|
|
* fluro
|
2017-05-04 15:33:40 -04:00
|
|
|
* A Posse Production
|
|
|
|
* http://goposse.com
|
2018-01-17 00:12:32 -05:00
|
|
|
* Copyright (c) 2018 Posse Productions LLC. All rights reserved.
|
2017-05-04 15:33:40 -04:00
|
|
|
* See LICENSE for distribution and usage details.
|
|
|
|
*/
|
2017-05-14 00:28:28 -04:00
|
|
|
part of fluro;
|
2017-04-25 03:24:14 -04:00
|
|
|
|
|
|
|
///
|
2017-05-28 13:13:36 -04:00
|
|
|
enum HandlerType {
|
|
|
|
route,
|
|
|
|
function,
|
|
|
|
}
|
2017-04-25 03:24:14 -04:00
|
|
|
|
|
|
|
///
|
2017-05-28 13:13:36 -04:00
|
|
|
class Handler {
|
|
|
|
Handler({this.type = HandlerType.route, this.handlerFunc});
|
|
|
|
final HandlerType type;
|
|
|
|
final HandlerFunc handlerFunc;
|
|
|
|
}
|
|
|
|
|
|
|
|
///
|
2018-07-21 13:26:46 -04:00
|
|
|
typedef Route<T> RouteCreator<T>(
|
|
|
|
RouteSettings route, Map<String, List<String>> parameters);
|
2017-05-28 13:13:36 -04:00
|
|
|
|
|
|
|
///
|
2018-07-21 13:26:46 -04:00
|
|
|
typedef Widget HandlerFunc(
|
|
|
|
BuildContext context, Map<String, List<String>> parameters);
|
2017-04-25 03:24:14 -04:00
|
|
|
|
|
|
|
///
|
|
|
|
class AppRoute {
|
|
|
|
String route;
|
2017-05-28 13:13:36 -04:00
|
|
|
dynamic handler;
|
2017-05-04 15:27:32 -04:00
|
|
|
AppRoute(this.route, this.handler);
|
2017-05-28 13:13:36 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
enum RouteMatchType {
|
|
|
|
visual,
|
|
|
|
nonVisual,
|
|
|
|
noMatch,
|
|
|
|
}
|
|
|
|
|
|
|
|
///
|
|
|
|
class RouteMatch {
|
2018-07-21 13:26:46 -04:00
|
|
|
RouteMatch(
|
|
|
|
{this.matchType = RouteMatchType.noMatch,
|
|
|
|
this.route,
|
|
|
|
this.errorMessage = "Unable to match route. Please check the logs."});
|
2017-10-13 20:10:21 -04:00
|
|
|
final Route<dynamic> route;
|
2017-05-28 13:13:36 -04:00
|
|
|
final RouteMatchType matchType;
|
|
|
|
final String errorMessage;
|
2018-07-21 13:26:46 -04:00
|
|
|
}
|