React Native
A native React Native component — renders platform-appropriate inputs and collects device info automatically.
Install
bash
npm install @issued/react-nativeNo 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.