Closed Alucard163 closed 5 months ago
(click)="userForm.valid ? onDialogCloseClick(userForm.value) : null" лучше просто задизейблить кнопку, либо делать уже в самом методе: if(userForm.invalid) return;
this.userForm = this.formBuilder.group({ лучше проинициализировать сразу, чем писать в конструкторе
this.user?.name || '' вместо этого легче один раз сделать this.userForm.patchValue()
UPD: к тому же ты и так его делаешь, дважды заполняешь форму значениями. но это для patchValue абсолютно лишнее: const modifiedUser = {...this.user};
this.userForm.controls[field] убиваешь типы (обращение через [''] возвращает тип any) для форм придумали userForm.get()
@Output('delete') deleteCard кажется устаревшая и не лучшая практика присваивать другое имя событию (delete)
public usersListFacade = inject(UsersListFacade); public users$ = this.usersListFacade.users$;
это тоже может быть readonly и users$ может вообще не быть, можно обратиться сразу к usersListFacade.users$
data-access относится к архитектуре nx
методы в UsersApiService можно назвать без постфикса Users, т.к. они априори относятся к объекту USERSApiService
private localStorageKey = LOCAL_STORAGE_USERS_KEY; private parseJSON = parseJSON; это лишнее (переменные)
shared должен быть один по всему приложению на верхнем уровне (уровне app.comp)
некорректное название файла localStorageHelpers.ts
было бы круто если бы локал сторадж сервис сам занимался парсингом и стрингифаем данных
export const LOCAL_STORAGE_USERS_KEY = 'users'; лучше делать enum:
export enum StorageKey = {
USERS = 'users'
}
Из-за того что ты делаешь нереальную в реальной жизни задачу - синхронизируешь ngrx с localstorage - много говнокода и DRY с этим связанного. Советую избавиться от синхронизации со storage, учесть замечания но больше для себя. Пишешь не плохо, я считаю стоит поправить для себя, быстро на дейлике пробежимся глазами и пойдёшь дальше. ПРИНЯТО
Переписал джун задание на ngrx https://github.com/Alucard163/typicode-users-angular-app