bitmio 0.0.2 copy "bitmio: ^0.0.2" to clipboard
bitmio: ^0.0.2 copied to clipboard

outdated

Bitmio components.

example/lib/main.dart

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

import 'package:flutter/services.dart';
import 'package:bitmio/bitmio.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    final background = Image.asset(
      'images/background.png',
      fit: BoxFit.cover,
    );

    final logoImage = Image.asset('images/logo.png');

    return MaterialApp(
      theme: ThemeData(
          brightness: Brightness.light,
          primaryColor: Colors.lightBlue[800],
          accentColor: Colors.cyan[600],
          fontFamily: 'Montserrat',
          textTheme: TextTheme(
              display2: TextStyle(fontSize: 45),
              button: TextStyle(fontSize: 14.0),
              subhead: TextStyle(fontSize: 16.0) // input text
              ),
          inputDecorationTheme: InputDecorationTheme(
              labelStyle: TextStyle(fontSize: 16.0),
              helperStyle: TextStyle(fontSize: 16.0),
              hintStyle: TextStyle(fontSize: 16.0)),
          buttonTheme: ButtonThemeData(
            padding: EdgeInsets.only(left: 60, right: 60, top: 15, bottom: 15),
            buttonColor: Colors.lightBlue[800], //  <-- dark color
            textTheme: ButtonTextTheme
                .primary, //  <-- this auto selects the right color
          )),
      darkTheme: ThemeData(
          brightness: Brightness.dark,
          primaryColor: Colors.orange,
          accentColor: Colors.blueAccent,
          buttonTheme: ButtonThemeData(
            padding: EdgeInsets.only(left: 60, right: 60, top: 15, bottom: 15),
            buttonColor: Colors.orange, //  <-- dark color
            textTheme: ButtonTextTheme
                .primary, //  <-- this auto selects the right color
          )),
      initialRoute: '/',
      routes: {
        '/': (context) => Bits(),
        '/welcome': (context) => WelcomeWidget(
              backgroundImage: background,
              logo: logoImage,
            ),
        '/login': (context) => HeaderDetailWidget(
            detail: MyLogin(), background: background, logo: logoImage),
        '/signup': (context) => HeaderDetailWidget(
            detail: MySignup(), background: background, logo: logoImage),
        '/webview-auth': (context) => WebviewAuth(
            authUrl: 'https://bitmio.com/demo/login',
            onCompletion: (result) => {print('Auth success $result')})
      },
    );
  }
}

class Bits extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        children: <Widget>[
          Card(
              child: ListTile(
            title: Text('Welcome'),
            onTap: () => {Navigator.pushNamed(context, '/welcome')},
          )),
          Card(
              child: ListTile(
            title: Text('Login'),
            onTap: () => {Navigator.pushNamed(context, '/login')},
          )),
          Card(
              child: ListTile(
            title: Text('Signup'),
            onTap: () => {Navigator.pushNamed(context, '/signup')},
          )),
          Card(
              child: ListTile(
            title: Text('Webview Auth'),
            onTap: () => {Navigator.pushNamed(context, '/webview-auth')},
          )),
          Card(
              child: ListTile(
            title: Text('Onboarding'),
            onTap: () => {Navigator.pushNamed(context, '/onboarding')},
          )),
          Card(
              child: ListTile(
            title: Text('Progress'),
            onTap: () => {Navigator.pushNamed(context, '/progress')},
          )),
          Card(
              child: ListTile(
            title: Text('Cards'),
            onTap: () => {Navigator.pushNamed(context, '/cards')},
          )),
          Card(
              child: ListTile(
            title: Text('Documents'),
            onTap: () => {Navigator.pushNamed(context, '/documents')},
          )),
          Card(
              child: ListTile(
            title: Text('Contacts'),
            onTap: () => {Navigator.pushNamed(context, '/contacts')},
          )),
        ],
      ),
    );
  }
}

class MyLogin extends StatefulWidget {
  @override
  _MyLoginState createState() {
    return _MyLoginState();
  }
}

class _MyLoginState extends State<MyLogin> {
  @override
  Widget build(BuildContext context) {
    return LoginForm(
        forgotLoginUrl: 'https://bitmio.com/demo/forgot-login',
        onCompletion: (model, callback) {
          print('Login ${model.email} - ${model.password}');

          Future.delayed(const Duration(milliseconds: 1000), () {
            callback();
          });
        });
  }
}

class MySignup extends StatefulWidget {
  @override
  _MySignupState createState() {
    return _MySignupState();
  }
}

class _MySignupState extends State<MySignup> {
  @override
  Widget build(BuildContext context) {
    return SignupForm(onCompletion: (model, callback) {
      print('Signup ${model.email} - ${model.password}');

      Future.delayed(const Duration(milliseconds: 1000), () {
        callback();
      });
    });
  }
}