getSuffix method

Widget? getSuffix(
  1. BlocXTextFieldOptions o
)

Returns the suffix widget.

Priority order:

  1. Spinning progress indicator while isCheckingUniqueField is true.
  2. Explicit BlocXTextFieldOptions.suffix if set.
  3. Clear button if BlocXTextFieldOptions.showClearButton is true and the field has text.

Implementation

Widget? getSuffix(BlocXTextFieldOptions o) {
  if (isCheckingUniqueField) {
    return SizedBox.square(
      dimension: 8,
      child: CircularProgressIndicator(color: colorScheme.primary, padding: EdgeInsets.all(8)),
    );
  }
  if (o.suffix != null) return o.suffix;

  final bool canShowClear = o.showClearButton && _controller.text.isNotEmpty;
  return canShowClear
      ? IconButton(
          visualDensity: VisualDensity.compact,
          tooltip: MaterialLocalizations.of(context).deleteButtonTooltip,
          icon: const Icon(Icons.clear),
          onPressed: _controller.text.isEmpty
              ? null
              : () {
                  _controller.clear();
                  bloc.add(BlocxFormEventUpdateData(data: '', key: widget.formKey));
                  setState(() {});
                },
        )
      : null;
}