Commit 4d63707a by Adarsh K

login and db change

parent ab5095f8
...@@ -16,9 +16,12 @@ import { AppComponent } from './app.component'; ...@@ -16,9 +16,12 @@ import { AppComponent } from './app.component';
import { AngularFireModule } from '@angular/fire'; import { AngularFireModule } from '@angular/fire';
import { AngularFirestore } from '@angular/fire/firestore'; import { AngularFirestore } from '@angular/fire/firestore';
import { AngularFirestoreModule } from '@angular/fire/firestore'; import { AngularFirestoreModule } from '@angular/fire/firestore';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { environment } from '../environments/environment'; import { environment } from '../environments/environment';
import { ServiceService } from './../config/service.service'; import { ServiceService } from './../config/service.service';
import { AuthService } from './../config/auth.service';
import { from } from 'rxjs';
...@@ -33,13 +36,15 @@ import { ServiceService } from './../config/service.service'; ...@@ -33,13 +36,15 @@ import { ServiceService } from './../config/service.service';
AppRoutingModule, AppRoutingModule,
BrowserAnimationsModule, BrowserAnimationsModule,
AngularFireModule.initializeApp(environment.firebase), AngularFireModule.initializeApp(environment.firebase),
AngularFireAuthModule,
AngularFirestoreModule AngularFirestoreModule
], ],
providers: [ providers: [
StatusBar, StatusBar,
SplashScreen, SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
ServiceService ServiceService,
AuthService
], ],
bootstrap: [AppComponent] bootstrap: [AppComponent]
}) })
......
<div class="nav_header"> <div class="nav_header">
<button class="nav_btn nav_back floatLeft"> <button class="nav_btn nav_back floatLeft" (click)="goBack()">
<img src="../assets/Group22_2.png"> <img src="../assets/Group22_2.png">
</button> </button>
<div class="nav_title floatLeft"> <div class="nav_title floatLeft">
......
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { Location } from '@angular/common';
@Component({ @Component({
selector: 'app-catagory', selector: 'app-catagory',
...@@ -7,9 +9,21 @@ import { Component, OnInit } from '@angular/core'; ...@@ -7,9 +9,21 @@ import { Component, OnInit } from '@angular/core';
}) })
export class CatagoryPage implements OnInit { export class CatagoryPage implements OnInit {
constructor() { } constructor(
public router: Router,
public location: Location
) { }
ngOnInit() { ngOnInit() {
} }
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
} }
...@@ -24,21 +24,21 @@ ...@@ -24,21 +24,21 @@
</div> </div>
<ion-slides pager="true"> <ion-slides pager="true">
<ion-slide> <ion-slide>
<div class="banner_slide" (click)="goToPage('productlist')"> <div class="banner_slide" (click)="goToPage('storelist')">
<h5>Lulu Fashion</h5> <h5>Lulu Fashion</h5>
<p>Women Fashion</p> <p>Women Fashion</p>
</div> </div>
<img src="../assets/portrait-smiling-woman-with-shopping-bags-smartphone_1262-14313_2.png"> <img src="../assets/portrait-smiling-woman-with-shopping-bags-smartphone_1262-14313_2.png">
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<div class="banner_slide" (click)="goToPage('productlist')"> <div class="banner_slide" (click)="goToPage('storelist')">
<h5>Lulu Fashion</h5> <h5>Lulu Fashion</h5>
<p>Women Fashion</p> <p>Women Fashion</p>
</div> </div>
<img src="../assets/portrait-smiling-woman-with-shopping-bags-smartphone_1262-14313_2.png"> <img src="../assets/portrait-smiling-woman-with-shopping-bags-smartphone_1262-14313_2.png">
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<div class="banner_slide" (click)="goToPage('productlist')"> <div class="banner_slide" (click)="goToPage('storelist')">
<h5>Lulu Fashion</h5> <h5>Lulu Fashion</h5>
<p>Women Fashion</p> <p>Women Fashion</p>
</div> </div>
......
...@@ -23,8 +23,9 @@ export class HomePage implements OnInit { ...@@ -23,8 +23,9 @@ export class HomePage implements OnInit {
isShow = false; isShow = false;
slideOpts = { slideOpts = {
slidesPerView:1.5 slidesPerView: 1.5
} };
constructor( constructor(
private router: Router, private router: Router,
private route: ActivatedRoute, private route: ActivatedRoute,
...@@ -47,5 +48,4 @@ export class HomePage implements OnInit { ...@@ -47,5 +48,4 @@ export class HomePage implements OnInit {
this.isShow = !this.isShow; this.isShow = !this.isShow;
} }
} }
...@@ -15,13 +15,13 @@ ...@@ -15,13 +15,13 @@
</div> </div>
<div class="form_div"> <div class="form_div">
<div class="row"> <div class="row">
<input class="" type="text" placeholder="User Name/ Email"> <input class="" type="text" placeholder="User Name/ Email" #userName required>
</div> </div>
<div class="row"> <div class="row">
<input class="" type="password" placeholder="Password"> <input class="" type="password" placeholder="Password" #userPassword required>
</div> </div>
<div class="row"> <div class="row">
<button class="login_btn" (click)="goToPage('home')">LOGIN</button> <button class="login_btn" (click)="authService.SignIn(userName.value, userPassword.value)">LOGIN</button>
</div> </div>
<div class="row"> <div class="row">
<hr> <hr>
......
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router'; import { Router, ActivatedRoute } from '@angular/router';
import { async } from "q"; import { AuthService } from './../../config/auth.service';
import { async } from 'q';
@Component({ @Component({
selector: 'app-login', selector: 'app-login',
...@@ -9,7 +10,11 @@ import { async } from "q"; ...@@ -9,7 +10,11 @@ import { async } from "q";
}) })
export class LoginPage implements OnInit { export class LoginPage implements OnInit {
constructor(private router: Router, private route: ActivatedRoute) { } constructor(
private router: Router,
private route: ActivatedRoute,
public authService: AuthService
) { }
ngOnInit() { ngOnInit() {
} }
......
...@@ -44,8 +44,7 @@ export class ProductlistPage implements OnInit { ...@@ -44,8 +44,7 @@ export class ProductlistPage implements OnInit {
} }
goBack() { goBack() {
// this.location.back(); this.location.back();
window.history.back();
} }
gridToggle(){ gridToggle(){
......
<div class="nav_header"> <div class="nav_header">
<button class="nav_btn nav_back floatLeft"> <button class="nav_btn nav_back floatLeft" (click)="goBack()">
</button> </button>
<div class="nav_title floatLeft"> <div class="nav_title floatLeft">
<input class="search_bar" placeholder="Search here.. eg:shirts, retailers etc..."> </div> <input class="search_bar" placeholder="Search here.. eg:shirts, retailers etc..."> </div>
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<div class="featured_slider"> <div class="featured_slider">
<ion-slides pager="false" [options]="slideOpts"> <ion-slides pager="false" [options]="slideOpts">
<ion-slide> <ion-slide>
<div class="feature_product" (click)="goToPage('productlist')"> <div class="feature_product" (click)="goToPage('catagory')">
<img src="../assets/videoblocks-woman-using-phone-purchase-in-cool-sunglasses-and-black-dress-holding-black-shopping-bag-isolated-on-dark-background-in-black-friday-holid@3x.png"> <img src="../assets/videoblocks-woman-using-phone-purchase-in-cool-sunglasses-and-black-dress-holding-black-shopping-bag-isolated-on-dark-background-in-black-friday-holid@3x.png">
<div class="feature_overlay"> <div class="feature_overlay">
<h5>Flames Fashion</h5> <h5>Flames Fashion</h5>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</div> </div>
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<div class="feature_product" (click)="goToPage('productlist')"> <div class="feature_product" (click)="goToPage('catagory')">
<img src="../assets/[email protected]"> <img src="../assets/[email protected]">
<div class="feature_overlay"> <div class="feature_overlay">
<h5>Flames Fashion</h5> <h5>Flames Fashion</h5>
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</div> </div>
</ion-slide> </ion-slide>
<ion-slide> <ion-slide>
<div class="feature_product" (click)="goToPage('productlist')"> <div class="feature_product" (click)="goToPage('catagory')">
<img src="../assets/videoblocks-woman-using-phone-purchase-in-cool-sunglasses-and-black-dress-holding-black-shopping-bag-isolated-on-dark-background-in-black-friday-holid@3x.png"> <img src="../assets/videoblocks-woman-using-phone-purchase-in-cool-sunglasses-and-black-dress-holding-black-shopping-bag-isolated-on-dark-background-in-black-friday-holid@3x.png">
<div class="feature_overlay"> <div class="feature_overlay">
<h5>Flames Fashion</h5> <h5>Flames Fashion</h5>
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
</div> </div>
<div class="nearby_shop_list"> <div class="nearby_shop_list">
<ul> <ul>
<li (click)="goToPage('productlist')"> <li (click)="goToPage('catagory')">
<div class="nearby_image"> <div class="nearby_image">
<img src="../assets/[email protected]"> <img src="../assets/[email protected]">
</div> </div>
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</li> </li>
<li (click)="goToPage('productlist')"> <li (click)="goToPage('catagory')">
<div class="nearby_image"> <div class="nearby_image">
<img src="../assets/[email protected]"> <img src="../assets/[email protected]">
</div> </div>
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</li> </li>
<li (click)="goToPage('productlist')"> <li (click)="goToPage('catagory')">
<div class="nearby_image"> <div class="nearby_image">
<img src="../assets/[email protected]"> <img src="../assets/[email protected]">
</div> </div>
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
<div class="clear"></div> <div class="clear"></div>
</li> </li>
<li (click)="goToPage('productlist')"> <li (click)="goToPage('catagory')">
<div class="nearby_image"> <div class="nearby_image">
<img src="../assets/2193bb91-3be9-4de9-96f4-4ce7aab8547e1558436499234-RARE-Women-Black-Printed-A-Line-Dress-6731558436495088-1@3x.png"> <img src="../assets/2193bb91-3be9-4de9-96f4-4ce7aab8547e1558436499234-RARE-Women-Black-Printed-A-Line-Dress-6731558436495088-1@3x.png">
</div> </div>
......
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { Location } from '@angular/common';
@Component({ @Component({
selector: 'app-storelist', selector: 'app-storelist',
...@@ -9,11 +11,23 @@ export class StorelistPage implements OnInit { ...@@ -9,11 +11,23 @@ export class StorelistPage implements OnInit {
slideOpts = { slideOpts = {
slidesPerView: 1.5 slidesPerView: 1.5
} };
constructor() { } constructor(
public router: Router,
public location: Location
) { }
ngOnInit() { ngOnInit() {
} }
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
goBack() {
this.location.back();
}
} }
import { Injectable } from '@angular/core';
import { User } from './services/user';
import { auth } from 'firebase/app';
import { Router, ActivatedRoute } from '@angular/router';
import { AngularFireAuth } from '@angular/fire/auth';
import { AngularFirestore, AngularFirestoreDocument } from '@angular/fire/firestore';
import { ServiceService } from './../config/service.service';
import { from } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class AuthService {
userData: any;
constructor(
public afs: AngularFirestore,
public afAuth: AngularFireAuth,
private router: Router,
private service: ServiceService
) {
this.afAuth.authState.subscribe(user => {
if (user) {
this.userData = user;
this.service.set('user', JSON.stringify(this.userData));
} else {
this.service.set('user', null);
JSON.parse(localStorage.getItem('user'));
}
});
}
public async SignIn(email: string, password: string) {
return this.afAuth.auth.signInWithEmailAndPassword(email, password).then((result) => {
console.log('success');
this.router.navigateByUrl('home');
document.body.scrollTop = document.documentElement.scrollTop = 0;
this.SetUserData(result.user);
}).catch((error) => {
window.alert(error.message);
});
}
get isLoggedIn(): boolean {
const user = JSON.parse(localStorage.getItem('user'));
return (user !== null && user.emailVerified !== false) ? true : false;
}
SetUserData(user: any) {
const userRef: AngularFirestoreDocument<any> = this.afs.doc(`customers/${user.uid}`);
userRef.valueChanges().subscribe((value) => {
const userData: User = {
uid: value.uid,
emailId: value.emailId,
name: value.name,
profilePhoto: value.profilePhoto,
emailVerified: value.emailVerified,
phone: value.phone,
phoneVerified: value.phoneVerified,
status: value.status,
currency: value.currency
};
console.log(userData);
});
}
public async SignOut() {
return this.afAuth.auth.signOut().then(() => {
this.service.remove('user');
console.log('logout');
});
}
}
export interface User {
uid: string;
emailId: string;
name: string;
phone: string;
phoneVerified: boolean;
profilePhoto: string;
emailVerified: boolean;
status: boolean;
currency: {
currId: string;
currName: string;
symbol: string
};
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment