plaid_universal 0.1.0+1 copy "plaid_universal: ^0.1.0+1" to clipboard
plaid_universal: ^0.1.0+1 copied to clipboard

Plaid Link for Flutter platform supporting iOS, Android, MacOS, Linux, Windows and Web by maxint.com

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:plaid_universal/plaid_universal.dart';

void main() {
  runApp(MaterialApp(title: "Plaid Universal Example", home: const MyApp()));
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late final TextEditingController _linkTokenController;

  @override
  void initState() {
    super.initState();
    _linkTokenController = TextEditingController();
  }

  @override
  void dispose() {
    _linkTokenController.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Plaid Universal Example')),
      body: Align(
        alignment: Alignment.center,
        child: Container(
          constraints: BoxConstraints(maxWidth: 600),
          padding: const EdgeInsets.all(8.0),
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: [
              Center(child: Text('Welcome to the Plaid Universal Example!')),
              TextField(
                controller: _linkTokenController,
                decoration: const InputDecoration(
                  labelText: 'Enter Public Token',
                  border: OutlineInputBorder(),
                ),
              ),
              const SizedBox(height: 16),
              ElevatedButton(
                onPressed: () {
                  final linkToken = _linkTokenController.text;
                  if (linkToken.isNotEmpty) {
                    Navigator.push(
                      context,
                      MaterialPageRoute(
                        builder:
                            (context) => PlaidLinkPage(linkToken: linkToken),
                      ),
                    );
                  } else {
                    ScaffoldMessenger.of(context).showSnackBar(
                      const SnackBar(
                        content: Text('Please enter a valid public token'),
                      ),
                    );
                  }
                },
                child: const Text('Open Plaid Link'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class PlaidLinkPage extends StatelessWidget {
  final String linkToken;
  const PlaidLinkPage({super.key, required this.linkToken});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Plaid Link')),
      body: PlaidUniversal(
        config: LinkTokenConfiguration(token: linkToken),
        onEnrollment: (publicToken, metadata) {
          ScaffoldMessenger.of(context).showSnackBar(
            SnackBar(content: Text('Enrollment successful: $publicToken')),
          );
          debugPrint('Enrollment successful: $publicToken');
          debugPrint('Metadata: ${metadata.description()}');
          Navigator.pop(context, publicToken);
        },
        onEvent: (value) {
          debugPrint('Event received: ${value.name}');
          debugPrint('Event Metadata: ${value.metadata.description()}');
        },
        onExit: (exitMetadata) {
          debugPrint('Link exited: ${exitMetadata.error?.description()}');
          debugPrint('Exit Metadata: ${exitMetadata.metadata.description()}');
          Navigator.pop(context);
        },
      ),
    );
  }
}
3
likes
150
points
0
downloads

Publisher

verified publishermaxint.com

Weekly Downloads

Plaid Link for Flutter platform supporting iOS, Android, MacOS, Linux, Windows and Web by maxint.com

Repository (GitHub)
View/report issues

Documentation

API reference

License

MPL-2.0 (license)

Dependencies

alfred, flutter, html, humps, plaid_flutter, url_launcher

More

Packages that depend on plaid_universal