mirror of
https://github.com/Livinglist/Hacki.git
synced 2025-08-06 18:24:42 +08:00

* replaced StoryScreen with ItemScreen. * use ItemScreen for share extension. * fixed getItemId() * bumped version. * force new screen on viewing comments in separate thread. * disable comment thread if comment is deleted or dead. * navigate to new screen on viewing parent thread. * bumped version. * fixed inconsistent fontsize. * bumped version.
49 lines
1.3 KiB
Dart
49 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:hacki/screens/screens.dart';
|
|
|
|
/// Custom router.
|
|
///
|
|
/// Handle named routing.
|
|
class CustomRouter {
|
|
/// Top level routing.
|
|
static Route<dynamic> onGenerateRoute(RouteSettings settings) {
|
|
switch (settings.name) {
|
|
case HomeScreen.routeName:
|
|
return HomeScreen.route();
|
|
case ItemScreen.routeName:
|
|
return ItemScreen.route(settings.arguments! as ItemScreenArgs);
|
|
case SubmitScreen.routeName:
|
|
return SubmitScreen.route();
|
|
default:
|
|
return _errorRoute();
|
|
}
|
|
}
|
|
|
|
/// Nested routing for bottom navigation bar.
|
|
static Route<dynamic> onGenerateNestedRoute(RouteSettings settings) {
|
|
switch (settings.name) {
|
|
case ItemScreen.routeName:
|
|
return ItemScreen.route(settings.arguments! as ItemScreenArgs);
|
|
case SubmitScreen.routeName:
|
|
return SubmitScreen.route();
|
|
default:
|
|
return _errorRoute();
|
|
}
|
|
}
|
|
|
|
/// Error route.
|
|
static Route<dynamic> _errorRoute() {
|
|
return MaterialPageRoute<dynamic>(
|
|
settings: const RouteSettings(name: '/error'),
|
|
builder: (_) => Scaffold(
|
|
appBar: AppBar(
|
|
title: const Text('Error'),
|
|
),
|
|
body: const Center(
|
|
child: Text('Something went wrong!'),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|