●Platforms · React Native
React Native
A native React Native component — renders platform-appropriate inputs and collects device info automatically.
01
Install
terminal
npm install @issued/react-nativeNo extra native configuration required — the SDK uses React Native's built-in components.
02
Minimal embed
SupportScreen.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);
}}
/>
);
}03
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}.
04
Hooks
Prefer full control? Use the hooks directly to build your own UI:
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' });
/* ... */
}05
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.