File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -202,10 +202,12 @@ const MeetingsTable = () => {
202202 {
203203 accessorKey : 'startsAt' ,
204204 header : startsAtLabel ( ) ,
205+ // Coerce to Number — Postgres bigint columns come back as strings;
206+ // moment() would parse a numeric string as ISO and yield Invalid Date.
205207 Cell : ( { cell } ) => {
206- const v = cell . getValue < number > ( ) ;
208+ const v = cell . getValue < number | string > ( ) ;
207209
208- return v ? moment ( v ) . format ( 'YYYY-MM-DD HH:mm' ) : '' ;
210+ return v ? moment ( Number ( v ) ) . format ( 'YYYY-MM-DD HH:mm' ) : '' ;
209211 }
210212 } ,
211213 {
@@ -268,8 +270,8 @@ const MeetingsTable = () => {
268270 setRoomId ( m . roomId ) ;
269271 setTitle ( m . title ?? '' ) ;
270272 setDescription ( m . description ?? '' ) ;
271- setStartsAt ( m . startsAt ? moment ( m . startsAt ) : null ) ;
272- setEndsAt ( m . endsAt ? moment ( m . endsAt ) : null ) ;
273+ setStartsAt ( m . startsAt ? moment ( Number ( m . startsAt ) ) : null ) ;
274+ setEndsAt ( m . endsAt ? moment ( Number ( m . endsAt ) ) : null ) ;
273275 setTimezone ( m . timezone ?? browserTimezone ( ) ) ;
274276 setLocale ( m . locale ?? defaultLocale ) ;
275277 const p = parseRrule ( m . rrule ) ;
Original file line number Diff line number Diff line change @@ -179,10 +179,11 @@ const RoomMeetingsTable = (props: RoomProp) => {
179179 {
180180 accessorKey : 'startsAt' ,
181181 header : startsAtLabel ( ) ,
182+ // Postgres bigint serializes as string — coerce before moment() to avoid Invalid Date.
182183 Cell : ( { cell } ) => {
183- const v = cell . getValue < number > ( ) ;
184+ const v = cell . getValue < number | string > ( ) ;
184185
185- return v ? moment ( v ) . format ( 'YYYY-MM-DD HH:mm' ) : '' ;
186+ return v ? moment ( Number ( v ) ) . format ( 'YYYY-MM-DD HH:mm' ) : '' ;
186187 }
187188 } ,
188189 {
@@ -243,8 +244,8 @@ const RoomMeetingsTable = (props: RoomProp) => {
243244 setId ( m . id ?? 0 ) ;
244245 setTitle ( m . title ?? '' ) ;
245246 setDescription ( m . description ?? '' ) ;
246- setStartsAt ( m . startsAt ? moment ( m . startsAt ) : null ) ;
247- setEndsAt ( m . endsAt ? moment ( m . endsAt ) : null ) ;
247+ setStartsAt ( m . startsAt ? moment ( Number ( m . startsAt ) ) : null ) ;
248+ setEndsAt ( m . endsAt ? moment ( Number ( m . endsAt ) ) : null ) ;
248249 setTimezone ( m . timezone ?? browserTimezone ( ) ) ;
249250 setLocale ( m . locale ?? defaultLocale ) ;
250251 const p = parseRrule ( m . rrule ) ;
Original file line number Diff line number Diff line change @@ -28,15 +28,17 @@ import {
2828
2929const nextOccurrence = ( m : Meeting ) : number => {
3030 const now = Date . now ( ) ;
31+ // Coerce — Postgres bigint comes back as string; Date/rrule would misparse.
32+ const startsAt = Number ( m . startsAt ) ;
3133
32- if ( ! m . rrule ) return m . startsAt >= now ? m . startsAt : 0 ;
34+ if ( ! m . rrule ) return startsAt >= now ? startsAt : 0 ;
3335 try {
34- const rule = rrulestr ( m . rrule , { dtstart : new Date ( m . startsAt ) } ) ;
36+ const rule = rrulestr ( m . rrule , { dtstart : new Date ( startsAt ) } ) ;
3537 const next = rule . after ( new Date ( now ) , true ) ;
3638
3739 return next ? next . getTime ( ) : 0 ;
3840 } catch {
39- return m . startsAt >= now ? m . startsAt : 0 ;
41+ return startsAt >= now ? startsAt : 0 ;
4042 }
4143} ;
4244
You can’t perform that action at this time.
0 commit comments