getSuffix method

Widget? getSuffix(
  1. BlocXTextFieldOptions options
)

Returns the suffix widget for the field.

Priority order:

  1. Progress indicator while isCheckingUniqueField is true.
  2. Explicit BlocXTextFieldOptions.suffix if set.
  3. Clear button when BlocXTextFieldOptions.showClearButton is true.

Implementation

Widget? getSuffix(BlocXTextFieldOptions options) {
  if (isCheckingUniqueField) {
    return SizedBox.square(
      dimension: 8,
      child: CircularProgressIndicator(
        color: colorScheme.primary,
        padding: const EdgeInsets.all(8),
      ),
    );
  }

  if (options.suffix != null) return options.suffix;

  final canShowClear = options.showClearButton && !options.obscureText && _controller.text.isNotEmpty;

  if (!canShowClear) return null;

  return 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(() {});
          },
  );
}