ensureListDetailNavigation method

void ensureListDetailNavigation({
  1. required String page,
  2. required BrownfieldPatternTarget item,
  3. required Object targetPage,
  4. required Map<String, Object?> params,
  5. FFActionTriggerType triggerType = FFActionTriggerType.ON_TAP,
})

Adds list-item navigation to an existing repeated item widget.

The selected item must already exist in the current page snapshot.

Implementation

void ensureListDetailNavigation({
  required String page,
  required BrownfieldPatternTarget item,
  required Object targetPage,
  required Map<String, Object?> params,
  FFActionTriggerType triggerType = FFActionTriggerType.ON_TAP,
}) {
  raw((project) {
    final pageName = _patternPageName(targetPage);
    _requireExistingPage(
      project,
      pageName,
      operation: 'ensureListDetailNavigation',
    );

    final editor = _pagePatternEditor(page);
    final pageSnapshot = _requirePagePatternSnapshot(project, page);
    final itemRef = _resolvePatternTarget(
      pageSnapshot,
      editor,
      item,
      operation: 'ensureListDetailNavigation(item: ...)',
    );

    editor.ensureActions(
      _selectionForResolvedTarget(editor, itemRef),
      triggerType: triggerType,
      actions: [Navigate(targetPage, params: params)],
    );
    _applyBrownfieldWidgetClassEdit(project, editor);
  });
}