poem_router.dart 1.3 KB
import 'package:fluro/fluro.dart';
import 'package:one_poem/poem/page/poem_record_audio.dart';
import 'package:one_poem/routers/i_router.dart';
import 'page/poem_detail.dart';
import 'page/poem_page.dart';
import 'page/poem_video_player.dart';

class PoemRouter implements IRouterProvider {
  static String poemPage = '/poem';
  static String poemDetailPage = '/detail';
  static String poemRecordAudioPage = '/poem/record/audio';
  static String poemVidePlayer = '/poem/video/player';

  @override
  void initRouter(FluroRouter router) {
    router.define(poemPage,
        handler: Handler(handlerFunc: (_, __) => const PoemPage()));
    router.define(poemDetailPage,
        handler: Handler(handlerFunc: (_, Map<String, List<String>> params) {
      String? id = params['id']?.first;
      return PoemDetailPage(
        poemId: int.parse(id!),
      );
    }));
    router.define(poemRecordAudioPage,
        handler: Handler(handlerFunc: (_, Map<String, List<String>> params) {
      String? id = params['id']?.first;
      return PoemRecordAudioPage(
        poemId: int.parse(id!),
      );
    }));
    router.define(poemVidePlayer,
        handler: Handler(handlerFunc: (_, Map<String, List<String>> params) {
      String? url = params['url']?.first;
      return PoemVideoPlayer(
        url: url!,
      );
    }));
  }
}