profiles => format clean archi
This commit is contained in:
@@ -1,73 +1,72 @@
|
||||
import {Component, inject, Input, OnInit, output} from '@angular/core';
|
||||
import {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from "@angular/forms";
|
||||
import {User} from "@app/shared/models/user";
|
||||
import {NgClass} from "@angular/common";
|
||||
import {UserService} from "@app/core/services/user/user.service";
|
||||
import {AuthService} from "@app/core/services/authentication/auth.service";
|
||||
import {UntilDestroy} from "@ngneat/until-destroy";
|
||||
import {ToastrService} from "ngx-toastr";
|
||||
|
||||
@Component({
|
||||
selector: 'app-user-form',
|
||||
standalone: true,
|
||||
imports: [
|
||||
ReactiveFormsModule,
|
||||
NgClass
|
||||
],
|
||||
templateUrl: './user-form.component.html',
|
||||
styleUrl: './user-form.component.scss'
|
||||
})
|
||||
@UntilDestroy()
|
||||
export class UserFormComponent implements OnInit{
|
||||
|
||||
private readonly toastrService = inject(ToastrService);
|
||||
|
||||
@Input({required: true}) user:User | undefined = undefined;
|
||||
onFormSubmitted = output<any>();
|
||||
|
||||
private userService = inject(UserService);
|
||||
private authService = inject(AuthService);
|
||||
|
||||
private fb = inject(FormBuilder);
|
||||
protected userForm! : FormGroup
|
||||
|
||||
|
||||
ngOnInit(): void {
|
||||
this.userForm = this.fb.group({
|
||||
firstname: new FormControl(this.user?.name!.split(' ').slice(0, -1).join(' ') ?? '',[Validators.required]),
|
||||
name: new FormControl(this.user?.name!.split(' ').slice(-1)[0] ?? '',[Validators.required]),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
onUserFormSubmit(){
|
||||
if (this.userForm.invalid){
|
||||
return;
|
||||
}
|
||||
|
||||
const data = {
|
||||
username: this.userForm.getRawValue()!.firstname!.split(' ')[0]+this.userForm.getRawValue()!.name!,
|
||||
name : this.userForm.getRawValue()!.firstname!+" "+this.userForm.getRawValue()!.name!,
|
||||
} as User;
|
||||
|
||||
this.userService.updateUser(this.user?.id!,data).subscribe(
|
||||
value => {
|
||||
this.authService.updateUser();
|
||||
|
||||
this.toastrService.success(
|
||||
`Vos informations personnelles ont bien été modifier !`,
|
||||
`Mise à jour`,
|
||||
{
|
||||
closeButton: true,
|
||||
progressAnimation: 'decreasing',
|
||||
progressBar: true
|
||||
}
|
||||
);
|
||||
}
|
||||
)
|
||||
|
||||
this.onFormSubmitted.emit(data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
import { Component, inject, Input, OnInit, output } from '@angular/core';
|
||||
import {
|
||||
FormBuilder,
|
||||
FormControl,
|
||||
FormGroup,
|
||||
ReactiveFormsModule,
|
||||
Validators,
|
||||
} from '@angular/forms';
|
||||
import { User } from '@app/shared/models/user';
|
||||
import { NgClass } from '@angular/common';
|
||||
import { UserService } from '@app/core/services/user/user.service';
|
||||
import { AuthService } from '@app/core/services/authentication/auth.service';
|
||||
import { UntilDestroy } from '@ngneat/until-destroy';
|
||||
import { ToastrService } from 'ngx-toastr';
|
||||
|
||||
@Component({
|
||||
selector: 'app-user-form',
|
||||
standalone: true,
|
||||
imports: [ReactiveFormsModule, NgClass],
|
||||
templateUrl: './user-form.component.html',
|
||||
styleUrl: './user-form.component.scss',
|
||||
})
|
||||
@UntilDestroy()
|
||||
export class UserFormComponent implements OnInit {
|
||||
private readonly toastrService = inject(ToastrService);
|
||||
|
||||
@Input({ required: true }) user: User | undefined = undefined;
|
||||
onFormSubmitted = output<any>();
|
||||
|
||||
private userService = inject(UserService);
|
||||
private authService = inject(AuthService);
|
||||
|
||||
private fb = inject(FormBuilder);
|
||||
protected userForm!: FormGroup;
|
||||
|
||||
ngOnInit(): void {
|
||||
this.userForm = this.fb.group({
|
||||
firstname: new FormControl(this.user?.name!.split(' ').slice(0, -1).join(' ') ?? '', [
|
||||
Validators.required,
|
||||
]),
|
||||
name: new FormControl(this.user?.name!.split(' ').slice(-1)[0] ?? '', [Validators.required]),
|
||||
});
|
||||
}
|
||||
|
||||
onUserFormSubmit() {
|
||||
if (this.userForm.invalid) {
|
||||
return;
|
||||
}
|
||||
|
||||
const data = {
|
||||
username:
|
||||
this.userForm.getRawValue()!.firstname!.split(' ')[0] + this.userForm.getRawValue()!.name!,
|
||||
name: this.userForm.getRawValue()!.firstname! + ' ' + this.userForm.getRawValue()!.name!,
|
||||
} as User;
|
||||
|
||||
this.userService.updateUser(this.user?.id!, data).subscribe((value) => {
|
||||
this.authService.updateUser();
|
||||
|
||||
this.toastrService.success(
|
||||
`Vos informations personnelles ont bien été modifier !`,
|
||||
`Mise à jour`,
|
||||
{
|
||||
closeButton: true,
|
||||
progressAnimation: 'decreasing',
|
||||
progressBar: true,
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
this.onFormSubmitted.emit(data);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user