Repository navigation
docs(WL-573): update document about using library, theme, and dynamic strings - #32
Merged
Merged
Conversation
DanielAraldi
enabled auto-merge (squash)
October 5, 2026 12:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 Summary
This PR reviews and updates the library documentation (
README.md,docs/THEME.md, anddocs/DYNAMIC_STRINGS.md) so other developers can learn how to use@azify/aziface-mobilefrom the examples alone.Several examples didn't compile, called the API incorrectly, or hid important runtime behavior. For example, a failed or cancelled session resolves with
isSuccess: falseinstead of throwing, but the examples only usedtry/catch. Every example now matches the current public API insrc/index.tsxand the behavior of the native modules (Android/iOS).Only documentation is changed. There are no changes to library code.
✅ Checklist
📱 React Native
setTheme,setLocale,setDynamicStrings) →initialize→ start a flow.initialize+enrollthat checksisSuccessanderror.code(Errors).initializerejects and when it resolvesfalse. It also shows what flows resolve on success and on failure or cancellation.Headers,Content-Type,X-Device-Key, andX-Testing-API-HeaderwhenisDevelopmentistrue).StyleSheetimport, undefinedfontSize,processor = falseassigned to aProcessor | nulltype). The new example is typed and smaller. It uses a flow map, disables buttons while a session runs, and switches locales in order instead of at random.initialize: the example now shows both the rejected case and thefalseresult.enroll,authenticate,liveness,photoMatch, andphotoScantables, thedatatype changed fromanytoobject(matching the real signature). Also documented thatdatais sent in the request body.authenticate: documented that it requires a successfulenroll/photoMatchearlier in the same app session (otherwise it returnsNotAuthenticated). Runninglivenessor cancelling a session clears that reference.setLocale: fixed the description, which said it returns status/error information. It returnsvoid.vocal: explained that it toggles vocal guidance on and off. Fixed the Vocal Guidance example:awaitwas used in a non-asyncfunction,headerswas missing ininitialize, and theFaceViewimport was missing.ParamsandHeaders: added descriptions to the tables.FaceView: added a usage example. Renamed the misleading "Returns" column to "Parameter" and fixed the callback count (six, not five).#azifacesdkparams→#params,#azifacesdkheaders→#headers) and added the new Usage subsections.initialize, which shadowed the imported function and caused infinite recursion. Renamed it tosetup(). These examples also calledinitializewithoutheadersand said to callsetThemeafterinitialize.cancelLocation/cancelPositionbelong insideimage, not at the root of the theme. The iOS example also used theandroidkey instead ofios.guidance.headerFont/guidance.subtextFont, which don't exist inThemeGuidance, with the globalfontFamily.android/app/src/main/res/drawableandandroid/app/src/main/assets/fonts.Themetable: added the missinginitialLoadingAnimation,orientationScreen, andocrConfirmationrows.TOP_LEFTdescription said "top right", and the intro saidinitializedinstead ofinitialize. The Usage example now includes imports and fullinitializearguments.DynamicStringsRetryentry to the summary and movedDynamicStringsRetryOfficialIdPhotounder it.DynamicStringsResultUpload→DynamicStringsResultIdScanUpload.setLocale.🤖 Android
--
🍎 iOS
--
🧪 Testing Notes
Every full TSX example (
export default function App/startEnrollment) inREADME.md,docs/THEME.md, anddocs/DYNAMIC_STRINGS.mdwas extracted and type-checked withtsc, using the projecttsconfig.jsonandsrc/index.tsx. No errors.Documented runtime behavior (rejects vs. resolves, concurrent sessions,
authenticateprerequisites, request headers) was checked againstandroid/.../AzifaceMobileModule.java,android/.../Config.java,ios/Aziface.swift, andios/Config.swift.Formatted with Prettier.
Tested on Android (device/emulator)
Tested on iOS (simulator/device)
Automated tests added/updated
QA passed
🔗 Related Issues / Tickets
Link any related Jira tickets, GitHub issues, or Trello cards:
📸 Evidence (Optional)
Attach any visual evidence of the changes (e.g., screenshots, GIFs, videos, or external links):
authenticateprerequisites) describe the current native behavior. They don't change it. If any of these behaviors is unintended (for example, a promise that never settles while a session is running), it should be handled in a separate PR.Config.getRequest()force-casts header values (as! String). Anullheader value may crash, even though theHeaderstype allowsnull. That's why the docs don't describe what happens tonullheaders. This should be checked separately.