fix: 로그 시간 KST 중복 보정, 일정 카운트 애니메이션, HMR 오버레이 비활성화
- 로그 formatDateTime에서 UTC 메서드 사용하여 KST 이중 변환 방지 - 일반 일정 페이지 n개 일정 텍스트에 모드 전환 애니메이션 적용 - Vite HMR 오버레이 비활성화 (외부 봇 malformed URI 에러 방지) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
159dd5c000
commit
8effebf681
3 changed files with 12 additions and 8 deletions
|
|
@ -56,14 +56,14 @@ export function parseSummary(summary) {
|
||||||
return { prefix: decoded.substring(0, idx), detail: decoded.substring(idx + 2) };
|
return { prefix: decoded.substring(0, idx), detail: decoded.substring(idx + 2) };
|
||||||
}
|
}
|
||||||
|
|
||||||
// 날짜/시간 포맷
|
// 날짜/시간 포맷 (DB에 KST로 저장되어 있으므로 UTC 기준으로 읽음)
|
||||||
export function formatDateTime(dateStr) {
|
export function formatDateTime(dateStr) {
|
||||||
const date = new Date(dateStr);
|
const date = new Date(dateStr);
|
||||||
const y = date.getFullYear();
|
const y = date.getUTCFullYear();
|
||||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
const month = String(date.getUTCMonth() + 1).padStart(2, '0');
|
||||||
const day = String(date.getDate()).padStart(2, '0');
|
const day = String(date.getUTCDate()).padStart(2, '0');
|
||||||
const hours = String(date.getHours()).padStart(2, '0');
|
const hours = String(date.getUTCHours()).padStart(2, '0');
|
||||||
const minutes = String(date.getMinutes()).padStart(2, '0');
|
const minutes = String(date.getUTCMinutes()).padStart(2, '0');
|
||||||
return `${y}.${month}.${day} ${hours}:${minutes}`;
|
return `${y}.${month}.${day} ${hours}:${minutes}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -470,7 +470,7 @@ function PCSchedule() {
|
||||||
animate={{ opacity: 1, scale: 1 }}
|
animate={{ opacity: 1, scale: 1 }}
|
||||||
exit={{ opacity: 0, scale: 0.95 }}
|
exit={{ opacity: 0, scale: 0.95 }}
|
||||||
transition={{ duration: 0.15 }}
|
transition={{ duration: 0.15 }}
|
||||||
className="flex items-center gap-3"
|
className="flex items-center gap-3 w-full"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
onClick={() => setIsSearchMode(true)}
|
onClick={() => setIsSearchMode(true)}
|
||||||
|
|
@ -488,6 +488,7 @@ function PCSchedule() {
|
||||||
})()
|
})()
|
||||||
: `${month + 1}월 전체 일정`}
|
: `${month + 1}월 전체 일정`}
|
||||||
</h2>
|
</h2>
|
||||||
|
<div className="flex-1" />
|
||||||
{selectedCategories.length > 0 && (
|
{selectedCategories.length > 0 && (
|
||||||
<div className="relative" ref={categoryRef}>
|
<div className="relative" ref={categoryRef}>
|
||||||
<button
|
<button
|
||||||
|
|
@ -520,10 +521,10 @@ function PCSchedule() {
|
||||||
</AnimatePresence>
|
</AnimatePresence>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
<span className="text-sm text-gray-400">{filteredSchedules.length}개 일정</span>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
)}
|
)}
|
||||||
</AnimatePresence>
|
</AnimatePresence>
|
||||||
{!isSearchMode && <span className="text-sm text-gray-500">{filteredSchedules.length}개 일정</span>}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* 스케줄 목록 */}
|
{/* 스케줄 목록 */}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,9 @@ export default defineConfig({
|
||||||
host: true,
|
host: true,
|
||||||
port: 80,
|
port: 80,
|
||||||
allowedHosts: true,
|
allowedHosts: true,
|
||||||
|
hmr: {
|
||||||
|
overlay: false,
|
||||||
|
},
|
||||||
proxy: {
|
proxy: {
|
||||||
"/api": {
|
"/api": {
|
||||||
target: "http://fromis9-backend:80",
|
target: "http://fromis9-backend:80",
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue