Commit 4b799357 authored by Shaphen's avatar Shaphen

Add and style contact Us form

parent e5f38b8b
......@@ -21,9 +21,9 @@ export class AccountComponent implements OnInit {
ngOnInit(): void {
this.userForm = this.formBuilder.group({
firstName: ['', [Validators.required,Validators.pattern('^[a-zA-Z]+$')]],
lastName: ['',[ Validators.required,Validators.pattern('^[a-zA-Z]+$')]],
email: ['', [ Validators.required,Validators.pattern('[a-zA-Z0-9.-_]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}')]]
firstName: ['', [Validators.required]],
lastName: ['',[ Validators.required, Validators.pattern('^[a-zA-Z]+$')]],
email: ['', [ Validators.required, Validators.pattern('[a-zA-Z0-9.-_]{1,}@[a-zA-Z.-]{2,}[.]{1}[a-zA-Z]{2,}')]]
});
}
......
......@@ -5,13 +5,15 @@ import { FranceComponent } from './france/france.component';
import { GreeceComponent } from './greece/greece.component';
import { SpainComponent } from './spain/spain.component';
import { AccountComponent } from './account/account.component';
import { ContactUsComponent } from './contact-us/contact-us.component';
const routes: Routes = [
{ path:'england', component: EnglandComponent },
{ path:'france', component: FranceComponent },
{ path:'greece', component: GreeceComponent },
{ path:'spain', component: SpainComponent },
{path:'account', component: AccountComponent}
{ path:'account', component: AccountComponent },
{ path:'contact-us', component: ContactUsComponent }
];
@NgModule({
......
......@@ -13,6 +13,7 @@ import { SpainComponent } from './spain/spain.component';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { IvyCarouselModule } from 'angular-responsive-carousel';
import { AccountComponent } from './account/account.component';
import { ContactUsComponent } from './contact-us/contact-us.component';
@NgModule({
......@@ -24,7 +25,8 @@ import { AccountComponent } from './account/account.component';
FranceComponent,
GreeceComponent,
SpainComponent,
AccountComponent
AccountComponent,
ContactUsComponent
],
imports: [
BrowserModule,
......
.contact-us-container {
height: 80vh;
display: flex;
justify-content: center;
margin-top: 50px;
}
.message-form {
display: inline-block;
text-align: center;
}
.message-form-input {
width: 600px;
border: 1px solid #cccccc;
border-radius: 5px;
padding: 5px;
outline: none;
margin-top: 10px;
}
.textarea {
height: 120px;
}
.submit-button {
border: 1px solid #ccc;
border-radius: 5px;
padding: 10px 274px;
margin-top: 5px;
}
.ng-invalid.ng-touched:not(form) {
border: 2px solid red;
}
.contact-error-message {
margin: 0px 2px 0px;
color: red;
}
\ No newline at end of file
<div class="contact-us-container">
<form [formGroup]="contactForm" (ngSubmit)="onSubmit()">
<h1>Contact Us</h1>
<div class="message-input-container">
<div>
<input type="text" formControlName="firstName" class="message-form-input input" placeholder="First name">
</div>
<p class="contact-error-message" *ngIf="contactForm.get('firstName').errors && contactForm.get('firstName').hasError('required') && contactForm.get('firstName').touched">
First Name is Required!
</p>
<div>
<input type="text" formControlName="lastName" class="message-form-input input " placeholder="Last name">
</div>
<p class="contact-error-message" *ngIf="contactForm.get('lastName').errors && contactForm.get('lastName').hasError('required') && contactForm.get('lastName').touched">
Last Name is Required!
</p>
<div>
<input type="email" formControlName="email" class="message-form-input input" placeholder="Email">
</div>
<p class="contact-error-message" *ngIf="contactForm.get('email').errors && contactForm.get('email').hasError('required') && contactForm.get('email').touched">
Email is Required!
</p>
</div>
<textarea type="textarea" wrap="hard" class="message-form-input textarea" placeholder="What can we help you with?"></textarea>
<div>
<button class="submit-button" type="submit">Submit</button>
</div>
</form>
</div>
/* tslint:disable:no-unused-variable */
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';
import { ContactUsComponent } from './contact-us.component';
describe('ContactUsComponent', () => {
let component: ContactUsComponent;
let fixture: ComponentFixture<ContactUsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ContactUsComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ContactUsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';
import { NgForm } from '@angular/forms';
@Component({
selector: 'app-contact-us',
templateUrl: './contact-us.component.html',
styleUrls: ['./contact-us.component.css']
})
export class ContactUsComponent implements OnInit {
public contactForm;
public showMessage: boolean = false;
public invalidEntry = "Invalid Entry";
constructor(private formBuilder: FormBuilder) { }
ngOnInit() {
this.contactForm = this.formBuilder.group({
firstName: ['', [Validators.required ]],
lastName: ['',[ Validators.required ]],
email: ['', [ Validators.required ]],
});
}
onSubmit(){
if (this.contactForm.valid) {
alert("You message was successfully sent!")
} else {
alert("Big no, pls fix")
}
}
get firstName() { return this.contactForm.firstName }
get lastName() { return this.lastName }
get email() { return this.email }
}
<div class='footer'>
<ul>
<li>About Us</li>
<li>Careers</li>
<li>Contact Us</li>
<li id="no-reaction">About Us</li>
<li id="no-reaction">Careers</li>
<li [routerLink]="['/contact-us']">Contact Us</li>
</ul>
</div>
\ No newline at end of file
......@@ -26,17 +26,6 @@
width: 100%;
}
::ng-deep .carousel-item {
display: block !important;
position: absolute;
transform: translateY(100%);
opacity: 0;
transition:all 1s;
}
::ng-deep .carousel-item.active {
position: relative;
transform: translateY(0);
opacity: 1;
top: 0;
#no-reaction{
cursor: default;
}
\ No newline at end of file
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