{issued}

React Native

A native React Native component — renders platform-appropriate inputs and collects device info automatically.

Install

bash
npm install @issued/react-native

No extra native configuration required — the SDK uses React Native's built-in components.

Minimal embed

tsx
import { IssuedForm } from '@issued/react-native';
import { Alert } from 'react-native';

export function SupportScreen() {
  return (
    <IssuedForm
      projectId="your-project-id"
      fields={{
        subject:     { visible: true, required: true },
        description: { visible: true, required: true },
        email:       { visible: true, required: false }
      }}
      onSuccess={(response) => {
        Alert.alert('Submitted', 'Ticket: ' + response.ticketId);
      }}
      onError={(err) => {
        Alert.alert('Error', err.message);
      }}
    />
  );
}

Device info

The SDK attaches device metadata (OS, version, model) to every submission so you have debugging context without wiring it up yourself. Opt out with collectDeviceInfo={false}.

Hooks

Prefer full control? Use the hooks directly to build your own UI:

tsx
import { useIssuedSubmission } from '@issued/react-native';

function MyCustomForm() {
  const { submit, isSubmitting, error } = useIssuedSubmission({
    projectId: 'your-project-id',
  });

  const onPress = () =>
    submit({ subject: 'Crash', description: 'App crashed on checkout' });

  /* ... */
}

Gotchas

  • Your app's bundle ID must be in the project's allowlist. Update it in the project edit page under Bundle IDs.
  • The SDK talks to the Issued API directly — no extra networking permissions needed beyond standard internet access.
Next steps
Copy the React Native snippet with your project ID pre-filled.