multiSelectChipfieldFormEntry method

Widget multiSelectChipfieldFormEntry({
  1. String title = 'Chipfield',
  2. String subTitle = '',
  3. required void onChanged(
    1. List<String>
    ),
  4. required List<String> items,
  5. String? validator(
    1. List<String>?
    )?,
  6. List<String>? defaultValues,
})

Implementation

Widget multiSelectChipfieldFormEntry({
  String title = 'Chipfield',
  String subTitle = '',
  required void Function(List<String>) onChanged,
  required List<String> items,
  String? Function(List<String>?)? validator,
  List<String>? defaultValues,
}) => formEntry(
  title: title,
  subTitle: subTitle,
  inputWidget: MultiSelectDialogField<String>(
    validator: validator,
    items: items.map((item) => MultiSelectItem<String>(item, item)).toList(),
    // title: Text("Animals"),
    selectedColor: primaryCardColor,
    separateSelectedItems: true,
    selectedItemsTextStyle: subHeadingDark,
    itemsTextStyle: subHeadingDark,
    searchTextStyle: subHeadingDark,
    decoration: BoxDecoration(
      borderRadius: primaryBorderRadius,
      border: Border.all(color: primaryGray, width: 0.6),
    ),
    searchable: true,
    confirmText: Text('Select', style: Theme.of(context).textTheme.bodyLarge),
    cancelText: Text('Cancel', style: Theme.of(context).textTheme.bodyLarge),
    dialogWidth: 800 * scalingFactor,
    chipDisplay: MultiSelectChipDisplay(
      items: items
          .map((item) => MultiSelectItem<String>(item, item))
          .toList(),
      chipColor: primaryCardColor,
      textStyle: subHeadingDark,
      shape: RoundedRectangleBorder(
        borderRadius: primaryBorderRadius,
        side: const BorderSide(color: primaryGray, width: 0.6),
      ),
    ),
    listType: MultiSelectListType.CHIP,
    buttonIcon: const Icon(Icons.list),
    buttonText: Text("Select", style: Theme.of(context).textTheme.bodyLarge),
    onConfirm: onChanged,
    initialValue: defaultValues ?? [],
  ),
);