itemDetail property
getter/setter pair
Implementation
static RouteHref itemDetail = RouteHref(
path: '/{section}/{id}',
titleBuilder: (event) {
RouteSettings settings = event.settings;
if (settings.arguments is DetailParams) {
var arguments = settings.arguments as DetailParams;
if (arguments.title != null) {
return '${arguments.title!(event.context)}';
} else {
return arguments.screenTitle;
}
}
return "Unknown Title";
},
animated: (event) => !isLargeFormatWeb(event.context!),
onPush: (event) {
RouteSettings settings = event.settings;
if (settings.arguments is DetailParams) {
var arguments = settings.arguments as DetailParams;
if (arguments.itemType == 'Media') {
Provider.of<MediaManager>(event.context!, listen: false)
.queueMedia(arguments.item);
EdgeInsets? offset;
if (isLargeFormatLayout(event.context!)) {
offset = const EdgeInsets.only(
top: 56, left: 100, bottom: 0, right: 0);
}
MediaOverlay.of(event.context!)
.show(arguments.item, offset: offset);
return true;
}
}
return false;
},
builder: (event) {
RouteSettings settings = event.settings;
if (settings.arguments is DetailParams) {
var arguments = settings.arguments as DetailParams;
if (arguments.itemType == 'Wisdom') {
return Stack(
children: [
GestureDetector(
onTap: () => Navigator.of(event.context!).pop(),
child: Container(
color: Colors.black54,
),
),
Dialog(
child: Container(
constraints: const BoxConstraints(maxWidth: 580),
child: WisdomBody(item: arguments.item)),
),
],
);
} else if (arguments.itemType == 'CuratedList') {
return CurationScreen(
item: arguments.item,
);
}
return DetailScreen(
params: event.settings.arguments,
);
}
return EntityLoaderScreen(
entityID:
settings.name!.substring(settings.name!.lastIndexOf('/') + 1),
);
}
// dialogIf: (routeEvent) => isLargeFormatWeb(routeEvent.context)
);