build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Implementation

@override
Widget build(BuildContext context) {
  final controller = useMemoized(() => controllerProvider(text: text.value), [], (it) => it.dispose());

  final wrappedValue = useValueWrapper(text);
  useEffect(() {
    void listener() {
      if (controller.text != wrappedValue().value) text.value = controller.text;
    }

    controller.addListener(listener);
    return () {
      try {
        controller.removeListener(listener);
      } catch (_) {
        // ignore errors during dispose
      }
    };
  });

  useEffect(() {
    if (controller.text != text.value) controller.text = text.value;
    return null;
  }, [text.value]);

  return builder(controller);
}