Switched to getx for state management

Fixed last remaining bug
This commit is contained in:
Alessandro Autiero
2022-09-06 14:18:31 +02:00
parent ddc088e7d4
commit 94eaa2abb0
33 changed files with 429 additions and 1033 deletions

View File

@@ -1,62 +1,32 @@
import 'dart:async';
import 'dart:io';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:reboot_launcher/src/util/generic_controller.dart';
import 'package:get/get.dart';
import 'package:reboot_launcher/src/controller/server_controller.dart';
import 'package:reboot_launcher/src/controller/warning_controller.dart';
import 'package:reboot_launcher/src/widget/local_server_switch.dart';
import 'package:reboot_launcher/src/widget/port_input.dart';
import '../widget/host_input.dart';
import '../widget/server_button.dart';
import 'package:reboot_launcher/src/widget/host_input.dart';
import 'package:reboot_launcher/src/widget/server_button.dart';
class ServerPage extends StatefulWidget {
final GenericController<bool> localController;
final TextEditingController hostController;
final TextEditingController portController;
final GenericController<Process?> serverController;
final GenericController<bool> startedServerController;
import 'package:reboot_launcher/src/widget/restart_warning.dart';
const ServerPage(
{Key? key,
required this.localController,
required this.hostController,
required this.serverController,
required this.portController,
required this.startedServerController})
: super(key: key);
class ServerPage extends StatelessWidget {
final WarningController _warningController = Get.put(WarningController());
final ServerController _serverController = Get.put(ServerController());
@override
State<ServerPage> createState() => _ServerPageState();
}
class _ServerPageState extends State<ServerPage> {
final StreamController _controller = StreamController.broadcast();
ServerPage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
StreamBuilder(
stream: _controller.stream,
builder: (context, snapshot) => HostInput(
controller: widget.hostController,
localController: widget.localController)),
StreamBuilder(
stream: _controller.stream,
builder: (context, snapshot) => PortInput(
controller: widget.portController,
localController: widget.localController)),
LocalServerSwitch(
controller: widget.localController,
onSelected: (_) => _controller.add(null)),
ServerButton(
localController: widget.localController,
portController: widget.portController,
hostController: widget.hostController,
serverController: widget.serverController,
startController: widget.startedServerController)
]);
return Obx(() => Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
if (_warningController.warning.value) const RestartWarning(),
HostInput(),
PortInput(),
LocalServerSwitch(),
ServerButton()
]));
}
}