인스타 그램 계정을 입력하여 호감정보를 등록하는 프로젝트를 진행중이다.
기존에는 권한만 있으면 등록했던 호감정보를 수정, 삭제가 가능했지만 쿨타임을 적용해서
마지막 수정시각으로부터 세시간이 지나지 않으면 경고 메시지를 띄우도록 수정하였다.
public long getDurationAfterModified(){
this.durationAfterModified=Duration.between(this.getModifyDate(), LocalDateTime.now());
return durationAfterModified.toSeconds();
}
Duration 클래스를 이용하여 마지막 수정 시각과 현 시각까지의 시간 차이를 구하고 세시간이 경과하지 않았으면 수정, 삭제 메서드가 동작하지 않도록 구현하였다.
<div class="badge badge-primary">
<span th:if="${likeablePerson.getDurationAfterModified() < 60}"
th:text="${likeablePerson.getDurationAfterModified()} + '초 전'"></span>
<span th:if="${likeablePerson.getDurationAfterModified() >= 60 and likeablePerson.getDurationAfterModified() < 3600}"
th:text="${likeablePerson.getDurationAfterModified() div 60} + '분 전'"></span>
<span th:if="${likeablePerson.getDurationAfterModified() >= 3600}"
th:text="${likeablePerson.getDurationAfterModified() div 3600} + '시간 전'"></span>
타임리프 조건문을 이용, 호감 상태를 등록한 시간을 초로 받아서 60이하면 초, 60~3600은 분 3600 이상은 시간 단위로 표시하게 레이아웃을 변경하였다.

이후 쿨타임 적용중에는 classappend로
<a th:href="@{|modify/${likeablePerson.id}|}" class="btn btn-sm btn-outline"
th:classappend="${likeablePerson.getDurationAfterModified() <= 10800} ? 'opacity-50 cursor-not-allowed' : ''">
<i class="fa-solid fa-pen-to-square"></i>
호감사유 변경
</a>
투명도를 적용해서 비활성화된 버튼임을 나타냈다.

언제부터 수정이나 삭제가 가능한지 표시하게 수정.
TODO// 이제 클라이언트의 현재 시각을 얻어와서 클라이언트의 현재 시각이 수정 가능 시각을 지나면 display를 꺼줘야겠다.