Skip to content

Commit 82072e7

Browse files
committed
Angular Forms Course
1 parent 54ea872 commit 82072e7

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

src/app/create-course/create-course-step-1/create-course-step-1.component.ts

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
import { Component, OnInit } from '@angular/core';
1+
import {Component, OnInit} from '@angular/core';
22
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
33
import {createPasswordStrengthValidator} from '../../validators/password-strength.validator';
44
import {createPromoRangeValidator} from '../../validators/date-range.validator';
55
import {CoursesService} from '../../services/courses.service';
66
import {Observable} from 'rxjs';
77
import {courseTitleValidator} from '../../validators/course-title.validator';
8+
import {filter} from 'rxjs/operators';
89

910
@Component({
1011
selector: 'create-course-step-1',
@@ -21,18 +22,18 @@ export class CreateCourseStep1Component implements OnInit {
2122
constructor(private fb: FormBuilder, private courses: CoursesService) {
2223
this.form = fb.group({
2324
title: [
24-
"", {
25+
'', {
2526
validators: [Validators.required, Validators.minLength(3), Validators.maxLength(60)],
2627
asyncValidators: [courseTitleValidator(this.courses)],
27-
updateOn: "blur"
28+
updateOn: 'blur'
2829
}
2930
],
30-
adminPassword: ["", [Validators.required, Validators.minLength(8), createPasswordStrengthValidator()]],
31-
supportEmail: ["", [Validators.required, Validators.email]],
32-
category: ["BEGINNER", Validators.required],
31+
adminPassword: ['', [Validators.required, Validators.minLength(8), createPasswordStrengthValidator()]],
32+
supportEmail: ['', [Validators.required, Validators.email]],
33+
category: ['BEGINNER', Validators.required],
3334
downloadsAllowed: [false, Validators.requiredTrue],
3435
releasedAt: [new Date(), Validators.required],
35-
longDescription: ["",[Validators.required, Validators.minLength(3)]],
36+
longDescription: ['', [Validators.required, Validators.minLength(3)]],
3637
address: [null]
3738
});
3839
}
@@ -41,6 +42,24 @@ export class CreateCourseStep1Component implements OnInit {
4142

4243
this.courseCategories$ = this.courses.findCourseCategories();
4344

45+
const draftValue = localStorage.getItem("STEP_1");
46+
47+
if (draftValue) {
48+
this.form.setValue(JSON.parse(draftValue));
49+
}
50+
51+
this.form.valueChanges
52+
.pipe(
53+
filter(val => this.form.valid)
54+
)
55+
.subscribe(
56+
val => {
57+
58+
localStorage.setItem("STEP_1", JSON.stringify(val));
59+
60+
}
61+
);
62+
4463
}
4564

4665
}

0 commit comments

Comments
 (0)