fluro/lib/src/common.dart

80 lines
1.5 KiB
Dart
Raw Normal View History

2017-05-04 15:33:40 -04:00
/*
2017-05-14 01:01:02 -04:00
* fluro
* Created by Yakka
* https://theyakka.com
*
* Copyright (c) 2019 Yakka, LLC. All rights reserved.
2017-05-04 15:33:40 -04:00
* See LICENSE for distribution and usage details.
*/
2018-07-27 21:15:51 -04:00
import 'package:flutter/widgets.dart';
2017-04-25 03:24:14 -04:00
///
enum HandlerType {
route,
function,
}
2017-04-25 03:24:14 -04:00
///
class Handler {
Handler({this.type = HandlerType.route, this.handlerFunc});
final HandlerType type;
final HandlerFunc handlerFunc;
}
///
typedef Route<T> RouteCreator<T>(
RouteSettings route, Map<String, List<String>> parameters);
///
typedef Widget HandlerFunc(
BuildContext context, Map<String, List<String>> parameters);
2017-04-25 03:24:14 -04:00
///
class AppRoute {
String route;
dynamic handler;
TransitionType transitionType;
AppRoute(this.route, this.handler, {this.transitionType});
}
enum TransitionType {
native,
nativeModal,
inFromLeft,
inFromRight,
inFromBottom,
fadeIn,
custom, // if using custom then you must also provide a transition
cupertino,
cupertinoFullScreenDialog,
}
enum RouteMatchType {
visual,
nonVisual,
noMatch,
}
///
class RouteMatch {
RouteMatch(
{this.matchType = RouteMatchType.noMatch,
this.route,
this.errorMessage = "Unable to match route. Please check the logs."});
final Route<dynamic> route;
final RouteMatchType matchType;
final String errorMessage;
}
class RouteNotFoundException implements Exception {
2018-10-25 14:03:20 -04:00
final String message;
final String path;
RouteNotFoundException(this.message, this.path);
@override
String toString() {
return "No registered route was found to handle '$path'";
}
}