import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:manager_api/api.dart'; import 'package:mymuseum_visitapp/Components/CustomAppBar.dart'; import 'package:mymuseum_visitapp/Components/ScannerBouton.dart'; import 'package:mymuseum_visitapp/Components/ScannerDialog.dart'; import 'package:mymuseum_visitapp/Screens/Scanner/scanner.dart'; import 'package:mymuseum_visitapp/Screens/Visit/visit.dart'; import 'package:mymuseum_visitapp/client.dart'; import 'package:mymuseum_visitapp/constants.dart'; class HomePage extends StatefulWidget { const HomePage({Key? key}) : super(key: key); @override State createState() => _HomePageState(); } class _HomePageState extends State { List configurations = [ConfigurationDTO(label: "Test 0", isOffline: false), ConfigurationDTO(label: "Test 1", isOffline: true), ConfigurationDTO(label: "Test 2", isOffline: true)]; @override Widget build(BuildContext context) { Size size = MediaQuery.of(context).size; return Scaffold( appBar: CustomAppBar( title: "Home page - liste parcours", isHomeButton: false, ), body: SingleChildScrollView( child: Container( width: size.width, height: size.height, child: GridView.builder( shrinkWrap: true, gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 1), itemCount: configurations.length, itemBuilder: (BuildContext context, int index) { return InkWell( onTap: () { setState(() { //sectionSelected = snapshot.data[index]; print("config selected"); getConfiguration(); Navigator.of(context).pushReplacement(MaterialPageRoute( builder: (context) => const VisitPage(configurationId: "TODO"), )); }); }, child: Container( decoration: boxDecoration(configurations[index], false), padding: const EdgeInsets.all(25), margin: const EdgeInsets.symmetric(vertical: 25, horizontal: 25), child: Align( alignment: Alignment.bottomRight, child: FractionallySizedBox( heightFactor: 0.4, child: Column( children: [ Align( alignment: Alignment.centerRight, child: AutoSizeText( configurations[index].label!, style: const TextStyle(fontSize: kMenuTitleDetailSize), maxLines: 1, ), ), Align( alignment: Alignment.centerRight, child: AutoSizeText( configurations[index].isOffline.toString(), style: const TextStyle(fontSize: kMenuDescriptionDetailSize, fontFamily: ""), maxLines: 1, ), ), ], ) ), ), ), ); } ), ), ), floatingActionButton: const ScannerBouton(isReplacement: false), //floatingActionButtonLocation: FloatingActionButtonLocation.miniCenterFloat, /*bottomNavigationBar: BottomNavigationBar( items: const [ BottomNavigationBarItem( icon: Icon(Icons.home), label: 'Home', ), BottomNavigationBarItem( icon: Icon(Icons.qr_code_scanner), label: 'Scanner', ), ], selectedItemColor: kMainRed, onTap: _onItemTapped, ),*/ ); } Future?> getConfiguration() async { try { var client = new Client("http://192.168.31.140:8089"); List? configurations = await client.configurationApi!.configurationGet(); print(configurations); return configurations; } catch (e) { print(e); print("IN CATCH"); } } } boxDecoration(ConfigurationDTO configuration, bool isSelected) { // TODO to change return BoxDecoration( color: Colors.cyan, shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(30.0), boxShadow: const [ BoxShadow( color: kBackgroundSecondGrey, spreadRadius: 0.5, blurRadius: 5, offset: Offset(0, 1.5), // changes position of shadow ), ], ); }