@digitalshieldfe/airgap-qr-ui
v0.1.3
Published
React Native QR UI for air-gap account export and sign request/signature display
Readme
@digitalshieldfe/airgap-qr-ui
React Native QR components for air-gap account export and sign request / signature display.
Peer dependency: @digitalshieldfe/airgap-cold (for AirGapExportQr only).
Install
yarn add @digitalshieldfe/airgap-qr-ui @digitalshieldfe/airgap-cold
# also: react-native-qrcode-svg, react-native-svgBuild the monorepo (yarn build) so dist/ is available.
Components
| Component | Role |
|-----------|------|
| AirGapAnimatedQr | Low-level animated UR frame carousel |
| AirGapExportQr | Cold: load export frames from AirGapColdSdk (crypto-multi-accounts / crypto-hdkey) |
| AirGapSignRequestQr | Hot: show sign-request or DeviceCall frames |
| AirGapSignatureQr | Cold: show signature frames after cold.signRequest |
Export (cold)
import { AirGapExportQr } from "@digitalshieldfe/airgap-qr-ui";
<AirGapExportQr
type="crypto-multi-accounts"
cold={coldSdk}
deviceId={deviceId}
version="1.0.0"
onError={(e) => {
if (isAirGapError(e)) mapError(e.code);
else showToast(e.message);
}}
/>Sign request / signature shells
import { AirGapSignRequestQr, AirGapSignatureQr } from "@digitalshieldfe/airgap-qr-ui";
<AirGapSignRequestQr
frames={pending.frames}
title={t("airgap.sign_request_title")}
hint={t("airgap.scan_cold")}
emptyText={t("airgap.no_qr")}
/>
<AirGapSignatureQr frames={signed.frames} title={t("airgap.signed")} />- Pass
framesfrom hot/cold SDK encode results. - Do not pass
coldinto sign-request components (signing stays in app logic).
i18n props
Default copy is English. Override with props (not Error codes):
| Prop | AirGapSignRequestQr default | AirGapSignatureQr default |
|------|------------------------------|----------------------------|
| title | Sign request | Signed |
| hint | Scan with your cold wallet | Scan with your hot wallet to continue |
| emptyText | No QR data yet | No QR data yet |
AirGapExportQr surfaces load failures via onError — use isAirGapError from @digitalshieldfe/airgap-core for stable codes.
Protocol constants (deviceName, UR origin, account notes) are not UI strings; set them when constructing AirGapColdSdk / hot encode options.
See root README §9 / §12.4.
