浏览代码

Name check form

master
kj1352 4 年前
父节点
当前提交
40285b706e
共有 5 个文件被更改,包括 242 次插入9 次删除
  1. +4
    -2
      src/app/app.module.ts
  2. +45
    -1
      src/app/register-business/register-business.component.html
  3. +164
    -0
      src/app/register-business/register-business.component.scss
  4. +27
    -6
      src/app/register-business/register-business.component.ts
  5. +2
    -0
      src/styles.scss

+ 4
- 2
src/app/app.module.ts 查看文件

@@ -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]


+ 45
- 1
src/app/register-business/register-business.component.html 查看文件

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

+ 164
- 0
src/app/register-business/register-business.component.scss 查看文件

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

+ 27
- 6
src/app/register-business/register-business.component.ts 查看文件

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


} }

+ 2
- 0
src/styles.scss 查看文件

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

正在加载...
取消
保存