Added basic user profile component
parent
e6ea2238f8
commit
a7c810136b
@ -0,0 +1,23 @@
|
||||
<h4 mat-dialog-title i18n="User profile dialog title">Your Profile</h4>
|
||||
|
||||
<mat-dialog-content>
|
||||
<div *ngIf="postsService.isLoggedIn && postsService.user">
|
||||
<div>
|
||||
<strong><ng-container i18n="Name">Name:</ng-container></strong> {{postsService.user.name}}
|
||||
</div>
|
||||
<div>
|
||||
<strong><ng-container i18n="UID">UID:</ng-container></strong> {{postsService.user.uid}}
|
||||
</div>
|
||||
<div>
|
||||
<strong><ng-container i18n="Created">Created:</ng-container></strong> {{postsService.user.created ? postsService.user.created : 'N/A'}}
|
||||
</div>
|
||||
<div style="margin-top: 10px;">
|
||||
<button (click)="logoutClicked()" mat-flat-button color="warn"><ng-container i18n="Logout">Logout</ng-container></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div *ngIf="!postsService.isLoggedIn || !postsService.user">
|
||||
<h5><mat-icon>warn</mat-icon><ng-container i18n="Not logged in notification">You are not logged in.</ng-container></h5>
|
||||
<button (click)="loginClicked()" mat-raised-button color="primary"><ng-container i18n="Login">Login</ng-container></button>
|
||||
</div>
|
||||
</mat-dialog-content>
|
||||
@ -0,0 +1,25 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { UserProfileDialogComponent } from './user-profile-dialog.component';
|
||||
|
||||
describe('UserProfileDialogComponent', () => {
|
||||
let component: UserProfileDialogComponent;
|
||||
let fixture: ComponentFixture<UserProfileDialogComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ UserProfileDialogComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(UserProfileDialogComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,28 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { PostsService } from 'app/posts.services';
|
||||
import { Router } from '@angular/router';
|
||||
import { MatDialogRef } from '@angular/material/dialog';
|
||||
|
||||
@Component({
|
||||
selector: 'app-user-profile-dialog',
|
||||
templateUrl: './user-profile-dialog.component.html',
|
||||
styleUrls: ['./user-profile-dialog.component.scss']
|
||||
})
|
||||
export class UserProfileDialogComponent implements OnInit {
|
||||
|
||||
constructor(public postsService: PostsService, private router: Router, public dialogRef: MatDialogRef<UserProfileDialogComponent>) { }
|
||||
|
||||
ngOnInit(): void {
|
||||
}
|
||||
|
||||
loginClicked() {
|
||||
this.router.navigate(['/login']);
|
||||
this.dialogRef.close();
|
||||
}
|
||||
|
||||
logoutClicked() {
|
||||
this.postsService.logout();
|
||||
this.dialogRef.close();
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue