@@ -6,17 +6,19 @@ import { AppComponent } from './app.component'; | |||||
import { LoginComponent } from './login/login.component'; | import { LoginComponent } from './login/login.component'; | ||||
import { TabsComponent } from './tabs/tabs.component'; | import { TabsComponent } from './tabs/tabs.component'; | ||||
import { RegisterBusinessComponent } from './register-business/register-business.component'; | import { RegisterBusinessComponent } from './register-business/register-business.component'; | ||||
import { FormsModule } from '@angular/forms'; | |||||
@NgModule({ | @NgModule({ | ||||
declarations: [ | declarations: [ | ||||
AppComponent, | AppComponent, | ||||
LoginComponent, | LoginComponent, | ||||
TabsComponent, | TabsComponent, | ||||
// RegisterBusinessComponent | |||||
RegisterBusinessComponent | |||||
], | ], | ||||
imports: [ | imports: [ | ||||
BrowserModule, | BrowserModule, | ||||
AppRoutingModule | |||||
AppRoutingModule, | |||||
FormsModule | |||||
], | ], | ||||
providers: [], | providers: [], | ||||
bootstrap: [AppComponent] | bootstrap: [AppComponent] | ||||
@@ -1 +1,45 @@ | |||||
<p>register-business works!</p> | |||||
<header> | |||||
<h2> | |||||
Business Name Application | |||||
</h2> | |||||
</header> | |||||
<div class="search-input-container"> | |||||
<ng-container *ngIf="formState === 'CHECK_NAME' || formState === 'INIT_REGISTER'"> | |||||
<section class="search-input"> | |||||
<input type="text" placeholder="Enter your business name" [(ngModel)]="nameToCheck"> | |||||
<button (click)="checkName()" [disabled]="!nameToCheck"> Check </button> | |||||
</section> | |||||
<p class="description"> | |||||
Lorem, ipsum dolor sit amet consectetur adipisicing elit. Numquam nisi quia fuga nobis magnam accusamus recusandae vitae architecto fugit natus! Nostrum doloremque id laborum sequi magni ducimus perferendis quam aspernatur? | |||||
</p> | |||||
<section class="form-message" [ngClass]="{'error' : error.isError}" *ngIf="error"> | |||||
<h5 *ngIf="error.isError"> Sorry! </h5> | |||||
<h5 *ngIf="!error.isError"> Yay! </h5> | |||||
<p> {{ error.message }} </p> | |||||
</section> | |||||
<button class="proceed-button" *ngIf="formState === 'INIT_REGISTER'"> | |||||
Proceed | |||||
</button> | |||||
</ng-container> | |||||
<section class="confirmation-box" *ngIf="formState === 'CONFIRM_INIT'"> | |||||
<h5> {{ nameToCheck }} </h5> | |||||
<p class="description"> | |||||
<input type="checkbox"> | |||||
Lorem, ipsum dolor sit amet consectetur adipisicing elit. At accusamus harum non dolores qui quaerat itaque architecto tenetur maiores dolor! Dolor aspernatur nemo autem et iusto deserunt officiis consectetur laboriosam! | |||||
</p> | |||||
<div class="actions"> | |||||
<button> | |||||
Cancel | |||||
</button> | |||||
<button> | |||||
Proceed | |||||
</button> | |||||
</div> | |||||
</section> | |||||
</div> |
@@ -0,0 +1,164 @@ | |||||
header { | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: flex-start; | |||||
padding: 0 2rem; | |||||
&::after { | |||||
content: ''; | |||||
display: block; | |||||
flex-grow: 1; | |||||
height: 2px; | |||||
background-color: var(--border-grey); | |||||
opacity: 0.7; | |||||
margin-left: 2rem; | |||||
} | |||||
h2 { | |||||
font-size: 2.4rem; | |||||
color: var(--primary); | |||||
font-weight: 400; | |||||
} | |||||
} | |||||
.search-input-container { | |||||
width: 60%; | |||||
margin: 0 auto; | |||||
text-align: center; | |||||
.search-input { | |||||
display: flex; | |||||
align-items: center; | |||||
justify-content: flex-start; | |||||
background-color: white; | |||||
border-radius: 4rem; | |||||
height: 5.5rem; | |||||
border: 1px solid var(--border-grey); | |||||
width: 80%; | |||||
margin: 4rem auto 3rem; | |||||
overflow: hidden; | |||||
input { | |||||
border: none; | |||||
background-color: transparent; | |||||
padding: 0 3rem; | |||||
font-size: 1.5rem; | |||||
color: var(--dark-grey); | |||||
letter-spacing: 0.5px; | |||||
flex-grow: 1; | |||||
&::placeholder { | |||||
font-weight: 300; | |||||
} | |||||
} | |||||
button { | |||||
height: 100%; | |||||
border: none; | |||||
background-color: var(--highlight); | |||||
padding: 0 4rem; | |||||
color: white; | |||||
font-size: 1.6rem; | |||||
letter-spacing: 0.5px; | |||||
border-radius: 4rem; | |||||
transition: opacity 0.3s; | |||||
&:disabled { | |||||
opacity: 0.5; | |||||
} | |||||
} | |||||
} | |||||
.description { | |||||
width: 75%; | |||||
margin: 0 auto; | |||||
text-align: left; | |||||
font-size: 1.2rem; | |||||
color: var(--dark-grey); | |||||
opacity: 0.6; | |||||
letter-spacing: 0.5px; | |||||
line-height: 1.4; | |||||
font-weight: 300; | |||||
} | |||||
.form-message { | |||||
margin: 6rem auto 2rem; | |||||
line-height: 1.6; | |||||
&.error { | |||||
p { | |||||
color: var(--error); | |||||
} | |||||
} | |||||
h5 { | |||||
font-size: 1.8rem; | |||||
color: var(--dark-grey); | |||||
filter: brightness(80%); | |||||
font-weight: 500; | |||||
margin-bottom: 2rem; | |||||
} | |||||
p { | |||||
font-size: 1.8rem; | |||||
font-weight: 400; | |||||
color: var(--success); | |||||
} | |||||
} | |||||
.proceed-button { | |||||
border: none; | |||||
background-color: var(--highlight); | |||||
padding: 0 4rem; | |||||
color: white; | |||||
font-size: 1.6rem; | |||||
letter-spacing: 0.5px; | |||||
border-radius: 4rem; | |||||
height: 5rem; | |||||
} | |||||
.confirmation-box { | |||||
h5 { | |||||
font-size: 1.8rem; | |||||
color: var(--dark-grey); | |||||
filter: brightness(80%); | |||||
font-weight: 500; | |||||
margin: 4rem 0; | |||||
} | |||||
.description { | |||||
width: 50%; | |||||
display: flex; | |||||
align-items: flex-start; | |||||
justify-content: flex-start; | |||||
input { | |||||
margin: 5px 10px; | |||||
} | |||||
} | |||||
.actions { | |||||
margin-top: 2rem; | |||||
button { | |||||
border: none; | |||||
background-color: var(--highlight); | |||||
padding: 0 4rem; | |||||
color: white; | |||||
font-size: 1.6rem; | |||||
letter-spacing: 0.5px; | |||||
border-radius: 4rem; | |||||
height: 5rem; | |||||
vertical-align: middle; | |||||
&:first-child { | |||||
background-color: var(--border-grey); | |||||
color: var(--dark-grey); | |||||
margin-right: 20px; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -1,15 +1,36 @@ | |||||
import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
@Component({ | @Component({ | ||||
selector: 'app-register-business', | |||||
templateUrl: './register-business.component.html', | |||||
styleUrls: ['./register-business.component.scss'] | |||||
selector: 'app-register-business', | |||||
templateUrl: './register-business.component.html', | |||||
styleUrls: ['./register-business.component.scss'] | |||||
}) | }) | ||||
export class RegisterBusinessComponent implements OnInit { | export class RegisterBusinessComponent implements OnInit { | ||||
formState: 'CHECK_NAME' | 'INIT_REGISTER' | 'CONFIRM_INIT' | undefined = 'CONFIRM_INIT'; | |||||
nameToCheck: string = 'JK Enterprises'; | |||||
error: { | |||||
message: string, | |||||
isError: boolean, | |||||
} | undefined; | |||||
constructor() { } | |||||
constructor() { } | |||||
ngOnInit(): void { | |||||
} | |||||
ngOnInit(): void { | |||||
} | |||||
checkName() { | |||||
if (this.nameToCheck === 'JK Enterprises') { | |||||
this.error = { | |||||
message: 'JK Enterprises is unavailable', | |||||
isError: true | |||||
}; | |||||
} else { | |||||
this.formState = 'INIT_REGISTER'; | |||||
this.error = { | |||||
message: this.nameToCheck + ' is available', | |||||
isError: false | |||||
}; | |||||
} | |||||
} | |||||
} | } |
@@ -21,4 +21,6 @@ button, a { | |||||
--teal: #1e8bbc; | --teal: #1e8bbc; | ||||
--dark-grey: #7a7a7a; | --dark-grey: #7a7a7a; | ||||
--border-grey: #e8e8e8; | --border-grey: #e8e8e8; | ||||
--error: #d07a7a; | |||||
--success: #88b749; | |||||
} | } |