yokutango-mobile-reader/lib/router.dart

58 lines
1.7 KiB
Dart

import 'dart:io';
import 'package:tangocard_reader/models/data_entry.dart';
import 'package:tangocard_reader/models/router_args.dart';
import 'package:tangocard_reader/screens/practise/flashcard.dart';
import 'package:tangocard_reader/screens/home.dart';
import 'package:tangocard_reader/screens/pages/tango_list.dart';
import 'package:flutter/material.dart';
import 'screens/pages/kanji_list.dart';
class PageRouter {
static Route<dynamic> generateRoute(RouteSettings settings) {
final args = settings.arguments;
switch (settings.name) {
case '/':
return MaterialPageRoute(builder: (_) => const Home());
case '/list/tango':
final file = args as File;
return MaterialPageRoute(builder: (_) => TangoList(file: file));
case '/list/kanji':
final file = args as File;
return MaterialPageRoute(builder: (_) => KanjiList(file: file));
case '/benkyou/tango':
final benkyouArgs = args as BenkyouArgs;
return MaterialPageRoute(
builder: (_) => FlashcardView(
cards: benkyouArgs.cards as List<YokutangoEntry>,
index: benkyouArgs.index,
),
);
case '/benkyou/kanji':
// final benkyouArgs = args as BenkyouArgs;
// return MaterialPageRoute(
// builder: (_) => FlashcardView(
// cards: benkyouArgs.cards as List<YokutangoEntry>,
// index: benkyouArgs.index,
// ),
// );
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
appBar: AppBar(title: const Text('Error')),
body: Center(
child: ErrorWidget('No such route...')
),
),
);
}
}
}