import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:queue_mgr/backend/DataManager.dart'; import 'package:queue_mgr/new_service.dart'; import 'package:queue_mgr/service_info.dart'; import 'backend/DebugHelper.dart'; void main() { DataManager.instance().GetData(); runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple, brightness: Brightness.dark), useMaterial3: true, ), home: const Home(), ); } } class Home extends StatefulWidget { const Home({Key? key}) : super(key: key); @override State createState() => _HomeState(); } class _HomeState extends State { @override void initState() { // TODO: implement initState super.initState(); refresh(); } void refresh()async{ await DataManager.instance().GetData(); setState(() { }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("Queue Management - Admin"),), body: Container( padding: EdgeInsets.all(20), child: Column( children: [ ListView.builder( physics: NeverScrollableScrollPhysics(), shrinkWrap: true, itemCount:DataManager.instance().services.length, itemBuilder: (context,index){ Map service = jsonDecode(DataManager.instance().services[index]); return InkWell( onTap: (){ Navigator.of(context).push(MaterialPageRoute(builder: (context)=> ServicePage(serviceId: service['id']))); }, child: Card( child: Center( child: Container( padding: EdgeInsets.all(10), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text(service['start_time']), Text(service['name']), Container(decoration: BoxDecoration(borderRadius: BorderRadius.circular(50),color: Colors.deepPurple), child: SizedBox(width:20,height: 20,child: Center(child: Text(service['members'].toString().split(',').length.toString()))),) ], ), ), ), ), ); } ), SizedBox(height: 50,), InkWell( onTap: (){ Navigator.of(context).push(MaterialPageRoute(builder: (context)=> NewService())); }, child: Card( child: Container( padding: EdgeInsets.all(10), child: Row( mainAxisAlignment: MainAxisAlignment.center,children: [ Icon(Icons.add), Text("New Service") ],), ), ), ) ], ), ), ); } }