changed to a non nx monorepo
This commit is contained in:
59
src/app/create-deck-modal/create-deck-modal.component.ts
Normal file
59
src/app/create-deck-modal/create-deck-modal.component.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { AfterViewInit, Component, ElementRef, EventEmitter, Output, ViewChild } from '@angular/core';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { Modal } from 'flowbite';
|
||||
import { DeckService } from '../services/deck.service';
|
||||
import { PopoverService } from '../services/popover.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-create-deck-modal',
|
||||
templateUrl: './create-deck-modal.component.html',
|
||||
standalone: true,
|
||||
imports: [CommonModule, FormsModule],
|
||||
})
|
||||
export class CreateDeckModalComponent implements AfterViewInit {
|
||||
@Output() deckCreated = new EventEmitter<void>();
|
||||
@ViewChild('createDeckModal') modalElement!: ElementRef;
|
||||
deckName: string = '';
|
||||
modal!: Modal;
|
||||
|
||||
constructor(private deckService: DeckService, private popoverService: PopoverService) {}
|
||||
|
||||
ngAfterViewInit(): void {
|
||||
this.modal = new Modal(this.modalElement.nativeElement);
|
||||
}
|
||||
|
||||
open(): void {
|
||||
this.modal.show();
|
||||
}
|
||||
|
||||
createDeck(event: Event): void {
|
||||
event.preventDefault();
|
||||
if (this.deckName.trim() === '') {
|
||||
this.popoverService.show({
|
||||
title: 'Information',
|
||||
message: 'Please enter a deck name !',
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
this.deckService.createDeck(this.deckName).subscribe({
|
||||
next: () => {
|
||||
this.deckName = '';
|
||||
this.deckCreated.emit();
|
||||
this.modal.hide();
|
||||
},
|
||||
error: err => {
|
||||
console.error('Error creating deck', err);
|
||||
this.popoverService.show({
|
||||
title: 'Error',
|
||||
message: 'Error creating deck.',
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
closeModal(): void {
|
||||
this.modal.hide();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user