Skip to main content
@clariodesk/react-native/ui is a pure-JS prebuilt chat. It presents its own screens in a self-owned modal (no react-navigation), derives light/dark from your theme, and ships zero native dependencies beyond the core.

Wrap your app

import { ClarioDeskProvider } from '@clariodesk/react-native/ui';

<ClarioDeskProvider theme={{ primary: brand.accent, cornerRadius: 18, mode: 'system' }}>
  <App />
</ClarioDeskProvider>;

Open from anywhere

import { openInbox, openTicket, openNewConversation, openBugReport } from '@clariodesk/react-native/ui';

openInbox();              // the user's tickets
openTicket(id);           // a single thread
openNewConversation();    // new ticket form
openBugReport();          // bug report form

Theming

The provider takes a small theme and derives light/dark automatically. It also exposes ~50 overridable strings for localization and copy tweaks.
<ClarioDeskProvider
  theme={{ primary: '#D4FF00', cornerRadius: 18, mode: 'system' }}
  strings={{ inboxTitle: 'Support', newConversationCta: 'New conversation' }}
>
  <App />
</ClarioDeskProvider>
Theme fieldNotes
primaryAccent for buttons, links, the active state.
cornerRadiusBubble / card radius.
mode'light', 'dark', or 'system'.

Enabling attachments

The attach button is off until you give the provider a picker:
import { ClarioDeskProvider } from '@clariodesk/react-native/ui';
import { expoPicker } from '@clariodesk/react-native/expo'; // or your own MediaPicker

<ClarioDeskProvider theme={...} picker={expoPicker}>
  <App />
</ClarioDeskProvider>
See Attachments for limits and the upload flow.