commitCreation method

EditResult commitCreation(
  1. String connectorId, {
  2. bool requireBoundTarget = false,
})

Finishes a new connector gesture, restoring its baseline on rejection.

Implementation

EditResult commitCreation(
  String connectorId, {
  bool requireBoundTarget = false,
}) {
  final start = store.internals.interactionStart;
  if (start == null) throw StateError('No connection interaction is active.');
  if (diagramHasCanonicalId(start.document, connectorId)) {
    throw StateError('Element $connectorId already exists.');
  }
  final connector = store.state.document.elementById(connectorId);
  final decision = connector is ConnectorElement
      ? evaluateConnector(connector, requireBoundTarget: requireBoundTarget)
      : const EditResult.denied(
          code: DiagramDenialCode.unavailableTarget,
          reason: 'No connector preview exists.',
        );
  if (decision.allowed) {
    return store.internals.commitInteraction();
  } else {
    store.cancelInteraction();
  }
  return decision;
}