2023.02.24.(금)
TIL Today I Learned
해당 깃허브
Good: 중간 발표는 오후 2시로 그 전에 기능 구현과 디자인을 밤을 새서 했다. 발표 마치고 팀원끼리 모여서 중간 발표 피드백 받아드리고 다음주에 할 일을 정했다. 완벽했다.
Bad: 아쉬운 점이 없다.
[ 최종 프로젝트 오류]
문제점1: 프로필 수정 모달 CSS에서 닉네임 변경 토글과 비밀번호 수정 토글이 칸에 따라 두개가 나뉘어져야하는데 같은 위치에 있다.
해결점1: position: absolute;
없앴다.
문제점2: 닉네임만 고치고 싶으면 닉네임 토글만 열어서 고치고 싶다. 하나라도 고쳐지지 않으면 회원정보 변경이 되지 않는다.
해결점2: else if를 계속하면 된다.
//수정 후
// 전체 프로필 수정을 완료하기
const onSubmit = async (data: SaveForm) => {
if (data.newPassword !== data.confirm) {
alert('비밀번호가 일치하지 않습니다.');
return;
}
const imgRef = ref(
storageService,
`${authService.currentUser?.uid}${uuidv4()}`
);
const imgDataUrl = localStorage.getItem('imgURL');
let downloadUrl;
if (imgDataUrl) {
const response = await uploadString(imgRef, imgDataUrl, 'data_url');
downloadUrl = await getDownloadURL(response.ref);
}
editUser = {
...editUser,
userName: data.nickname,
userImg: downloadUrl,
};
onUpdateUser(editUser, {
onSuccess: () => {
console.log('유저수정 요청 성공');
},
onError: () => {
console.log('유저수정 요청 실패');
},
});
if (nicknameToggle && !pwToggle) {
await updateProfile(authService?.currentUser!, {
displayName: data.nickname,
photoURL: downloadUrl ?? '',
})
.then((res) => {
editProfileModal();
customAlert('프로필 수정 완료하였습니다!');
})
.catch((error) => {
console.log(error);
});
} else if (!nicknameToggle && pwToggle) {
await updateProfile(authService?.currentUser!, {
photoURL: downloadUrl ?? '',
}).catch((error) => {
console.log(error);
});
await updatePassword(authService?.currentUser!, data.newPassword).then(
(res) => {
editProfileModal();
customAlert('프로필 수정 완료하였습니다!');
}
);
} else if (nicknameToggle && pwToggle) {
await updateProfile(authService?.currentUser!, {
displayName: data.nickname,
photoURL: downloadUrl ?? '',
}).catch((error) => {
console.log(error);
});
await updatePassword(authService?.currentUser!, data.newPassword)
.then((res) => {
editProfileModal();
customAlert('프로필 수정 완료하였습니다!');
})
.catch((error) => {
console.log(error);
});
} else if (!nicknameToggle && !pwToggle) {
await updateProfile(authService?.currentUser!, {
photoURL: downloadUrl ?? '',
})
.then((res) => {
editProfileModal();
customAlert('프로필 수정 완료하였습니다!');
})
.catch((error) => {
console.log(error);
});
}
};
[ 17주 차 계획 ]
- 스파르타코딩클럽 계획
✔ 월: 최종 프로젝트
✔ 화: 최종 프로젝트
✔ 수: 최종 프로젝트
✔ 목: 최종 프로젝트
✔ 금: 중간 발표회
- 나의 계획
✔ 중간 발표로 밤을 새서 기능 구현과 디자인을 하였다.
□ 주말에 피드백 받은 거 정리하기