Skip to content

fix(example): serialize credential actions and keep availability state accurate - #809

Open
OskarEichler wants to merge 1 commit into
oblador:masterfrom
OskarEichler:codex/keychain-example
Open

fix(example): serialize credential actions and keep availability state accurate#809
OskarEichler wants to merge 1 commit into
oblador:masterfrom
OskarEichler:codex/keychain-example

Conversation

@OskarEichler

@OskarEichler OskarEichler commented Aug 28, 2026

Copy link
Copy Markdown

Fixes and observable changes

  • Wait for all initial capability/existence checks, preserve successful answers when another fails, and report errors.
  • Guard duplicate save/load/reset actions synchronously and show/announce pending state; prevent late initialization from overwriting a completed action.
  • Refresh existence indicators after successful saves and each completed reset stage. Treat a false save result as failure.
  • Avoid state updates and further reset stages after unmount; centralize operation error/finally handling.
  • Label inputs, expose disabled/busy button semantics, permit scrolling, use minimum 44-point input/action heights, and improve Save-label contrast.
  • Use Date.now() for operation timing.

This changes only the example, not the library API. Existing status text used by E2E assertions is retained.

Verification

  • Twelve actual-component checks use React/test-renderer with a native bridge double: both save types, both reset indicators, partial failure, false save, duplicate clicks, busy semantics, pending initialization, retry, unmount, partial initialization, and scrolling/target/contrast properties. All pass with this patch alone over 6be201b.
  • Example TypeScript check, lint, both Metro bundles, Android Debug builds (both architectures), and iOS Release build pass on the combined branch.
  • Existing iOS E2E suite: 9 pass, 18 Android-only skips. No test files/assertions were changed. The suite's internet-labelled loops actually remain on the generic tab; no broader coverage is claimed.
  • React Doctor reports 78/100: large component/related-state suggestions and a loading-state warning at the setter that starts an operation. The reset is in finally and the guarded retry is checked. No warning suppression or assistive-technology conformance claim.

Consumer integration

  • The combined runtime fixes are backported onto released 10.0.0 at immutable artifact dbd32b5, preserving its bridge/error-code and StrongBox policies. Example/tooling-only changes are not shipped in that runtime artifact.
  • On RN 0.87.1, immutable install, lint, both Android Debug products, both unsigned iOS Simulator Debug products, all four production Metro bundles, 13 web targets and four browser extensions pass. All installed package files were verified against the artifact. These are combined-backport integration results, not independent device validation of this PR.

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