104 lines
2.9 KiB
Dart
104 lines
2.9 KiB
Dart
import 'dart:io';
|
|
|
|
import 'package:fluro/fluro.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:yumi/modules/room/background/room_background_select_page.dart';
|
|
import 'package:yumi/modules/room/background/room_background_upload_page.dart';
|
|
import 'package:yumi/modules/room/edit/room_edit_page.dart';
|
|
import 'package:yumi/modules/room/them/room_theme_page.dart';
|
|
import 'package:yumi/modules/room/voice_room_page.dart';
|
|
import 'package:yumi/app/routes/sc_router_init.dart';
|
|
|
|
class VoiceRoomRoute implements SCIRouterProvider {
|
|
static String voiceRoom = '/room';
|
|
static String roomEdit = '/room/roomEdit';
|
|
static String roomTheme = '/room/roomTheme';
|
|
static String roomBackgroundSelect = '/room/background/select';
|
|
static String roomBackgroundUpload = '/room/background/upload';
|
|
|
|
static Route<T> _buildRoute<T>(Widget page) {
|
|
if (Platform.isIOS) {
|
|
return CupertinoPageRoute<T>(builder: (_) => page);
|
|
}
|
|
return MaterialPageRoute<T>(builder: (_) => page);
|
|
}
|
|
|
|
static Future<T?> openRoomEdit<T>(
|
|
BuildContext context, {
|
|
required bool needRestCurrentRoomInfo,
|
|
bool rootNavigator = true,
|
|
}) {
|
|
return Navigator.of(context, rootNavigator: rootNavigator).push<T>(
|
|
_buildRoute<T>(
|
|
RoomEditPage(
|
|
needRestCurrentRoomInfo: needRestCurrentRoomInfo ? "true" : "false",
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
static Future<T?> openRoomTheme<T>(
|
|
BuildContext context, {
|
|
bool rootNavigator = false,
|
|
}) {
|
|
return Navigator.of(
|
|
context,
|
|
rootNavigator: rootNavigator,
|
|
).push<T>(_buildRoute<T>(RoomThemePage()));
|
|
}
|
|
|
|
static Future<T?> openRoomBackgroundSelect<T>(
|
|
BuildContext context, {
|
|
bool rootNavigator = false,
|
|
}) {
|
|
return Navigator.of(
|
|
context,
|
|
rootNavigator: rootNavigator,
|
|
).push<T>(_buildRoute<T>(const RoomBackgroundSelectPage()));
|
|
}
|
|
|
|
static Future<T?> openRoomBackgroundUpload<T>(
|
|
BuildContext context, {
|
|
bool rootNavigator = false,
|
|
}) {
|
|
return Navigator.of(
|
|
context,
|
|
rootNavigator: rootNavigator,
|
|
).push<T>(_buildRoute<T>(const RoomBackgroundUploadPage()));
|
|
}
|
|
|
|
@override
|
|
void initRouter(FluroRouter router) {
|
|
router.define(
|
|
voiceRoom,
|
|
handler: Handler(handlerFunc: (_, params) => VoiceRoomPage()),
|
|
);
|
|
router.define(
|
|
roomTheme,
|
|
handler: Handler(handlerFunc: (_, params) => RoomThemePage()),
|
|
);
|
|
router.define(
|
|
roomBackgroundSelect,
|
|
handler: Handler(
|
|
handlerFunc: (_, params) => const RoomBackgroundSelectPage(),
|
|
),
|
|
);
|
|
router.define(
|
|
roomBackgroundUpload,
|
|
handler: Handler(
|
|
handlerFunc: (_, params) => const RoomBackgroundUploadPage(),
|
|
),
|
|
);
|
|
router.define(
|
|
roomEdit,
|
|
handler: Handler(
|
|
handlerFunc:
|
|
(_, params) => RoomEditPage(
|
|
needRestCurrentRoomInfo: params['need']?.first ?? "false",
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|