Added basic user profile component

This commit is contained in:
Isaac Grynsztein
2020-04-26 17:33:29 -04:00
parent e6ea2238f8
commit a7c810136b
7 changed files with 90 additions and 1 deletions

View File

@@ -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>&nbsp;{{postsService.user.name}}
</div>
<div>
<strong><ng-container i18n="UID">UID:</ng-container></strong>&nbsp;{{postsService.user.uid}}
</div>
<div>
<strong><ng-container i18n="Created">Created:</ng-container></strong>&nbsp;{{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>

View File

@@ -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();
});
});

View File

@@ -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();
}
}