Skip to content

Commit

Permalink
Authenticate through Firebase and create rudimentary login screen
Browse files Browse the repository at this point in the history
  • Loading branch information
patelneel55 committed Dec 30, 2020
1 parent c4f9ba2 commit 6aed752
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 40 deletions.
42 changes: 15 additions & 27 deletions frontend/memoree_client/lib/app_scaffold.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,42 +4,30 @@ import 'package:memoree_client/widgets/grid_results.dart';
import 'drawer.dart';

class AppScaffold extends StatelessWidget {
const AppScaffold({Key key}) : super(key: key);
final String page;
const AppScaffold({Key key, this.page}) : super(key: key);

@override
Widget build(BuildContext context) {
final bool isMobileLayout = MediaQuery.of(context).size.width < 600;
final bool isTabletLayout = MediaQuery.of(context).size.width < 1008;

return Scaffold(
appBar: CustomAppBar(
isMobile: isMobileLayout,
isTablet: isTabletLayout
),
drawer: isMobileLayout ? AppDrawer() : null,
body: SafeArea(
child: Container(
child: Row(
children: <Widget>[
if(!isMobileLayout)
AppDrawer(),
Container(
child: Expanded(
child: ContentGrid()
)
)
]
)
)
)
);
appBar:
CustomAppBar(isMobile: isMobileLayout, isTablet: isTabletLayout),
drawer: isMobileLayout ? AppDrawer() : null,
body: SafeArea(
child: Container(
child: Row(children: <Widget>[
if (!isMobileLayout) AppDrawer(),
Container(
child: Expanded(child: page == "videos" ? ContentGrid() : null))
]))));
}

Widget appDrawer(bool isMobile, bool isTablet)
{
if(isMobile)
return AppDrawer();
Widget appDrawer(bool isMobile, bool isTablet) {
if (isMobile) return AppDrawer();

return null;
}
}
}
20 changes: 8 additions & 12 deletions frontend/memoree_client/lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:memoree_client/app/models/user.dart';
import 'package:memoree_client/app/services/firebase_auth.dart';
import 'package:memoree_client/app_scaffold.dart';
import 'package:memoree_client/constants.dart';
import 'package:memoree_client/drawer.dart';
import 'package:memoree_client/search.dart';
import 'package:memoree_client/pages/login.dart';
import 'package:memoree_client/themes.dart';

void main() => runApp(MyApp());
Expand All @@ -11,16 +13,10 @@ class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {

return MaterialApp(
debugShowCheckedModeBanner: false,
title: PageTitles.appName,
theme: AppTheme.lightTheme,
initialRoute: '/',
routes: {
'/': (context) => AppScaffold(),
'/login': (context) => Text("Under construction")
}
);
debugShowCheckedModeBanner: false,
title: PageTitles.appName,
theme: AppTheme.lightTheme,
home: LoginPage());
}
}
35 changes: 34 additions & 1 deletion frontend/memoree_client/web/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,20 @@
<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>

<title>memoree_client</title>
<title>Memoree</title>
<link rel="manifest" href="manifest.json">
</head>
<body>
<!-- Import secrets to allow Firebase authentication along with Google
Single-Sign-On -->
<script type='text/javascript' src='secrets.js'></script>
<script>
var link = document.createElement('meta');
link.setAttribute('name', 'google-signin-client_id');
link.setAttribute('content', secrets.client_id);
document.getElementsByTagName('head')[0].appendChild(link);
</script>

<!-- This script installs service_worker.js to provide PWA functionality to
application. For more information, see:
https://developers.google.com/web/fundamentals/primers/service-workers -->
Expand All @@ -40,6 +50,29 @@
});
}
</script>
<script src="https://www.gstatic.com/firebasejs/8.2.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.2.1/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.2.1/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.2.1/firebase-functions.js"></script>
<script>
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
var firebaseConfig = {
apiKey: secrets.apiKey,
authDomain: secrets.project_id + ".firebaseapp.com",
databaseURL: "https://" + secrets.project_id + ".firebaseio.com",
projectId: secrets.project_id,
storageBucket: secrets.project_id + ".appspot.com",
messagingSenderId: secrets.messagingSenderId,
appId: secrets.appId,
measurementId: secrets.measurementId
};
// Initialize Firebase
console.log(firebaseConfig);
firebase.initializeApp(firebaseConfig);
firebase.analytics();
</script>

<script src="main.dart.js" type="application/javascript"></script>
</body>
</html>

0 comments on commit 6aed752

Please sign in to comment.