execute method
Executes this configuration.
The context parameter provides access to the widget tree.
The optional arguments map contains parameters for the execution.
Implementation
@override
Future<void> execute(
BuildContext context, {
Map<String, dynamic>? arguments,
}) async {
if (linkType == LinkType.route) {
if (route == null || route!.ref.trim().isEmpty) {
throw ArgumentError(
'A route reference is required for route navigation.',
);
}
await _performNavigation(context, routeId: route!.ref);
return;
}
if (url == null || url!.trim().isEmpty) {
throw ArgumentError('A URL is required for URL navigation.');
}
final uri = Uri.parse(url!);
if (uri.scheme.startsWith('http')) {
vyuh.router.push('/__system_navigate__', extra: uri);
return;
}
final localRoute = vyuh.router.instance.configuration.findMatch(uri);
var isLocal = localRoute.isNotEmpty;
if (isLocal) {
navigationType.apply(context, uri.toString());
return;
}
await _performNavigation(context, uri: uri);
}