{issued}

Flutter

A Dart package that presents a native Flutter form using your app's Material or Cupertino theme.

Install

In pubspec.yaml:

yaml
dependencies:
  issued_sdk: ^1.0.0

Then run flutter pub get.

Minimal embed

dart
import 'package:issued_sdk/issued_sdk.dart';

final config = WidgetConfig(
  projectId: 'your-project-id',
  fields: {
    'subject':     FieldConfig(visible: true, required: true),
    'description': FieldConfig(visible: true, required: true),
    'email':       FieldConfig(visible: true, required: false),
  },
);

await IssuedSDK.showForm(
  context: context,
  config: config,
  onSuccess: (result) {
    print('Submitted: ${result.ticketId}');
  },
  onError: (error) {
    print('Error: ${error.message}');
  },
);

Hidden metadata

dart
final fields = {
  'subject':     FieldConfig(visible: true, required: true),
  'description': FieldConfig(visible: true, required: true),
  'email':       FieldConfig(visible: false, value: user.email),
  'userId':      FieldConfig(visible: false, value: user.id),
  'platform':    FieldConfig(
    visible: false,
    value: Platform.operatingSystem,
  ),
};

Styling

dart
final theme = ThemeConfig(
  primaryColor: '#6366f1',
  backgroundColor: '#ffffff',
  textColor: '#1f2937',
  borderColor: '#d1d5db',
  buttonColor: '#6366f1',
  buttonTextColor: '#ffffff',
  errorColor: '#dc2626',
  borderRadius: 8.0,
  fontFamily: 'Roboto',
);

final config = WidgetConfig(
  projectId: 'your-project-id',
  fields: fields,
  theme: theme,
);

Gotchas

  • The context must come from within a MaterialApp / CupertinoApp subtree so theme resolution works.
  • Your iOS bundle ID and/or Android applicationId must be in the project allowlist.
Next steps
Copy the Flutter snippet with your project ID pre-filled.