코딩하는 제리

[Flutter/Project](Instagram Clone) signin/signout 애니메이션 추가 본문

Flutter/Project_InstaClone(완)

[Flutter/Project](Instagram Clone) signin/signout 애니메이션 추가

JerryCho 2021. 2. 3. 15:12


소스코드 및 pubspec.yaml

// main.dart

import 'package:flutter/material.dart';
import 'package:flutter_project_IJ/models/firebase_auth_state.dart';
import 'package:flutter_project_IJ/screens/auth_screen.dart';
import 'package:flutter_project_IJ/widgets/my_gallery.dart';
import 'package:flutter_project_IJ/widgets/my_progress_indicator.dart';
import 'package:provider/provider.dart';
import 'home_page.dart';
import 'constants/colors.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  FirebaseAuthState _firebaseAuthState = FirebaseAuthState();
  Widget _currentWidget;

  @override
  Widget build(BuildContext context) {
    return ChangeNotifierProvider<FirebaseAuthState>.value(
      value: _firebaseAuthState,
      child: MaterialApp(
        home: Consumer<FirebaseAuthState>(
          builder: (BuildContext context, FirebaseAuthState firebaseAuthState,
              Widget child) {
            switch (firebaseAuthState.firebaseAuthStatus) {
              case FirebaseAuthStatus.signout:
                _currentWidget = AuthScreen();
                break;
              case FirebaseAuthStatus.singin:
                _currentWidget = HomePage();
                break;
              default:
                _currentWidget = MyProgressIndicator();
            }
            return AnimatedSwitcher(
              duration: Duration(milliseconds: 300),
              child: _currentWidget,
            );
          },
          child: HomePage(),
        ),
        theme: ThemeData(primarySwatch: white),
      ),
    );
  }
}
Comments