QueueClient/lib/service_info.dart
2023-08-08 08:28:56 +05:30

66 lines
2.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:queue_client/backend/DataManager.dart';
import 'package:queue_client/backend/DebugHelper.dart';
import 'package:queue_client/home.dart';
class ServiceInfoPage extends StatefulWidget {
ServiceInfoPage({Key? key,required this.id, required this.tokenId}) : super(key: key);
int id;
int tokenId;
@override
State<ServiceInfoPage> createState() => _ServiceInfoPageState();
}
class _ServiceInfoPageState extends State<ServiceInfoPage> {
@override
Widget build(BuildContext context) {
Map<String,dynamic> service = DataManager.instance().GetServiceFromID(widget.id);
int hours = int.parse(service['duration'].toString().split(":")[0]);
int mins = int.parse(service['duration'].toString().split(":")[1]);
DateTime eta = DateTime.parse(service['start_time']).add(Duration(hours: hours, minutes: mins) * widget.tokenId);
Debug.Log(service);
return Scaffold(
appBar: AppBar(title: Text(service['name']),),
body: Container(
padding: EdgeInsets.all(20),
child: Column(
children: [
Row(children: [
Text("Starting Time : "),
Text(dateTimeFormat.format(DateTime.parse(service['start_time'])))
],),
Row(children: [
Text("Ending Time : "),
Text(dateTimeFormat.format(DateTime.parse(service['end_time'])))
],),
Row(children: [
Text("Session Duration : "),
Text(service['duration'])
],),
Row(children: [
Text("Participants : "),
Text((service['members'].toString().split(',').length-1).toString()),
],),
SizedBox(height: 20,),
widget.tokenId > 0 ?Column(
children: [
Text("Already Joined"),
SizedBox(height: 20,),
Text("Token Id : ${widget.tokenId}"),
Text("ETA : ${dateTimeFormat.format(eta)}")
],
) :ElevatedButton(onPressed: () async{
await DataManager.instance().JoinService(widget.id);
setState(() {
});
Navigator.of(context).pop();
}, child: Text("Join"))
],
),
),
);
}
}