import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:manager_app/Components/multi_string_input_container.dart'; import 'package:manager_app/Components/resource_input_container.dart'; import 'package:manager_api_new/api.dart'; import 'package:manager_app/Components/single_select_container.dart'; import 'dart:convert'; import 'package:manager_app/constants.dart'; class AgendaConfig extends StatefulWidget { final String? color; final String? label; final String initialValue; final ValueChanged onChanged; const AgendaConfig({ Key? key, this.color, this.label, required this.initialValue, required this.onChanged, }) : super(key: key); @override _AgendaConfigState createState() => _AgendaConfigState(); } class _AgendaConfigState extends State { late AgendaDTO agendaDTO; @override void initState() { AgendaDTO test = AgendaDTO.fromJson(json.decode(widget.initialValue))!; agendaDTO = test; super.initState(); } @override Widget build(BuildContext context) { Size size = MediaQuery.of(context).size; var mapProviderIn = ""; switch(agendaDTO.mapProvider) { case MapProvider.Google : mapProviderIn = "Google"; break; case MapProvider.MapBox : mapProviderIn = "MapBox"; break; default: mapProviderIn = "Google"; break; } return SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(8.0), child: Container( height: size.height * 0.3, child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ SingleSelectContainer( label: "Service carte :", color: Colors.black, initialValue: mapProviderIn, inputValues: map_providers, onChanged: (String value) { switch(value) { case "Google": agendaDTO.mapProvider = MapProvider.Google; break; case "MapBox": agendaDTO.mapProvider = MapProvider.MapBox; break; } widget.onChanged(jsonEncode(agendaDTO).toString()); } ), MultiStringInputContainer( label: "Fichiers json :", resourceTypes: [ResourceType.Json, ResourceType.JsonUrl], modalLabel: "JSON", color: kPrimaryColor, initialValue: agendaDTO.resourceIds!, isTitle: false, onGetResult: (value) { setState(() { if (agendaDTO.resourceIds != value) { agendaDTO.resourceIds = value; //save(true, articleDTO, appContext); widget.onChanged(jsonEncode(agendaDTO).toString()); } }); }, maxLines: 1, ), ], ), ), ), ); /*return ResourceInputContainer( label: "Fichier JSON :", initialValue: agendaDTO.resourceId == null ? '': agendaDTO.resourceId, inResourceTypes: [ResourceType.Json, ResourceType.JsonUrl], onChanged: (ResourceDTO resourceDTO) { agendaDTO.resourceUrl = resourceDTO.url; agendaDTO.resourceId = resourceDTO.id; widget.onChanged(jsonEncode(agendaDTO).toString()); } );*/ } }