| j / k | Scroll down / up |
| gg | Scroll to top |
| G | Scroll to bottom |
| ⌘K / / | Open search |
| ? | Show this help |
| Esc | Close search / help |
| n / N | Next / previous section |
| h | Go to landing |
| d | Go to docs |
| : | Command mode — type section name |
Press ? or Esc to close
A full-screen viewer for images and video, reached via AppRoutes.mediaViewer. It is intentionally exempt from the auth guard so share links work cold.
context.push(
AppRoutes.mediaViewer.route,
pathParameters: {'url': Uri.encodeComponent(mediaUrl)},
); The route inspects the URL extension and renders ImageMediaView or VideoMediaView. Video uses chewie over video_player for controls.
Widget _body(String url) {
if (url.endsWith('.mp4') || url.endsWith('.mov')) {
return VideoMediaView(url: url);
}
return ImageMediaView(url: url);
} Because the viewer is auth-exempt, the global redirect lists it in noAuthRoutes. Any other authenticated-only route would bounce a cold deep link to the login screen.
final noAuthRoutes = [
AppRoutes.splash.route,
AppRoutes.webView.route,
AppRoutes.mediaViewer.route,
];