welloo_sdk 0.0.62 copy "welloo_sdk: ^0.0.62" to clipboard
welloo_sdk: ^0.0.62 copied to clipboard

Package de transaction Welloo

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:welloo_sdk/welloo_sdk.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // Load environment variables
  try {
    await dotenv.load(fileName: '.env');
  } catch (e) {
    debugPrint('⚠️ .env file not found. Please create one from .env.example');
  }

  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Welloo SDK - Nouveau Système',
      theme: ThemeData(
        colorSchemeSeed: Colors.blue,
        useMaterial3: true,
      ),
      home: const DemoWello(),
    );
  }
}

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

  @override
  State<DemoWello> createState() => _DemoWelloState();
}

class _DemoWelloState extends State<DemoWello> with WidgetsBindingObserver {
  String get _accessToken => dotenv.env['ACCESS_TOKEN'] ?? '';
  String get _refreshToken => dotenv.env['REFRESH_TOKEN'] ?? '';

  @override
  void initState() {
    super.initState();
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  Future<void> _handleTransfer() async {
    Navigator.of(context).push(
      MaterialPageRoute(
        builder: (_) => WellooTransfer(
          accessToken: _accessToken,
          refreshToken: _refreshToken,
          waitResponse: (reponse) {
            print(reponse);
          },
          onError: (error) {
            print(error);
          },
        ),
      ),
    );
  }

  Future<void> _handleScanner() async {
    Navigator.of(context).push(MaterialPageRoute(
        builder: (_) => WellooScanQr(
              accessToken: _accessToken,
              refreshToken: _refreshToken,
              waitResponse: (reponse) {
                print(reponse);
              },
              onError: (error) {
                print(error);
              },
            )));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Welloo SDK - Nouveau Système'),
        actions: [],
      ),
      backgroundColor: Colors.white,
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(20.0),
          child: SingleChildScrollView(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                const SizedBox(height: 20),
                ElevatedButton.icon(
                  onPressed: _handleTransfer,
                  icon: const Icon(Icons.account_balance_wallet),
                  label: const Text("Initier un Transfert"),
                  style: ElevatedButton.styleFrom(
                    minimumSize: const Size(250, 50),
                    backgroundColor: Colors.blue,
                    foregroundColor: Colors.white,
                  ),
                ),
                const SizedBox(height: 20),
                ElevatedButton.icon(
                  onPressed: _handleScanner,
                  icon: const Icon(Icons.account_balance_wallet),
                  label: const Text("Scanner"),
                  style: ElevatedButton.styleFrom(
                    minimumSize: const Size(250, 50),
                    backgroundColor: Colors.blue,
                    foregroundColor: Colors.white,
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}