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