[FE] 일정 생성/수정 모달에서 날짜 또는 시간 변경 시 편의를 위한 자동 값 변경 기능 구현
이슈번호
close #902
PR 내용
본 PR에서는 일정 생성 및 수정 모달에서 사용자가 일정 또는 시간을 변경할 경우, 사용자에게 편의를 위해 일부 값을 자동으로 변경해 주는 기능을 구현하였다.
자동으로 값을 변경하는 목적은 아래의 두 가지이다.
사용자가 잘못 일정을 입력했을 경우 이를 바로잡기 위해.
사용자에게 일관된 편의성을 제공하기 위해.
일정 생성 및 수정 모달은 각각의 커스텀 훅을 지니고 있는데, 자동으로 값이 변경되는 기능은 두 모달 모두에서 똑같은 로직으로 작동할 것이기에 일정의 여러 값들을 관리하는 useDateTimeRange 커스텀 훅을 별도로 작성하여, 기존의 중복되는 로직을 줄이고 복잡한 코드를 분리하였다.
일정이 변경되는 구체적인 조건과 작동 스크린샷은 아래에서 다룬다.
일정이 자동 변경되는 조건
① 일정 시작일이 변경되는 경우
일정 시작일이 변경되는 경우에는 변경 전 시작일과 비교하여 이동한 일정만큼 일정 마감일도 이동한다. 더욱 명확하게 말하면 일정 시작일이 $n$일만큼 이동했을 경우 일정 마감일도 $n$일만큼 이동한다.
단, 변경 이전의 일정 시작일이 올바른 값이 아니었을 경우에는 가장 마지막으로 설정했던 일정에서의 기간을 기억하여 일정 마감일의 일정을 이동시킨다.
ex) 2010-03-01 ~ 2010-03-04 → 잘못된 값 ~ 2010-03-04 → 2010-03-07 ~ ? 에서 ? 에 들어갈 값은 2010-03-10 이다. 잘못된 값이 들어가기 전 3일만큼 차이가 났기 때문이다.
변경 이후의 일정 시작일이 올바른 값이 아닌 경우에는 일정 마감일이 자동으로 변경되지 않는다.
작동 예시는 아래의 스크린샷을 참고하라.
② 일정 마감일이 변경되는 경우
일정 마감일이 변경되는 경우에는 다른 어떠한 일정도 자동으로 변경되지 않는다.
③ 일정 시작 시간이 변경되는 경우
일정 시작 시간이 변경되는 경우에는 변경 이후 시작 시간이 마감 시간보다 늦으면서, 시작일이 마감일과 같거나 더 나중일 경우에 한하여 자동으로 마감 시간이 시작 시간과 동일하게 변경된다. 다소 복잡한데, 쉽게 요약하면 시작 시간 변경 이후 일정이 잘못된 경우에만 마감 시간을 시작 시간으로 변경시킨다는 의미이다.
아래의 세 가지 작동 예시를 들면서 작동 방식을 보다 명확하게 설명하고자 한다. 세 가지 상황 모두, 시작 시간의 변경 이후 마감 시간보다 나중이 되는 경우이다.
변경 전 시작일 == 마감일 인 경우
변경 전 시작일 > 마감일 인 경우
변경 전 시작일 < 마감일 인 경우
1번, 2번에서는 시작 시간의 변경 이후 마감 시간이 자동으로 조정되었음에도 불구하고 3번에서는 자동 조정이 일어나지 않는다. 이는 자동 조정을 하지 않아도 일정이 올바른 상태이기 때문이다.
④ 일정 마감 시간이 변경되는 경우
일정 시작 시간과 거의 동일한 방법으로 작동한다. 여기에서는 일정 마감 시간이 변경됨에 따라 일정 시작 시간이 변경될 수 있다.
[FE] 일정 생성/수정 모달에서 날짜 또는 시간 변경 시 편의를 위한 자동 값 변경 기능 구현
이슈번호
PR 내용
본 PR에서는 일정 생성 및 수정 모달에서 사용자가 일정 또는 시간을 변경할 경우, 사용자에게 편의를 위해 일부 값을 자동으로 변경해 주는 기능을 구현하였다.
자동으로 값을 변경하는 목적은 아래의 두 가지이다.
일정 생성 및 수정 모달은 각각의 커스텀 훅을 지니고 있는데, 자동으로 값이 변경되는 기능은 두 모달 모두에서 똑같은 로직으로 작동할 것이기에 일정의 여러 값들을 관리하는
useDateTimeRange
커스텀 훅을 별도로 작성하여, 기존의 중복되는 로직을 줄이고 복잡한 코드를 분리하였다.일정이 변경되는 구체적인 조건과 작동 스크린샷은 아래에서 다룬다.
일정이 자동 변경되는 조건
① 일정 시작일이 변경되는 경우
2010-03-01 ~ 2010-03-04
→잘못된 값 ~ 2010-03-04
→2010-03-07 ~ ?
에서?
에 들어갈 값은2010-03-10
이다. 잘못된 값이 들어가기 전 3일만큼 차이가 났기 때문이다.작동 예시는 아래의 스크린샷을 참고하라.
② 일정 마감일이 변경되는 경우
③ 일정 시작 시간이 변경되는 경우
아래의 세 가지 작동 예시를 들면서 작동 방식을 보다 명확하게 설명하고자 한다. 세 가지 상황 모두, 시작 시간의 변경 이후 마감 시간보다 나중이 되는 경우이다.
변경 전
시작일 == 마감일
인 경우변경 전
시작일 > 마감일
인 경우변경 전
시작일 < 마감일
인 경우1번, 2번에서는 시작 시간의 변경 이후 마감 시간이 자동으로 조정되었음에도 불구하고 3번에서는 자동 조정이 일어나지 않는다. 이는 자동 조정을 하지 않아도 일정이 올바른 상태이기 때문이다.
④ 일정 마감 시간이 변경되는 경우
의논할 거리
납득이 안 되는 조건이 있거나 바뀌면 좋을 만한 조건이 있다면 언제든지 추천 고고