dispose method

void dispose()

Disposes the resources associated with this element.

Implementation

void dispose() {
  // Call custom dispose callback if provided
  widget.dispose?.call(this);

  // Clean up controller if this element created it or has assignId
  switch ((_isCreator == true || widget.assignId, widget.autoRemove)) {
    case (true, true) when Get.isRegistered<T>(tag: widget.tag):
      Get.delete<T>(tag: widget.tag);
    case _:
    // No action needed
  }

  // Execute all registered disposers and clear the list
  for (final disposer in disposers) {
    disposer();
  }
  disposers.clear();

  // Clean up listener
  _remove?.call();

  // Reset all fields
  _controller = null;
  _isCreator = null;
  _remove = null;
  _filter = null;
  _needStart = null;
  _controllerBuilder = null;
}