Skip to content

fix: coordinate native tab toolbar handoffs and prevent Duo Search FAB flashes - #320

Merged
rdlabo merged 5 commits into
mainfrom
fix/tab-toolbar-handoff
Oct 23, 2026
Merged

rdlabo merged 5 commits into
mainfrom
fix/tab-toolbar-handoff

Conversation

@rdlabo

@rdlabo rdlabo commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

Native tab switches could leave the previous page’s toolbar over the destination while projection waited for layout or icon decoding. Retire outgoing page controls before forwarding tab activation to Ionic, while keeping shared tab controls native. The shared runtime handles horizontal and vertical toolbars, rapid selection, and rejected navigation without changing push/back identity matching.

On Duo, entering Library could briefly show the original Web Search FAB before its native replacement appeared. Hide the entering FAB until projection settles, and prevent stale acknowledgements from releasing it early. Retain Web source ownership while native Search remains visible on departure, while respecting search opt-outs and restoring Web fallback when native search is rejected.

Validation:

  • TypeScript, production demo, and iOS simulator builds passed.
  • 23 search/tab E2E cases passed on the final implementation, including per-frame checks for first entry and cached-page reentry, rejected search, explicit opt-outs, delayed acknowledgements, rapid tab selection, and horizontal/vertical handoffs.
  • Earlier toolbar validation passed 239 unit tests and 39 targeted navigation, modal, popover, and tab E2E cases.
  • Installed on Duo and checked a simulator recording: the original FAB no longer appears at the content’s lower-right corner during entry.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Playwright test results

passed  472 passed

Details

stats  472 tests across 24 suites
duration  4 minutes, 2 seconds
commit  3ced325
info  This detailed result covers Ionic 9 only. Ionic 8 runs against the same screenshots in a separate matrix job; check the workflow run for both results. To update the screenshots, comment with /update-screenshots.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

📊 Ionic 9 Playwright Test Report

View the detailed Ionic 9 report after GitHub Pages deployment completes: https://rdlabo-dev.github.io/ionic-theme-ios27/pr-320/

Ionic 8 runs against the same screenshots in a separate matrix job. View both results in the workflow run.

@rdlabo
rdlabo merged commit 1504df2 into main Oct 23, 2026
16 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

npm beta published

CI passed for the merge commit 1504df298a37. Install the immutable version with:

npm install @rdlabo/ionic-theme-ios27@2.0.1-beta.pr320.sha1504df298a37 @rdlabo/capacitor-native-ui@2.0.1-beta.pr320.sha1504df298a37

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant