오늘은 뭔가 지치는 날이라 거창하게 글은 못쓸 것 같고 뭐 했는지 적는 정도로 기록...
회원 탈퇴 기능이 드디어 완성됐다.
const deleteUserHandler = async () => {
setIsModalOpen(false);
await deleteUser();
await queryClient.invalidateQueries({ queryKey: ["user", "session"] });
router.push("/");
};
기존에 탈퇴 후 유저 정보가 남고 로그아웃 처리가 안되어서 조금 꼬이는 문제가 있었는데, 삭제 => 로그아웃 => 세션 정보 초기화 => 메인 페이지 이동 이렇게 변경함으로써 깔끔하게 해결되었다!
이렇게 기능 하나, 문제 하나 해결할 때 마다 대단한 게 아니어도 내 실력이 차근차근 늘어가고 있다는 기분이 들어서 뿌듯하고 기쁘다. 생각보다 회원 탈퇴에 대한 글? 같은 것도 많이 없어서 공식 문서랑 블로그 하나 보고 한땀한땀 짰는데...🥹
제일 걱정이 많았던 타이머 기능. 마이 페이지를 최대한 빨리 끝내려고한 것도 다 이것 때문이다.
구현 사항은 이정도가 있는데 직접 어떻게 구현해야하나 한줄씩 적으면서 보니까 크게 어렵진 않아보이고... 제일 복병은 supabase 리얼타임 테이블 구독? 사용법이랑 시간 계산 로직이 아닐까 싶다.
// 일단 오늘 날짜 계산해서 캘린더에 eq 스터디 아이디, 날짜 찍어서 일정 있는지 확인하기 => 없으면 없다고
// 일정이 있으면 타이머 조회하기 => 타이머에 유저, 스터디, 날짜 있으면 그거 불러오고 없으면 타이머 그냥 0
// 현재 시간이 캘린더 일정 시간 사이인지 확인하기 => 해당 시간이면 시작 / 일시정지 활성화
// 타이머 처음 누를 때
// 처음 시간은 0 => 시작 누르면 creat_at 에 현재 시간 넣고 타이머 0부터 시작하기 => 이즈러닝 트루 변경
// 중간에 멈추면 라스트 업데이트에 현재 시간 넣고 이즈러닝 펄스
// 다시 시작하면 라스트 스타트에 현재 시간 넣고 이즈러닝 트루
// 이미 시작했었던 타이머
// 러닝 false인 경우 생성 시간 ~ 라스트 업데이트 로 경과 시간 계산
// 러닝 true인 경우 생성 시간 ~ 라스트 업데이트 + 라스트 스타트 ~ 현재 시간 더해서 경과 시간 계산
내일부터는 이렇게 적어둔 메모를 한줄씩 코드로 만들어볼 생각이다. 늦어도 수요일에는 완성이 되어서 미완성된 다른 기능들 시작하고 싶은데 열심히 하면 되겠지?!