close method

Future<void> close(
  1. BuildContext context
)

Collapses or closes the active detail view, checking onWillCollapse if provided.

Implementation

Future<void> close(BuildContext context) async {
  if (onWillCollapse != null) {
    final allowed = await onWillCollapse!(controller.value.activeKey);
    if (!allowed) return;
  }

  if (!context.mounted) return;

  if (controller.value.isCreatingItem) {
    controller.cancelCreateItem();
  } else if (controller.value.isEditingItem) {
    controller.cancelEditItem();
  } else {
    controller.collapseAll();
  }

  if (expansionMode == TTableExpansionMode.dialog || expansionMode == TTableExpansionMode.page) {
    final useRoot = expansionMode == TTableExpansionMode.dialog;
    Navigator.of(context, rootNavigator: useRoot).maybePop();
  }
}