Commit 50d00c38 by Adarsh K

file

parent c8241e3e
...@@ -102,4 +102,4 @@ ...@@ -102,4 +102,4 @@
"android" "android"
] ]
} }
} }
\ No newline at end of file
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
<ion-menu> <ion-menu>
<ion-content> <ion-content>
<div class="side_menu_wrapper"> <div class="side_menu_wrapper">
<ion-menu-toggle> <ion-menu-toggle *ngIf="userData">
<div class="top_banner"> <div class="top_banner">
<div class="top_image"></div> <div class="top_image"></div>
<div class="top_detail"> <div class="top_detail">
<h4>John Doe</h4> <h4>{{userData.name}}</h4>
<p>[email protected]</p> <p>{{userData.emailId}}</p>
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</div> </div>
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
class="icon_sec m6_icon" class="icon_sec m6_icon"
[class.m6_icon_act]="sec_active6" [class.m6_icon_act]="sec_active6"
(click)="setActive6()" (click)="setActive6()"
></div> menuClose></div>
</li> </li>
</ul> </ul>
</div> </div>
...@@ -3,7 +3,11 @@ import { Router, ActivatedRoute } from '@angular/router'; ...@@ -3,7 +3,11 @@ import { Router, ActivatedRoute } from '@angular/router';
import { Platform, Events } from '@ionic/angular'; import { Platform, Events } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx'; import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx'; import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AngularFirestore, AngularFirestoreDocument, AngularFirestoreCollection } from '@angular/fire/firestore'; import {
AngularFirestore,
AngularFirestoreDocument,
AngularFirestoreCollection
} from '@angular/fire/firestore';
import * as firebase from 'firebase'; import * as firebase from 'firebase';
import { ModalController } from '@ionic/angular'; import { ModalController } from '@ionic/angular';
import { DeliverypopPage } from './deliverypop/deliverypop.page'; import { DeliverypopPage } from './deliverypop/deliverypop.page';
...@@ -13,8 +17,6 @@ import { SubjectService } from './../config/subject.service'; ...@@ -13,8 +17,6 @@ import { SubjectService } from './../config/subject.service';
import { CategoriesService } from './../config/category.service'; import { CategoriesService } from './../config/category.service';
import { SearchmodalPage } from './searchmodal/searchmodal.page'; import { SearchmodalPage } from './searchmodal/searchmodal.page';
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
templateUrl: 'app.component.html', templateUrl: 'app.component.html',
...@@ -30,6 +32,7 @@ export class AppComponent { ...@@ -30,6 +32,7 @@ export class AppComponent {
state: boolean; state: boolean;
menuw: number; menuw: number;
userData: any;
constructor( constructor(
private platform: Platform, private platform: Platform,
...@@ -46,10 +49,19 @@ export class AppComponent { ...@@ -46,10 +49,19 @@ export class AppComponent {
) { ) {
this.state = true; this.state = true;
this.initializeApp(); this.initializeApp();
this.orderState();
this.subjectService.getLoginData().subscribe(loginData => { this.subjectService.getLoginData().subscribe(loginData => {
this.state = loginData; this.state = loginData;
}); });
this.service.get('userData').then(userData => {
if (userData) {
this.userData = JSON.parse(userData);
console.log(userData);
this.orderState();
} else {
console.log(userData);
}
});
} }
initializeApp() { initializeApp() {
...@@ -70,7 +82,13 @@ export class AppComponent { ...@@ -70,7 +82,13 @@ export class AppComponent {
} }
fetchCase() { fetchCase() {
const restrictedUrl = ['productdetail', 'cart', 'nearby', 'verification']; const restrictedUrl = [
'productdetail',
'cart',
'nearby',
'verification',
'orderplaced'
];
const currentUrl = this.router.url.split('/'); const currentUrl = this.router.url.split('/');
const index = restrictedUrl.findIndex(x => x === currentUrl[1]); const index = restrictedUrl.findIndex(x => x === currentUrl[1]);
// console.log(currentUrl[1], index, this.state); // console.log(currentUrl[1], index, this.state);
...@@ -137,8 +155,7 @@ export class AppComponent { ...@@ -137,8 +155,7 @@ export class AppComponent {
} }
orderState() { orderState() {
console.log('called'); const custId = this.userData.uid;
const custId = 'WwHnLICVY2dvZGUHuKqasiTB91a2';
firebase firebase
.firestore() .firestore()
.collection('orders') .collection('orders')
......
...@@ -16,6 +16,7 @@ import { AngularFireModule } from '@angular/fire'; ...@@ -16,6 +16,7 @@ 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 { AngularFireAuthModule } from '@angular/fire/auth';
import { AngularFireStorageModule } from '@angular/fire/storage';
import { Geolocation } from '@ionic-native/geolocation/ngx'; import { Geolocation } from '@ionic-native/geolocation/ngx';
import { NativeGeocoder } from '@ionic-native/native-geocoder/ngx'; import { NativeGeocoder } from '@ionic-native/native-geocoder/ngx';
...@@ -41,6 +42,7 @@ import { SearchmodalPageModule } from './searchmodal/searchmodal.module'; ...@@ -41,6 +42,7 @@ import { SearchmodalPageModule } from './searchmodal/searchmodal.module';
DeliverypopPageModule, DeliverypopPageModule,
AngularFireAuthModule, AngularFireAuthModule,
AngularFirestoreModule, AngularFirestoreModule,
AngularFireStorageModule,
SearchmodalPageModule, SearchmodalPageModule,
FormsModule FormsModule
], ],
......
<div class="nav_header"> <div class="nav_header">
<button class="nav_btn nav_back floatLeft" (click)="goBack()"> <button class="nav_btn nav_back floatLeft" (click)="goBack()"></button>
</button> <div class="nav_title floatLeft">
<div class="nav_title floatLeft"> <h4>MY ORDERS</h4>
<h4>MY ORDERS</h4> </div>
</div> <div class="clear"></div>
<div class="clear"></div>
</div> </div>
<ion-content> <ion-content>
<div class="myorder_wrapper" *ngIf="myorder.orders"> <div class="myorder_wrapper" *ngIf="myorder.orders">
<ul *ngIf="myorder.orders.length > 0"> <ul *ngIf="myorder.orders.length > 0">
<li *ngFor="let order of myorder.orders; let i = index"> <li *ngFor="let order of myorder.orders; let i = index">
<div class="order_info"> <div class="order_info">
<h5 class="floatLeft">{{order.orderCode}}</h5> <h5 class="floatLeft">{{order.orderCode}}</h5>
<button class="order_track floatRight" *ngIf="order.orderStatus >= 3 && order.orderStatus < 7" (click)="orderDetails(i)">Track Order</button> <button
<div class="clear"></div> class="order_track floatRight"
</div> *ngIf="order.orderStatus >= 3 && order.orderStatus < 7"
<div *ngFor="let product of order.product" (click)="viewOrder(order)"> (click)="orderDetails(i)"
<div class="order_image"><img [src]="product.image" onerror="" /></div> >
<div class="order_detail"> Track Order
<h5 class="floatLeft">{{product.prodName}}</h5> </button>
<div class="clear"></div> <div class="clear"></div>
<h5>{{product.color}}, {{product.size}} <span>{{product.qty}}</span></h5> </div>
<div *ngFor="let product of order.product" (click)="viewOrder(order)">
<p>A$ {{product.price}}</p> <div class="order_image">
<img [src]="product.image" onerror="" />
</div> </div>
<div class="order_other"> <div class="order_detail">
<h6 class="floatRight">{{ order.bookDate.seconds * 1000 | date:'MMMM dd, y' }}</h6> <h5 class="floatLeft">{{product.prodName}}</h5>
<span class="floatRight" *ngIf="order.orderStatus < 3 || order.orderStatus >= 7" (click)="acceptOrder(order)">{{getStatus(order.orderStatus)}}</span> <div class="clear"></div>
<div class="clear"></div> <h5>
<!-- <button class="track_btn" *ngIf="order.orderStatus >= 3 && order.orderStatus < 7" (click)="orderDetails(i)">TRACK</button> --> <span *ngIf="product.color !== 'No-Color'"
<div class="clear"></div> >{{product.color}},
</div> </span>
<div class="clear"></div> <span *ngIf="product.size !== 'Any-Size'">{{product.size}}</span
<hr> >&nbsp;<span>{{product.qty}}</span>
</div> </h5>
<p>A$ {{product.price}}</p>
</div>
<div class="order_info"> <div class="order_other">
<h5 class="floatRight">TOTAL PRICE : {{order.amount}}</h5> <h6 class="floatRight">
{{ order.bookDate.seconds * 1000 | date:'MMMM dd, y' }}
<div class="clear"></div> </h6>
</div> <span
</li> class="floatRight"
*ngIf="order.orderStatus < 3 || order.orderStatus >= 7"
<!-- <li> (click)="acceptOrder(order)"
>{{getStatus(order.orderStatus)}}</span
>
<div class="clear"></div>
<!-- <button class="track_btn" *ngIf="order.orderStatus >= 3 && order.orderStatus < 7" (click)="orderDetails(i)">TRACK</button> -->
<div class="clear"></div>
</div>
<div class="clear"></div>
<hr />
</div>
<div class="order_info">
<h5 class="floatRight">TOTAL PRICE : {{order.amount}}</h5>
<div class="clear"></div>
</div>
</li>
<!-- <li>
<div class="order_image"></div> <div class="order_image"></div>
<div class="order_detail"> <div class="order_detail">
<h5 class="floatLeft">European Style V Neck</h5> <h5 class="floatLeft">European Style V Neck</h5>
...@@ -91,12 +108,12 @@ ...@@ -91,12 +108,12 @@
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</li> --> </li> -->
</ul> </ul>
</div> </div>
</ion-content> </ion-content>
<div class="loader" *ngIf="loader"> <div class="loader" *ngIf="loader">
<div class="lds-ripple"> <div class="lds-ripple">
<div></div> <div></div>
<div></div> <div></div>
</div> </div>
</div> </div>
\ No newline at end of file
<ion-content> <ion-content>
<div class="cart_wrapper" *ngIf="data"> <div class="cart_wrapper" *ngIf="data">
<div class="cart_head"> <div class="cart_head">
<div class="nav_header"> <div class="nav_header">
<button class="nav_btn nav_back_white floatLeft" (click)="goBack()"> <button class="nav_btn nav_back_white floatLeft" (click)="goBack()">
<img src="../assets/arrow_white.png"> <img src="../assets/arrow_white.png" />
</button> </button>
<div class="nav_title floatLeft"> <div class="nav_title floatLeft">
<h4></h4> <h4></h4>
</div>
<button class="nav_btn floatRight">
</button>
<div class="clear"></div>
</div>
<img src="../assets/white_tick.png">
<h4>ORDER IS PLACED</h4>
<p>{{ data.bookDate.seconds * 1000 | date:'MMMM dd, y' }}</p>
</div> </div>
<div class="order_status"> <button class="nav_btn floatRight"></button>
<div class="clear"></div>
<div class="clear"></div> </div>
<div class="status_div go_green"> <img src="../assets/white_tick.png" />
<h4>Order Placed</h4> <h4>ORDER IS PLACED</h4>
<h6>{{ data.bookDate.seconds * 1000 | date:'MMMM dd, y' }}</h6> <p>{{ data.bookDate.seconds * 1000 | date:'MMMM dd, y' }}</p>
</div> </div>
<!-- <div class="status_gap go_green"> <div class="order_status">
<div class="clear"></div>
<div class="status_div go_green">
<h4>Order Placed</h4>
<h6>{{ data.bookDate.seconds * 1000 | date:'MMMM dd, y' }}</h6>
</div>
<!-- <div class="status_gap go_green">
</div> </div>
<div class="status_div go_green"> <div class="status_div go_green">
<h4>Retailer Accepted</h4> <h4>Retailer Accepted</h4>
...@@ -56,41 +54,56 @@ ...@@ -56,41 +54,56 @@
<div class="status_div"> <div class="status_div">
<h4>Your product is delivered</h4> <h4>Your product is delivered</h4>
</div> --> </div> -->
</div> </div>
<div class="nearby_shop_list"> <div class="nearby_shop_list">
<ul> <ul>
<li (click)="goToPage('productlist')"> <li (click)="goToPage('productlist')">
<div class="nearby_image"> <div class="nearby_image">
<img src="../assets/[email protected]"> <img
</div> [src]="data.product[0].image"
<div class="nearby_detail"> onerror="this.src='../assets/[email protected]'"
<h5> />
<span class="floatLeft">{{data.shopperName}}</span> </div>
<span class="floatRight">0 <div class="nearby_detail">
<img src="../assets/Path61_2.png">
</span>
<div class="clear"></div>
</h5>
<p>Men's & Women's Fashion</p>
</div>
<div class="clear"></div>
</li>
</ul>
</div>
<div class="product_detail" *ngFor="let product of data.product">
<h6>{{product.color}}, {{product.size}}</h6>
<h5>Quantity : <span>{{product.qty}}</span></h5>
<h5>Amount : <strong>A$ {{product.price}}</strong><span class="afterpay">COD</span></h5>
<h5>Delivery time : <span>Delivery in 1 hour</span></h5>
<h4>DELIVERY</h4>
<h5> <h5>
{{deliveryAddress}} <span class="floatLeft">{{data.shopperName}}</span>
<span class="floatRight"
>{{data.product[0].qty}}
<img src="../assets/Path61_2.png" />
</span>
<div class="clear"></div>
</h5> </h5>
<button class="cancel_btn" (click)="goToPage('ordercancelled')">CANCEL THIS ORDER</button> <p class="prodName">{{data.product[0].prodName}}</p>
<hr> </div>
</div> <div class="clear"></div>
</li>
</ul>
</div>
<div class="product_detail" *ngFor="let product of data.product">
<h6>
<span *ngIf="product.color !== 'No-Color'">{{product.color}}, </span>
<span *ngIf="product.size !== 'Any-Size'">{{product.size}}</span>
</h6>
<h5>Quantity : <span>{{product.qty}}</span></h5>
<h5>
Amount : <strong>A$ {{product.price}}</strong
><span class="afterpay">COD</span>
</h5>
<h5>Delivery time : <span>{{deliveryTime}}</span></h5>
<h4>DELIVERY</h4>
<h5 *ngIf="data.deliveryAddress">
{{data.deliveryAddress.addressType}},<br />{{data.deliveryAddress.address}},
<br />
{{data.deliveryAddress.building}}, <br />
{{data.deliveryAddress.landmark}}
</h5>
<button class="cancel_btn" (click)="goToPage('ordercancelled')">
CANCEL THIS ORDER
</button>
<hr />
</div>
<!-- <div class="related_product_slider"> <!-- <div class="related_product_slider">
<h5> <h5>
<span class="floatLeft">Related Products</span><span class="floatRight">MORE</span> <span class="floatLeft">Related Products</span><span class="floatRight">MORE</span>
<div class="clear"></div> <div class="clear"></div>
...@@ -145,5 +158,5 @@ ...@@ -145,5 +158,5 @@
</ion-slides> </ion-slides>
</ul> </ul>
</div> --> </div> -->
</div> </div>
</ion-content> </ion-content>
\ No newline at end of file
.cart_wrapper { .cart_wrapper {
width: 100%;
.cart_head {
width: 100%; width: 100%;
.cart_head { height: 240px;
width: 100%; text-align: center;
height: 240px; background-image: url('../../assets/[email protected]');
text-align: center; background-position: center bottom;
background-image: url("../../assets/[email protected]"); background-repeat: no-repeat;
background-position: center bottom; background-size: cover;
background-repeat: no-repeat; .nav_header {
background-size: cover; position: static;
.nav_header { background-color: transparent;
position: static; .nav_title {
background-color: transparent;
.nav_title {
h4 {
color: #FFF;
}
}
}
img {
width: 70px;
}
h4 { h4 {
color: #fff; color: #fff;
font-weight: bolder;
margin-bottom: 5px;
text-align: center;
}
p {
color: rgba(215, 213, 228, 1);
margin: 0px;
padding: 0px;
font-size: 14px;
text-align: center;
} }
}
} }
.order_status { img {
width: 100%; width: 70px;
padding: 20px;
.track_btn {
border-radius: 5px;
height: 40px;
background-color: #29285b;
color: #FFF;
font-size: 18px;
font-weight: lighter;
padding-left: 20px;
padding-right: 20px;
}
.status_div {
margin-bottom: 10px;
margin-top: 10px;
h4 {
margin: 0px;
padding: 0px;
color: rgba(215, 213, 228, 1);
}
h6 {
margin: 0px;
padding: 0px;
color: rgba(215, 213, 228, 1);
}
}
.go_green {
h4 {
color: rgba(53, 203, 171, 1);
}
}
.go_green.status_gap {
border-left: 2px dashed rgba(53, 203, 171, 1);
}
.status_gap {
border-left: 2px dashed rgba(215, 213, 228, 1);
height: 30px;
}
} }
.nearby_shop_list { h4 {
ul { color: #fff;
margin: 0px; font-weight: bolder;
padding-left: 10px; margin-bottom: 5px;
padding-right: 10px; text-align: center;
li {
list-style: none;
padding-bottom: 10px;
.nearby_image {
width: 120px;
height: 120px;
float: left;
background-color: #a8a8a8;
border-radius: 8px;
img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
}
.nearby_detail {
width: calc(100% - 120px);
float: left;
padding-left: 20px;
padding-top: 40px;
h5 {
margin: 0px;
padding: 0px;
color: rgba(59, 57, 77, 1);
font-weight: 900;
padding-bottom: 2px;
img {
width: 16px;
}
}
p {
margin: 0px;
padding: 0px;
color: rgba(176, 174, 199);
}
}
}
}
} }
.product_detail { p {
padding: 10px; color: rgba(215, 213, 228, 1);
hr { margin: 0px;
border-bottom: 1px solid rgba(176, 174, 199); padding: 0px;
height: 0px; font-size: 14px;
border-top: none; text-align: center;
} }
h6 { }
margin: 0px; .order_status {
padding: 0px; width: 100%;
color: #29285b; padding: 20px;
font-size: 18px; .track_btn {
padding-bottom: 15px; border-radius: 5px;
height: 40px;
background-color: #29285b;
color: #fff;
font-size: 18px;
font-weight: lighter;
padding-left: 20px;
padding-right: 20px;
}
.status_div {
margin-bottom: 10px;
margin-top: 10px;
h4 {
margin: 0px;
padding: 0px;
color: rgba(215, 213, 228, 1);
}
h6 {
margin: 0px;
padding: 0px;
color: rgba(215, 213, 228, 1);
}
}
.go_green {
h4 {
color: rgba(53, 203, 171, 1);
}
}
.go_green.status_gap {
border-left: 2px dashed rgba(53, 203, 171, 1);
}
.status_gap {
border-left: 2px dashed rgba(215, 213, 228, 1);
height: 30px;
}
}
.nearby_shop_list {
ul {
margin: 0px;
padding-left: 10px;
padding-right: 10px;
li {
list-style: none;
padding-bottom: 10px;
.nearby_image {
width: 120px;
height: 120px;
float: left;
background-color: #a8a8a8;
border-radius: 8px;
img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
} }
h5 { .nearby_detail {
width: calc(100% - 120px);
float: left;
padding-left: 20px;
padding-top: 40px;
h5 {
margin: 0px; margin: 0px;
padding: 0px; padding: 0px;
color: rgba(176, 174, 199, 1); color: rgba(59, 57, 77, 1);
font-size: 18px; font-weight: 900;
line-height: 25px; padding-bottom: 2px;
padding-bottom: 15px; img {
strong { width: 16px;
color: rgba(41, 40, 91, 1);
}
span {
color: rgba(41, 40, 91, 1);
}
.afterpay {
color: rgba(206, 153, 76, 1);
padding-left: 10px;
} }
} }
h4 { p {
color: rgba(41, 40, 91, 1);
margin: 0px; margin: 0px;
font-weight: 900; padding: 0px;
font-size: 18px; color: rgba(176, 174, 199);
padding-top: 20px; }
padding-bottom: 10px;
} }
.cancel_btn { }
border-radius: 8px; }
height: 45px; }
.product_detail {
padding: 10px;
hr {
border-bottom: 1px solid rgba(176, 174, 199);
height: 0px;
border-top: none;
}
h6 {
margin: 0px;
padding: 0px;
color: #29285b;
font-size: 18px;
padding-bottom: 15px;
}
h5 {
margin: 0px;
padding: 0px;
color: rgba(176, 174, 199, 1);
font-size: 18px;
line-height: 25px;
padding-bottom: 15px;
strong {
color: rgba(41, 40, 91, 1);
}
span {
color: rgba(41, 40, 91, 1);
}
.afterpay {
color: rgba(206, 153, 76, 1);
padding-left: 10px;
}
}
h4 {
color: rgba(41, 40, 91, 1);
margin: 0px;
font-weight: 900;
font-size: 18px;
padding-top: 20px;
padding-bottom: 10px;
}
.cancel_btn {
border-radius: 8px;
height: 45px;
width: 100%;
background-color: #29285b;
color: #fff;
font-size: 18px;
font-weight: lighter;
padding-left: 20px;
padding-right: 20px;
margin-bottom: 20px;
margin-top: 20px;
}
}
.related_product_slider {
h5 {
color: rgba(41, 40, 91, 1);
margin: 0px;
padding: 10px;
font-weight: 900;
font-size: 18px;
}
p {
color: rgba(59, 57, 77, 1);
padding: 10px;
text-align: justify;
margin: 0px;
font-size: 18px;
}
ul {
padding: 10px;
padding-bottom: 0px;
padding-top: 0px;
margin: 0px;
li {
width: 100%;
display: inline-block;
border-top: none;
border-bottom: none;
margin-bottom: 10px;
.product_image {
height: 235px;
position: relative;
.featured_badge {
position: absolute;
top: 20px;
left: 0px;
color: #fff;
background-color: rgba(41, 40, 91, 1);
padding: 2px;
padding-left: 10px;
padding-right: 10px;
font-size: 13px;
}
.fav_icon {
position: absolute;
top: 10px;
right: 10px;
font-size: 27px;
width: 30px;
height: 30px;
background-image: url('../../assets/Group32_2.png');
background-position: center;
background-repeat: no-repeat;
background-size: 24px;
}
img {
width: 100%; width: 100%;
background-color: #29285b; height: 100%;
color: #FFF; object-fit: cover;
font-size: 18px; object-position: center;
font-weight: lighter; }
padding-left: 20px;
padding-right: 20px;
margin-bottom: 20px;
margin-top: 20px;
} }
}
.related_product_slider {
h5 { h5 {
color: rgba(41, 40, 91, 1); margin: 0px;
margin: 0px; padding: 0px;
padding: 10px; color: rgba(59, 57, 77, 1);
font-weight: 900; padding-top: 5px;
font-size: 18px; padding-bottom: 5px;
font-weight: 500;
text-align: left;
font-size: 16px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
} }
p { p {
color: rgba(59, 57, 77, 1); margin: 0px;
padding: 10px; padding: 0px;
text-align: justify; color: rgba(176, 174, 199, 1);
margin: 0px; font-size: 12px;
font-size: 18px; text-align: left;
} span {
ul { text-decoration: line-through;
padding: 10px; margin-left: 10px;
padding-bottom: 0px; color: rgba(215, 213, 228, 1);
padding-top: 0px; }
margin: 0px; .offer {
li { color: #fff;
width: 100%; background-color: rgba(41, 40, 91, 1);
display: inline-block; border-radius: 4px;
border-top: none; text-decoration: none;
border-bottom: none; padding: 3px;
margin-bottom: 10px; font-size: 13px;
.product_image { }
height: 235px;
position: relative;
.featured_badge {
position: absolute;
top: 20px;
left: 0px;
color: #fff;
background-color: rgba(41, 40, 91, 1);
padding: 2px;
padding-left: 10px;
padding-right: 10px;
font-size: 13px;
}
.fav_icon {
position: absolute;
top: 10px;
right: 10px;
font-size: 27px;
width: 30px;
height: 30px;
background-image: url("../../assets/Group32_2.png");
background-position: center;
background-repeat: no-repeat;
background-size: 24px;
}
img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
}
h5 {
margin: 0px;
padding: 0px;
color: rgba(59, 57, 77, 1);
padding-top: 5px;
padding-bottom: 5px;
font-weight: 500;
text-align: left;
font-size: 16px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
p {
margin: 0px;
padding: 0px;
color: rgba(176, 174, 199, 1);
font-size: 12px;
text-align: left;
span {
text-decoration: line-through;
margin-left: 10px;
color: rgba(215, 213, 228, 1)
}
.offer {
color: #fff;
background-color: rgba(41, 40, 91, 1);
border-radius: 4px;
text-decoration: none;
padding: 3px;
font-size: 13px;
}
}
}
} }
}
} }
} }
\ No newline at end of file }
.prodName {
white-space: nowrap;
width: 200px;
overflow: hidden;
text-overflow: ellipsis;
}
...@@ -6,29 +6,58 @@ import { ServiceService } from './../../config/service.service'; ...@@ -6,29 +6,58 @@ import { ServiceService } from './../../config/service.service';
@Component({ @Component({
selector: 'app-orderplaced', selector: 'app-orderplaced',
templateUrl: './orderplaced.page.html', templateUrl: './orderplaced.page.html',
styleUrls: ['./orderplaced.page.scss'], styleUrls: ['./orderplaced.page.scss']
}) })
export class OrderplacedPage implements OnInit { export class OrderplacedPage implements OnInit {
data: any; deliveryTime: any;
timeinterval: any;
constructor( constructor(
private router: Router, private router: Router,
private route: ActivatedRoute, private route: ActivatedRoute,
private location: Location, private location: Location,
private service: ServiceService private service: ServiceService
) { ) {
this.deliveryTime = '';
this.service.get('order').then(val => { this.service.get('order').then(val => {
this.data = val; this.data = val;
this.timeinterval = setInterval(() => {
this.getDeliveryTime(this.data.bookDate.seconds);
}, 1000);
}); });
}
ngOnInit() {
} }
data: any;
relatedProd = { relatedProd = {
slidesPerView: 2 slidesPerView: 2
};
getDeliveryTime(timeStamp) {
console.log(timeStamp);
const endDate = new Date(timeStamp * 1000);
console.log(endDate);
endDate.setHours(endDate.getHours() + 1);
const t = this.getTimeRemaining(endDate, new Date());
const minutes = t.minutes < 10 ? '0' + t.minutes : t.minutes;
const seconds = t.seconds < 10 ? '0' + t.seconds : t.seconds;
this.deliveryTime = minutes + ' : ' + seconds;
if (t.t <= 0) {
clearInterval(this.timeinterval);
}
} }
getTimeRemaining(endtime, currDate) {
const t = Date.parse(endtime) - Date.parse(currDate);
const seconds = Math.floor((t / 1000) % 60);
const minutes = Math.floor((t / 1000 / 60) % 60);
return {
t,
minutes,
seconds
};
}
ngOnInit() {}
goToPage(path, data = null) { goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data }); this.router.navigateByUrl(path, { queryParams: data });
document.body.scrollTop = document.documentElement.scrollTop = 0; document.body.scrollTop = document.documentElement.scrollTop = 0;
...@@ -36,6 +65,5 @@ export class OrderplacedPage implements OnInit { ...@@ -36,6 +65,5 @@ export class OrderplacedPage implements OnInit {
goBack() { goBack() {
this.location.back(); this.location.back();
} }
} }
...@@ -8,13 +8,23 @@ ...@@ -8,13 +8,23 @@
<div class="clear"></div> <div class="clear"></div>
</div> </div>
<ion-content> <ion-content>
<div class="profile_wrapper"> <div class="profile_wrapper" *ngIf="loggedUser">
<div class="profile_banner"> <div class="profile_banner">
<!-- <div class="profile_circle">
<div class="edit"></div>
</div> -->
<div class="profile_circle"> <div class="profile_circle">
<img
[src]="loggedUser.profilePhoto"
onerror="this.src='./../../assets/profile_banner.png'"
/>
<div class="edit"></div> <div class="edit"></div>
<input type="file" accept="image/*" (change)="fileChange($event)" />
</div> </div>
<h5>{{user && user.name}}</h5>
<p>LOGOUT</p> <h5>{{loggedUser.name}}</h5>
<p (click)="authService.SignOut()">LOGOUT</p>
</div> </div>
<div class="account_wrapper"> <div class="account_wrapper">
<div class="account_header"> <div class="account_header">
...@@ -30,13 +40,15 @@ ...@@ -30,13 +40,15 @@
<ion-row> <ion-row>
<ion-col class="textLeft p0"> <ion-col class="textLeft p0">
<p> <p>
Name<span Phone
>{{user && phoneVerified? "Verified": "Not Verified yet"}}</span <span *ngIf="loggedUser.phoneVerified == true">Verified</span>
<span *ngIf="loggedUser.phoneVerified == false"
>Not Verified yet</span
> >
</p> </p>
</ion-col> </ion-col>
<ion-col class="textRight p0"> <ion-col class="textRight p0">
<h6>{{user && user.name}}</h6> <h6>{{loggedUser.phone}}</h6>
</ion-col> </ion-col>
</ion-row> </ion-row>
</div> </div>
...@@ -44,13 +56,16 @@ ...@@ -44,13 +56,16 @@
<ion-row> <ion-row>
<ion-col class="textLeft p0"> <ion-col class="textLeft p0">
<p> <p>
Email<span Email<span *ngIf="userData && userData.emailVerified == true"
>{{user && emailVerified? "Verified": "Not Verified yet"}}</span >Verified</span
>
<span *ngIf="loggedUser.emailVerified == false"
>Not Verified yet</span
> >
</p> </p>
</ion-col> </ion-col>
<ion-col class="textRight p0"> <ion-col class="textRight p0">
<h6>{{user && user.emailId}}</h6> <h6>{{loggedUser.emailId}}</h6>
</ion-col> </ion-col>
</ion-row> </ion-row>
</div> </div>
...@@ -88,7 +103,7 @@ ...@@ -88,7 +103,7 @@
<ion-col class="textLeft p0"> <ion-col class="textLeft p0">
<p>My Order</p> <p>My Order</p>
</ion-col> </ion-col>
<ion-col class="textRight p0"> <ion-col class="textRight p0" (click)="goToPage('myorder')">
<h6> <h6>
<ion-icon name="arrow-forward"></ion-icon> <ion-icon name="arrow-forward"></ion-icon>
</h6> </h6>
......
.profile_wrapper { .profile_wrapper {
.profile_banner { .profile_banner {
width: 100%;
background-image: url('../../assets/profile_banner.png');
background-position: center;
background-repeat: no-repeat;
background-size: cover;
text-align: center;
padding-top: 40px;
.profile_circle {
width: 100px;
height: 100px;
background-color: #fff;
border-radius: 50%;
position: relative;
margin: 0 auto;
img {
width: 100%; width: 100%;
background-image: url("../../assets/profile_banner.png"); height: 100%;
background-position: center; object-fit: cover;
background-repeat: no-repeat; object-position: center;
border-radius: 50%;
}
input {
width: 80px;
height: 100%;
opacity: 0;
cursor: pointer;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
}
.edit {
width: 30px;
height: 30px;
border-radius: 50%;
object-fit: cover;
object-position: center;
background-color: #000;
background-image: url('../../assets/edit_icon.png');
background-size: cover; background-size: cover;
text-align: center; cursor: pointer;
padding-top: 40px; position: absolute;
.profile_circle { top: 0px;
width: 100px; right: 0px;
height: 100px; }
background-color: #fff;
border-radius: 50%;
position: relative;
margin: 0 auto;
img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
border-radius: 50%;
}
.edit {
width: 30px;
height: 30px;
border-radius: 50%;
object-fit: cover;
object-position: center;
background-color: #000;
background-image: url("../../assets/edit_icon.png");
background-size: cover;
cursor: pointer;
position: absolute;
top: 0px;
right: 0px;
}
}
h5 {
text-align: center;
color: #fff;
margin: 0px;
padding-top: 15px;
font-weight: 600;
padding-bottom: 5px;
}
p {
color: rgba(206, 153, 76, 1);
text-align: center;
margin: 0px;
padding-bottom: 20px;
font-weight: 700;
}
} }
.account_wrapper { h5 {
width: calc(100% - 40px); text-align: center;
margin: 0 auto; color: #fff;
padding-top: 20px; margin: 0px;
padding-bottom: 100px; padding-top: 15px;
.account_header { font-weight: 600;
padding-bottom: 15px; padding-bottom: 5px;
h5 { }
margin: 0px; p {
padding: 0px; color: rgba(206, 153, 76, 1);
color: rgba(59, 57, 77, 1); text-align: center;
font-weight: 900; margin: 0px;
} padding-bottom: 20px;
span { font-weight: 700;
color: rgba(59, 57, 77, 1); }
img { }
width: 20px; .account_wrapper {
} width: calc(100% - 40px);
} margin: 0 auto;
} padding-top: 20px;
p { padding-bottom: 100px;
margin: 0px; .account_header {
padding: 0px; padding-bottom: 15px;
color: rgba(176, 174, 199, 1); h5 {
font-size: 18px; margin: 0px;
span { padding: 0px;
color: rgba(206, 153, 76, 1); color: rgba(59, 57, 77, 1);
margin-left: 10px; font-weight: 900;
} }
} span {
h6 { color: rgba(59, 57, 77, 1);
margin: 0px; img {
padding: 0px; width: 20px;
color: rgba(59, 57, 77, 1);
font-size: 18px;
ion-icon {
color: rgba(176, 174, 199, 1);
}
}
.row {
padding-bottom: 20px;
}
hr {
border-bottom: 1px solid rgba(176, 174, 199, .5);
height: 0px;
border-top: none;
margin-top: 15px;
margin-bottom: 15px;
} }
}
}
p {
margin: 0px;
padding: 0px;
color: rgba(176, 174, 199, 1);
font-size: 18px;
span {
color: rgba(206, 153, 76, 1);
margin-left: 10px;
}
}
h6 {
margin: 0px;
padding: 0px;
color: rgba(59, 57, 77, 1);
font-size: 18px;
ion-icon {
color: rgba(176, 174, 199, 1);
}
}
.row {
padding-bottom: 20px;
}
hr {
border-bottom: 1px solid rgba(176, 174, 199, 0.5);
height: 0px;
border-top: none;
margin-top: 15px;
margin-bottom: 15px;
} }
} }
\ No newline at end of file }
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from '@angular/core';
import { User } from "../../config/services/user"; import { User } from '../../config/services/user';
import { UserService } from "../../config/user.service"; import { UserService } from '../../config/user.service';
import { ServiceService } from "../../config/service.service"; import { ServiceService } from '../../config/service.service';
import { Router, ActivatedRoute } from "@angular/router"; import { AuthService } from '../../config/auth.service';
import { Router, ActivatedRoute } from '@angular/router';
import { finalize, tap } from 'rxjs/operators';
import {
AngularFireStorage,
AngularFireStorageReference,
AngularFireUploadTask
} from '@angular/fire/storage';
import {
AngularFirestore,
AngularFirestoreDocument,
AngularFirestoreCollection
} from '@angular/fire/firestore';
@Component({ @Component({
selector: "app-profile", selector: 'app-profile',
templateUrl: "./profile.page.html", templateUrl: './profile.page.html',
styleUrls: ["./profile.page.scss"] styleUrls: ['./profile.page.scss']
}) })
export class ProfilePage implements OnInit { export class ProfilePage implements OnInit {
user: User; user: User;
userdata: any; userdata: any;
custId: String; custId: string;
userData: any;
loggedUser: any;
ref: AngularFireStorageReference;
downloadURL;
constructor( constructor(
private router: Router, private router: Router,
private storage: AngularFireStorage,
private useService: UserService, private useService: UserService,
private service: ServiceService private service: ServiceService,
private authService: AuthService
) { ) {
const params = this.useService.users; this.service.get('user').then(data => {
const userdata = this.service.get("user").then(data => {
if (data) { if (data) {
data = JSON.parse(data); this.userData = JSON.parse(data);
this.service.set("params", data); console.log(this.userData);
this.custId = data.uid;
} }
}); });
this.useService.getUserData("9cYSZwGvVpgkUHVcz8Dm6oqGX152"); this.service.get('userData').then(data => {
if (data) {
// .then(res => { this.loggedUser = JSON.parse(data);
// console.log("asdasda", res); }
// this.userdata = res; });
// });
} }
goToPage(path, data = null) { goToPage(path, data = null) {
...@@ -43,11 +57,48 @@ export class ProfilePage implements OnInit { ...@@ -43,11 +57,48 @@ export class ProfilePage implements OnInit {
} }
ngOnInit() { ngOnInit() {
let This = this; const This = this;
setTimeout(() => { setTimeout(() => {
this.user = this.useService.users; this.user = this.useService.users;
console.log("[users]", this.user); // console.log('[users]', this.user);
this.service.set("params", this.user); this.service.set('params', this.user);
}, 500); }, 500);
} }
async fileChange(event) {
const fileList: FileList = event.target.files;
if (fileList.length > 0) {
const reader = new FileReader();
let profilePic;
reader.onload = (events: any) => {
profilePic = events.target.result;
this.loggedUser.profilePhoto = events.target.result;
};
profilePic = event.target.result;
reader.readAsDataURL(event.target.files[0]);
const file = fileList[0];
const ext = file.name.split('.').pop();
if (ext === 'jpg' || ext === 'jpeg' || ext === 'png') {
const path = file.name; // + Date.now();
const ref = this.storage.ref(path);
const task = this.storage
.upload(path, file)
.snapshotChanges()
.pipe(
finalize(() => {
ref.getDownloadURL().subscribe(url => {
this.authService.profilePic(url);
});
})
)
.subscribe();
// this.downloadURL = await ref.getDownloadURL().toPromise();
// console.log(this.downloadURL);
}
}
}
} }
...@@ -3,7 +3,11 @@ import { User, Signup, Address } from './services/user'; ...@@ -3,7 +3,11 @@ import { User, Signup, Address } from './services/user';
import { auth } from 'firebase/app'; import { auth } from 'firebase/app';
import { Router, ActivatedRoute } from '@angular/router'; import { Router, ActivatedRoute } from '@angular/router';
import { AngularFireAuth } from '@angular/fire/auth'; import { AngularFireAuth } from '@angular/fire/auth';
import { AngularFirestore, AngularFirestoreDocument, AngularFirestoreCollection } from '@angular/fire/firestore'; import {
AngularFirestore,
AngularFirestoreDocument,
AngularFirestoreCollection
} from '@angular/fire/firestore';
import { ServiceService } from './../config/service.service'; import { ServiceService } from './../config/service.service';
import { SubjectService } from './../config/subject.service'; import { SubjectService } from './../config/subject.service';
import { GooglePlus } from '@ionic-native/google-plus/ngx'; import { GooglePlus } from '@ionic-native/google-plus/ngx';
...@@ -14,10 +18,6 @@ import { from } from 'rxjs'; ...@@ -14,10 +18,6 @@ import { from } from 'rxjs';
providedIn: 'root' providedIn: 'root'
}) })
export class AuthService { export class AuthService {
userData: any;
type: number;
userPostData: any;
constructor( constructor(
public afs: AngularFirestore, public afs: AngularFirestore,
public afAuth: AngularFireAuth, public afAuth: AngularFireAuth,
...@@ -26,84 +26,115 @@ export class AuthService { ...@@ -26,84 +26,115 @@ export class AuthService {
private subjectService: SubjectService, private subjectService: SubjectService,
private googlePlus: GooglePlus private googlePlus: GooglePlus
) { ) {
this.type = 1; this.type = 1;
this.afAuth.authState.subscribe(user => { this.afAuth.authState.subscribe(user => {
if (user) { if (user) {
this.subjectService.sendLoginData(false); this.subjectService.sendLoginData(false);
this.userData = user; this.userData = user;
console.log(this.userData); console.log(this.userData);
this.service.set('user', JSON.stringify(this.userData)); this.service.set('user', JSON.stringify(this.userData));
if (this.type === 1) { this.SetUserData(user);
this.router.navigateByUrl('home'); if (this.type === 1) {
} else { this.router.navigateByUrl('home');
this.router.navigateByUrl('verification');
}
} else { } else {
this.subjectService.sendLoginData(true); this.router.navigateByUrl('verification');
this.service.set('user', null);
JSON.parse(localStorage.getItem('user'));
this.router.navigateByUrl('login');
} }
}); } else {
this.subjectService.sendLoginData(true);
this.service.set('user', null);
JSON.parse(localStorage.getItem('user'));
this.router.navigateByUrl('login');
}
});
} }
get isLoggedIn(): boolean {
const user = JSON.parse(localStorage.getItem('user'));
return user !== null && user.emailVerified !== false ? true : false;
}
userData: any;
type: number;
userPostData: any;
loggedUser: any;
public asyc;
public async SignIn(email: string, password: string) { public async SignIn(email: string, password: string) {
return this.afAuth.auth.signInWithEmailAndPassword(email, password).then((result) => { return this.afAuth.auth
console.log('success'); .signInWithEmailAndPassword(email, password)
document.body.scrollTop = document.documentElement.scrollTop = 0; .then(result => {
this.SetUserData(result.user); console.log('success');
}).catch((error) => { document.body.scrollTop = document.documentElement.scrollTop = 0;
window.alert(error.message); this.SetUserData(result.user);
}); })
.catch(error => {
window.alert(error.message);
});
} }
public async verify(otp: string) { public async verify(otp: string) {
console.log(this.userData.uid, otp); console.log(this.userData.uid, otp);
// tslint:disable-next-line:radix // tslint:disable-next-line:radix
// const otpnew = parseInt(otp); // const otpnew = parseInt(otp);
const custRef: AngularFirestoreCollection<any> = this.afs.collection('customers', ref => ref.where('otp', '==', otp) const custRef: AngularFirestoreCollection<any> = this.afs.collection(
.where('uid', '==', this.userData.uid) 'customers',
ref => ref.where('otp', '==', otp).where('uid', '==', this.userData.uid)
); );
custRef.valueChanges().pipe(take(1)).subscribe((value: User[]) => { custRef
if (value.length > 0) { .valueChanges()
this.afs.collection('customers').doc(this.userData.uid).update({otp: ''}); .pipe(take(1))
this.service.set('type', 1); .subscribe((value: User[]) => {
this.router.navigateByUrl('nearby'); if (value.length > 0) {
} else { this.afs
window.alert('Please input valid OTP'); .collection('customers')
} .doc(this.userData.uid)
}); .update({ otp: '', phoneVerified: true });
this.service.set('type', 1);
this.router.navigateByUrl('nearby');
} else {
window.alert('Please input valid OTP');
}
});
} }
profilePic(pic) {
this.afs
.collection('customers')
.doc(this.userData.uid)
.update({ profilePhoto: pic });
}
public async google(type: number) { public async google(type: number) {
this.type = type; this.type = type;
// this.googlePlus.login({}).then(res => console.log(res)).catch(err => console.error(err)); // this.googlePlus.login({}).then(res => console.log(res)).catch(err => console.error(err));
this.afAuth.auth.signInWithPopup(new auth.GoogleAuthProvider()).then((result) => { this.afAuth.auth
console.log('success'); .signInWithPopup(new auth.GoogleAuthProvider())
console.log(result); .then(result => {
this.socialSignUp(result); console.log('success');
}); console.log(result.additionalUserInfo.isNewUser);
if (
result.additionalUserInfo &&
result.additionalUserInfo.isNewUser === true
) {
this.socialSignUp(result);
}
});
} }
public async facebook(type: number) { public async facebook(type: number) {
this.type = type; this.type = type;
this.afAuth.auth.signInWithPopup(new auth.FacebookAuthProvider()).then((result) => { this.afAuth.auth
console.log('success'); .signInWithPopup(new auth.FacebookAuthProvider())
console.log(result); .then(result => {
}); console.log('success');
} console.log(result);
});
get isLoggedIn(): boolean {
const user = JSON.parse(localStorage.getItem('user'));
return(user !== null && user.emailVerified !== false) ? true : false;
} }
SetUserData(user: any) { SetUserData(user: any) {
const userRef: AngularFirestoreDocument<any> = this.afs.doc(
const userRef: AngularFirestoreDocument<any> = this.afs.doc(`customers/${user.uid}`); `customers/${user.uid}`
userRef.valueChanges().subscribe((value) => { );
userRef.valueChanges().subscribe(value => {
const userData: User = { const userData: User = {
uid: value.uid, uid: value.uid,
emailId: value.emailId, emailId: value.emailId,
...@@ -116,8 +147,10 @@ export class AuthService { ...@@ -116,8 +147,10 @@ export class AuthService {
currency: value.currency, currency: value.currency,
otp: value.otp, otp: value.otp,
loginType: value.loginType loginType: value.loginType
}; };
console.log(userData); this.loggedUser = userData;
this.service.set('userData', JSON.stringify(this.loggedUser));
console.log(this.loggedUser);
}); });
} }
...@@ -139,7 +172,7 @@ export class AuthService { ...@@ -139,7 +172,7 @@ export class AuthService {
}; };
const otp = Math.floor(1000 + Math.random() * 9000); const otp = Math.floor(1000 + Math.random() * 9000);
userData = userData.user; userData = userData.user;
const postData: User = { const postData: User = {
uid: userData.uid, uid: userData.uid,
status: true, status: true,
profilePhoto: userData.photoURL, profilePhoto: userData.photoURL,
...@@ -154,91 +187,104 @@ export class AuthService { ...@@ -154,91 +187,104 @@ export class AuthService {
}; };
this.userPostData = postData; this.userPostData = postData;
console.log(postData); console.log(postData);
this.afs.collection('customers').doc(userData.uid).set(postData).then(() => { this.afs
console.log('successs'); .collection('customers')
}); .doc(userData.uid)
.set(postData)
.then(() => {
console.log('successs');
});
} }
signup(userData: Signup) { signup(userData: Signup) {
this.type = 2; this.type = 2;
console.log(userData); console.log(userData);
const otp = Math.floor(1000 + Math.random() * 9000); const otp = Math.floor(1000 + Math.random() * 9000);
this.afAuth.auth.createUserWithEmailAndPassword(userData.emailId, userData.password).then((result) => { this.afAuth.auth
console.log(result.user); .createUserWithEmailAndPassword(userData.emailId, userData.password)
this.afAuth.auth.currentUser.sendEmailVerification(); .then(result => {
const currencyData = { console.log(result.user);
currId: '123', this.afAuth.auth.currentUser.sendEmailVerification();
currName: 'Australian dollar', const currencyData = {
symbol: 'A$' currId: '123',
}; currName: 'Australian dollar',
const custData = result.user; symbol: 'A$'
const postData: User = { };
uid: custData.uid, const custData = result.user;
status: true, const postData: User = {
profilePhoto: '', uid: custData.uid,
phoneVerified: false, status: true,
phone: userData.phone, profilePhoto: '',
name: userData.name, phoneVerified: false,
emailVerified: false, phone: userData.phone,
emailId: userData.emailId, name: userData.name,
currency: currencyData, emailVerified: false,
otp: otp.toString(), emailId: userData.emailId,
loginType: 0 currency: currencyData,
}; otp: otp.toString(),
this.userPostData = postData; loginType: 0
console.log(postData); };
this.afs.collection('customers').doc(custData.uid).set(postData).then(() => { this.userPostData = postData;
console.log('successs'); console.log(postData);
this.afs
.collection('customers')
.doc(custData.uid)
.set(postData)
.then(() => {
console.log('successs');
});
})
.catch(error => {
window.alert(error.message);
}); });
}).catch((error) => {
window.alert(error.message);
});
} }
createAddress(addressData: Address) { createAddress(addressData: Address) {
console.log(addressData); console.log(addressData);
console.log(this.userData.uid); console.log(this.userData.uid);
this.afs.collection('address').add({ this.afs
uid: this.userData.uid .collection('address')
}).then((docRef) => { .add({
console.log(docRef); uid: this.userData.uid
const addrData = { })
uid: this.userData.uid, .then(docRef => {
addressType: addressData.addressType, console.log(docRef);
area: addressData.area, const addrData = {
city: addressData.city, uid: this.userData.uid,
country: addressData.country, addressType: addressData.addressType,
district: addressData.district, area: addressData.area,
firstAddress: addressData.firstAddress, city: addressData.city,
landmark: addressData.landmark, country: addressData.country,
zip: addressData.zip, district: addressData.district,
secondAddress: addressData.secondAddress, firstAddress: addressData.firstAddress,
state: addressData.state, landmark: addressData.landmark,
addrId: docRef.id, zip: addressData.zip,
default: 1 secondAddress: addressData.secondAddress,
}; state: addressData.state,
const neworderId = docRef.id; addrId: docRef.id,
console.log(addrData); default: 1
this.afs.collection('address').doc(neworderId).set(addrData).then(() => { };
console.log('Address add Successfully'); const neworderId = docRef.id;
this.service.set('user', JSON.stringify(this.userData)); console.log(addrData);
this.router.navigateByUrl('home'); this.afs
document.body.scrollTop = document.documentElement.scrollTop = 0; .collection('address')
.doc(neworderId)
.set(addrData)
.then(() => {
console.log('Address add Successfully');
this.service.set('user', JSON.stringify(this.userData));
this.router.navigateByUrl('home');
document.body.scrollTop = document.documentElement.scrollTop = 0;
});
}); });
});
return false; return false;
} }
} }
/*displayName: "Adarsh Techware" /*displayName: "Adarsh Techware"
email: "[email protected]" email: "[email protected]"
emailVerified: true emailVerified: true
: "https://lh4.googleusercontent.com/-h0rs2pE-Azw/AAAAAAAAAAI/AAAAAAAAAAA/ACHi3rcjNtapRhKoG09NKifQsv_lQPC_2A/photo.jpg" : "https://lh4.googleusercontent.com/-h0rs2pE-Azw/AAAAAAAAAAI/AAAAAAAAAAA/ACHi3rcjNtapRhKoG09NKifQsv_lQPC_2A/photo.jpg"
: "vT498Fz6X0Z6l5l5iNn5hxfwz692" : "vT498Fz6X0Z6l5l5iNn5hxfwz692"
providerData: [Gl]*/ providerData: [Gl]*/
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