diff --git a/src/components/delete-modal/delete-modal.component.css b/src/components/delete-modal/delete-modal.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/components/delete-modal/delete-modal.component.html b/src/components/delete-modal/delete-modal.component.html new file mode 100644 index 0000000..1942fd6 --- /dev/null +++ b/src/components/delete-modal/delete-modal.component.html @@ -0,0 +1,25 @@ + + + diff --git a/src/components/delete-modal/delete-modal.component.spec.ts b/src/components/delete-modal/delete-modal.component.spec.ts new file mode 100644 index 0000000..7c29c0f --- /dev/null +++ b/src/components/delete-modal/delete-modal.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { DeleteModalComponent } from './delete-modal.component'; + +describe('DeleteModalComponent', () => { + let component: DeleteModalComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [DeleteModalComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(DeleteModalComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/components/delete-modal/delete-modal.component.ts b/src/components/delete-modal/delete-modal.component.ts new file mode 100644 index 0000000..759d264 --- /dev/null +++ b/src/components/delete-modal/delete-modal.component.ts @@ -0,0 +1,52 @@ +import {Component, inject} from '@angular/core'; +import {NgbActiveModal, NgbCollapse} from '@ng-bootstrap/ng-bootstrap'; +import { + FormControl, + FormGroup, + FormsModule, + ReactiveFormsModule, + Validators +} from '@angular/forms'; + +@Component({ + selector: 'app-delete-modal', + imports: [ + NgbCollapse, + FormsModule, + ReactiveFormsModule + ], + templateUrl: './delete-modal.component.html', + styleUrl: './delete-modal.component.css' +}) +export class DeleteModalComponent { + protected activeModal: NgbActiveModal = inject(NgbActiveModal) + showName: string = "" + formHidden: boolean = true; + buttonDisabled: boolean = false; + confirmationForm: FormGroup + + constructor() { + this.confirmationForm = new FormGroup({ + name: new FormControl("",Validators.required) + }) + } + + + deletePressed() { + if (this.formHidden) { + const regex = new RegExp(this.showName) + const control = new FormControl("", [Validators.required, Validators.pattern(regex)]) + this.confirmationForm.setControl("name", control) + this.formHidden = false; + this.buttonDisabled = true; + } else { + this.formSubmitted() + } + } + + formSubmitted() { + if (this.confirmationForm.valid) { + this.activeModal.close(true) + } + } +}