11import dayjs , { type Dayjs } from "dayjs" ;
2+ import utc from "dayjs/plugin/utc" ;
23import { ChevronDown , ChevronUp , ExternalLink , RotateCcw , X } from "lucide-react" ;
34import { useEffect , useMemo , useRef , useState } from "react" ;
45import { useTranslation } from "react-i18next" ;
@@ -7,6 +8,8 @@ import { fetchCodexResetHistory, openUrl, type CodexResetAnnouncement } from "@/
78const HISTORY_DAYS = 30 ;
89const DEFAULT_VISIBLE_RESETS = 5 ;
910
11+ dayjs . extend ( utc ) ;
12+
1013type CalendarDay = {
1114 date : Dayjs ;
1215 inRange : boolean ;
@@ -31,12 +34,13 @@ export function buildResetHistorySummary(
3134 const intervals = sortedResets . slice ( 0 , - 1 ) . map ( ( reset , index ) =>
3235 dayjs ( reset . announcedAt ) . diff ( sortedResets [ index + 1 ] . announcedAt , "minute" , true ) / ( 60 * 24 ) ,
3336 ) ;
34- const startDate = now . startOf ( "day" ) . subtract ( HISTORY_DAYS - 1 , "day" ) ;
35- const endDate = now . endOf ( "day" ) ;
37+ const currentDate = now . utc ( ) ;
38+ const startDate = currentDate . startOf ( "day" ) . subtract ( HISTORY_DAYS - 1 , "day" ) ;
39+ const endDate = currentDate . endOf ( "day" ) ;
3640 const resetsByDate = new Map < string , CodexResetAnnouncement [ ] > ( ) ;
3741
3842 for ( const reset of sortedResets ) {
39- const key = dayjs ( reset . announcedAt ) . format ( "YYYY-MM-DD" ) ;
43+ const key = dayjs . utc ( reset . announcedAt ) . format ( "YYYY-MM-DD" ) ;
4044 const existing = resetsByDate . get ( key ) ;
4145 if ( existing ) existing . push ( reset ) ;
4246 else resetsByDate . set ( key , [ reset ] ) ;
0 commit comments