add new changes

This commit is contained in:
AD2025
2025-11-20 00:39:00 +02:00
parent 37b4d565b1
commit b2c564225e
12 changed files with 2734 additions and 34 deletions

View File

@@ -14,7 +14,6 @@ import { MatRadioModule } from '@angular/material/radio';
import { MatDividerModule } from '@angular/material/divider';
import { MatTooltipModule } from '@angular/material/tooltip';
import { COMMA, ENTER } from '@angular/cdk/keycodes';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { AdminService } from '../../../core/services/admin.service';
import { CategoryService } from '../../../core/services/category.service';
import { Question, QuestionFormData } from '../../../core/models/question.model';
@@ -123,23 +122,22 @@ export class AdminQuestionFormComponent implements OnInit {
this.categoryService.getCategories().subscribe();
// Check if we're in edit mode
this.route.params
.pipe(takeUntilDestroyed())
.subscribe(params => {
const id = params['id'];
if (id) {
this.route.params.subscribe(params => {
const id = params['id'];
if (id) {
// Defer signal updates to avoid ExpressionChangedAfterItHasBeenCheckedError
setTimeout(() => {
this.isEditMode.set(true);
this.questionId.set(id);
this.loadQuestion(id);
}
});
});
}
});
// Watch for question type changes
this.questionForm.get('questionType')?.valueChanges
.pipe(takeUntilDestroyed())
.subscribe((type: QuestionType) => {
this.onQuestionTypeChange(type);
});
this.questionForm.get('questionType')?.valueChanges.subscribe((type: QuestionType) => {
this.onQuestionTypeChange(type);
});
}
/**
@@ -148,9 +146,7 @@ export class AdminQuestionFormComponent implements OnInit {
private loadQuestion(id: string): void {
this.isLoadingQuestion.set(true);
this.adminService.getQuestion(id)
.pipe(takeUntilDestroyed())
.subscribe({
this.adminService.getQuestion(id).subscribe({
next: (response) => {
this.isLoadingQuestion.set(false);
this.populateForm(response.data);
@@ -391,9 +387,7 @@ export class AdminQuestionFormComponent implements OnInit {
? this.adminService.updateQuestion(this.questionId()!, questionData)
: this.adminService.createQuestion(questionData);
serviceCall
.pipe(takeUntilDestroyed())
.subscribe({
serviceCall.subscribe({
next: (response) => {
this.isSubmitting.set(false);
this.router.navigate(['/admin/questions']);