Add languages multi select dialog

This commit is contained in:
Fransolet Thomas 2022-09-13 18:54:07 +02:00
parent 85db23ee76
commit 5b0f9cc954
5 changed files with 101 additions and 2 deletions

View File

@ -0,0 +1,78 @@
import 'package:flutter/material.dart';
import 'package:manager_app/constants.dart';
import 'package:multi_select_flutter/chip_display/multi_select_chip_display.dart';
import 'package:multi_select_flutter/dialog/multi_select_dialog_field.dart';
import 'package:multi_select_flutter/util/multi_select_item.dart';
import 'package:multi_select_flutter/util/multi_select_list_type.dart';
import 'message_notification.dart';
class MultiSelectDropdownContainer extends StatelessWidget {
final Color color;
final String label;
final List<String> values;
final List<String> initialValue;
final bool isMultiple;
final bool isAtLeastOne;
final ValueChanged<List<dynamic>> onChanged;
const MultiSelectDropdownContainer({
Key key,
this.color = kSecond,
this.label,
this.values,
this.initialValue,
this.isMultiple,
this.isAtLeastOne = false,
this.onChanged,
}) : super(key: key);
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
return Container(
child: Row(
children: [
Align(
alignment: AlignmentDirectional.centerStart,
child: Text(label, style: TextStyle(fontSize: 25, fontWeight: FontWeight.w300))
),
Padding(
padding: const EdgeInsets.all(10.0),
child: Container(
width: size.width *0.2,
child: MultiSelectDialogField(
items: values.map((e) => MultiSelectItem(e, e)).toList(),
listType: MultiSelectListType.LIST,
cancelText: Text("Annuler"),
initialValue: initialValue,
buttonText: Text("Sélectionner"),
checkColor: Colors.white,
searchable: true,
chipDisplay: MultiSelectChipDisplay.none(),
selectedColor: kPrimaryColor,
title: Text("Veuillez sélectionner une langue"),
dialogHeight: size.height *0.4,
dialogWidth: size.width *0.2,
onConfirm: (values) {
print("do something");
//_selectedAnimals = values;
},
onSelectionChanged: (selectedList) {
onChanged(selectedList);
},
),/*MultiSelectDropdown(
values,
initialValue,
isMultiple,
isAtLeastOne,
onSelectionChanged: (selectedList) {
onChanged(selectedList);
},
)*/
),
),
],
),
);
}
}

View File

@ -11,6 +11,7 @@ import 'package:manager_app/Components/confirmation_dialog.dart';
import 'package:manager_app/Components/loading_common.dart';
import 'package:manager_app/Components/message_notification.dart';
import 'package:manager_app/Components/multi_select_container.dart';
import 'package:manager_app/Components/multi_select_dropdown_container.dart';
import 'package:manager_app/Components/rounded_button.dart';
import 'package:manager_app/Components/string_input_container.dart';
import 'package:manager_app/Helpers/FileHelper.dart';
@ -168,7 +169,7 @@ class _ConfigurationDetailScreenState extends State<ConfigurationDetailScreen> {
configurationDTO.label = value;
},
),
MultiSelectContainer(
MultiSelectDropdownContainer(
label: "Langues :",
initialValue: configurationDTO.languages != null ? configurationDTO.languages: [],
values: languages,
@ -180,6 +181,18 @@ class _ConfigurationDetailScreenState extends State<ConfigurationDetailScreen> {
//print(configurationDTO.languages);
},
),
/*MultiSelectContainer(
label: "Langues :",
initialValue: configurationDTO.languages != null ? configurationDTO.languages: [],
values: languages,
isMultiple: true,
isAtLeastOne: true,
onChanged: (value) {
var tempOutput = new List<String>.from(value);
configurationDTO.languages = tempOutput;
//print(configurationDTO.languages);
},
),*/
CheckInputContainer(
icon: Icons.signal_wifi_off,
label: "Hors ligne :",

View File

@ -15,7 +15,7 @@ const kSuccess = Color(0xFF8bc34a);
const List<String> section_types = ["Map", "Slider", "Video", "Web", "Menu", "Quizz", "Article"];
const List<String> map_types = ["none", "normal", "satellite", "terrain", "hybrid"];
const List<String> languages = ["FR", "NL", "EN", "DE"];
const List<String> languages = ["FR", "NL", "EN", "DE", "IT", "ES", "CN", "PL"];
const List<String> resource_types = ["image", "image url"]; // "video url" , "video",
/*

View File

@ -254,6 +254,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
multi_select_flutter:
dependency: "direct main"
description:
name: multi_select_flutter
url: "https://pub.dartlang.org"
source: hosted
version: "4.1.2"
multiselect_formfield:
dependency: "direct main"
description:

View File

@ -42,6 +42,7 @@ dependencies:
encrypt: ^5.0.0
qr_flutter: ^4.0.0
pdf: ^3.6.0
multi_select_flutter: ^4.1.2
#msix: ^2.1.3
#window_size:
# git: