v2.1.4

by ReadMe GitHub Action

Added

  • Custom loading indicator. Pass onLoad (web) or onLoadEnd (React Native) through the existing iframeProps / webViewProps escape hatches to render your own loader. The SDK's built-in overlay is suppressed automatically whenever you provide one. See React Web SDK and React Native SDK.

    // React Web
    <WidgetSDK
      accessToken={token}
      iframeProps={{ onLoad: () => setIsLoading(false) }}
    />
    
    // React Native
    <WidgetSDK
      accessToken={token}
      webViewProps={{ onLoadEnd: () => setIsLoading(false) }}
    />

Fixed

  • reload() "Missing Access Token" (React Native). Calling the imperative reload() handle would re-load the post-validation URL (the widget strips the token from the URL after first auth), surfacing a spurious Missing Access Token error. reload() now re-navigates the WebView to the full widget URL with token attached.

v2.1.3

by ReadMe GitHub Action

Added

  • Styling escape hatches on both SDKs. Both @oobit/react-web and @oobit/react-native-sdk now accept a style prop on the outer container. The web SDK also accepts className.

  • iframeProps (web) and webViewProps (React Native) — forward extra props to the underlying iframe/WebView. SDK-managed props (src/source, ref, onMessage/onLoad, sandbox, allow, navigation handlers) are blocked at the type level so you can't accidentally break the transport layer.

    // React Web
    <WidgetSDK
      accessToken={token}
      style={{ borderRadius: 12, overflow: "hidden" }}
      iframeProps={{ scrolling: "no" }}
    />
    
    // React Native
    <WidgetSDK
      accessToken={token}
      style={{ backgroundColor: "#fff" }}
      webViewProps={{
        showsVerticalScrollIndicator: false,
        showsHorizontalScrollIndicator: false,
      }}
    />

Fixed

  • iPhone Dynamic Island overlap (React Native). The WebView now sets contentInsetAdjustmentBehavior="never" and automaticallyAdjustContentInsets={false} so the widget's env(safe-area-inset-top) reports the real safe area and the title clears the Dynamic Island.
  • React Native 0.85 compatibility. Replaced the removed StyleSheet.absoluteFillObject with StyleSheet.absoluteFill in the loading overlay.

Versions

  • React Web SDK bumped to 1.3.3.
  • React Native SDK bumped to 3.3.3.

v2.1.2

by ReadMe GitHub Action

Fixed

  • Widget back/close buttons now appear correctly — the SDK signals to the widget whether the host app has registered an onClose handler. If onClose is not provided, the widget's back and close buttons are hidden (since there is no handler to invoke). Make sure to pass onClose if you want users to be able to dismiss the widget from within it.
  • React Native SDK bumped to 3.3.2.
  • React Web SDK bumped to 1.3.2.

v2.1.1

by ReadMe GitHub Action

Fixed

  • TypeScript types are now visible to consumers. Previously the published SDK packages re-exported WidgetSDKConfig, StandaloneConfig, TransactionRequest, and related types from an internal @oobit/core package that wasn't published to npm — TypeScript users either saw Cannot find module '@oobit/core' (under strict configs) or silently got any (with skipLibCheck). All shared type definitions are now bundled into each package's published dist/index.d.ts, so autocomplete, type-checking, and the optional email? / (email: string) => void callback signature introduced in v2.1.0 work out of the box.
  • React Native SDK bumped to 3.3.1.
  • React Web SDK bumped to 1.3.1.

v2.1.0

by ReadMe GitHub Action

Changed

  • Standalone Flow email is now optional — if you don't pass email to the SDK, the user enters and verifies it inside the widget's onboarding flow. See API-Managed Deposits.
  • onDepositRequested now receives the user's email — signature changed from () => void to (email: string) => void. The widget forwards the user's verified email so your backend can identify them when calling the Partner API. Existing () => { ... } callbacks remain valid (the new argument can be ignored).
  • React Native SDK bumped to 3.3.0.
  • React Web SDK bumped to 1.3.0.

v2.0.0

by ReadMe GitHub Action

Added

  • API-Managed Deposits — new integration mode where your app owns the deposit UI and fetches addresses via the Partner API. See API-Managed Deposits.
  • Partner APIPOST /access-token and GET /users/:id/status endpoints. See API Reference.
  • MCP Server at https://docs.oobit.com/mcp for AI dev tools. See MCP.
  • Testnet resources page for sandbox integration.

Changed

  • React Native SDK bumped to 3.1.0 — single WidgetSDK component supports both widget-managed and API-managed flows.
  • Deposit Flow guide split into Widget-Managed and API-Managed modes.

Removed

  • types, supported-currencies, and standalone SDK component pages — merged into the Getting Started guides.