Files
sync_replay_project/apps/desktop/lib/app.dart
T

50 lines
1.5 KiB
Dart

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:signals/signals_flutter.dart';
import 'src/screens/connect_screen.dart';
import 'src/screens/legacy_session_screen.dart';
import 'src/screens/minimal_session_screen.dart';
import 'src/screens/nosheet_session_screen.dart';
import 'src/screens/session_screen.dart';
import 'src/screens/welcome_screen.dart';
import 'src/state/session_state.dart';
bool get useLegacySession =>
Platform.environment['SYNC_RELAY_UI'] == 'legacy';
bool get useMinimalSession =>
Platform.environment['SYNC_RELAY_UI'] == 'minimal';
bool get useNosheetSession =>
Platform.environment['SYNC_RELAY_UI'] == 'nosheet';
class WatchTogetherApp extends StatelessWidget {
const WatchTogetherApp({super.key});
@override
Widget build(BuildContext context) {
final session = SessionState.instance;
return MaterialApp(
title: 'Watch Together',
theme: ThemeData.dark(),
home: SignalBuilder(
builder: (context) {
return switch (session.route.value) {
AppRoute.welcome => const WelcomeScreen(),
AppRoute.connect => const ConnectScreen(),
AppRoute.session => useMinimalSession
? const MinimalSessionScreen()
: useNosheetSession
? const NosheetSessionScreen()
: useLegacySession
? const LegacySessionScreen()
: const SessionScreen(),
};
},
),
);
}
}