Implementaiton of h1, h2, h3 and link button on publication editor.

This commit is contained in:
Florian THIERRY
2024-08-30 18:01:29 +02:00
parent 51af25666d
commit b84ba15f4c
3 changed files with 132 additions and 36 deletions

View File

@@ -59,7 +59,6 @@ export class PublicationEditionComponent implements OnInit, OnDestroy {
['title', 'description', 'text'].forEach(fieldName => {
const fieldSubscription = this.publicationEditionForm.controls[fieldName].valueChanges
.pipe(
debounceTime(300),
map(value => value?.length ? value as string : '')
)
.subscribe(fieldValue => {
@@ -76,18 +75,17 @@ export class PublicationEditionComponent implements OnInit, OnDestroy {
default:
break;
}
this.publicationEditionService
});
this.subscriptions.push(fieldSubscription);
});
const publicationSubscription = this.publicationEditionService.publication$.subscribe(publication => {
this.publication = publication;
this.publicationEditionForm.controls['title'].setValue(publication.title, { emitEvent: false });
this.publicationEditionForm.controls['description'].setValue(publication.description, { emitEvent: false });
this.publicationEditionForm.controls['text'].setValue(publication.text, { emitEvent: false });
this.publicationEditionForm.controls['illustrationId'].setValue(publication.illustrationId, { emitEvent: false });
this.publicationEditionForm.controls['categoryId'].setValue(publication.categoryId, { emitEvent: false });
const publicationSubscription = this.publicationEditionService.state$.subscribe(state => {
this.publication = state.publication;
this.publicationEditionForm.controls['title'].setValue(this.publication.title, { emitEvent: false });
this.publicationEditionForm.controls['description'].setValue(this.publication.description, { emitEvent: false });
this.publicationEditionForm.controls['text'].setValue(this.publication.text, { emitEvent: false });
this.publicationEditionForm.controls['illustrationId'].setValue(this.publication.illustrationId, { emitEvent: false });
this.publicationEditionForm.controls['categoryId'].setValue(this.publication.categoryId, { emitEvent: false });
});
this.subscriptions.push(publicationSubscription);
@@ -102,6 +100,14 @@ export class PublicationEditionComponent implements OnInit, OnDestroy {
this.location.back();
}
insertTitle(titleNumber: number): void {
this.publicationEditionService.insertTitle(titleNumber);
}
insertLink(): void {
this.publicationEditionService.insertLink();
}
save(): void {
this.publicationEditionService.save();
}
@@ -109,4 +115,18 @@ export class PublicationEditionComponent implements OnInit, OnDestroy {
displayPictureSectionDialog(): void {
this.publicationEditionService.displayPictureSectionDialog();
}
updateCursorPosition(event: KeyboardEvent | MouseEvent): void {
if (event.target) {
const textarea = event.target as HTMLTextAreaElement;
const positionStart = textarea.selectionStart;
const positionEnd = textarea.selectionEnd;
const selectedCharacterCount = positionEnd - positionStart;
console.log(`cursor position updated: [${positionStart}, ${positionEnd}] (${selectedCharacterCount})`);
this.publicationEditionService.editCursorPosition(positionStart, positionEnd);
}
}
}