From a6e7051db8ce506036b97b209b00006d90d70f67 Mon Sep 17 00:00:00 2001 From: Trey Moen Date: Sat, 30 Aug 2025 17:56:27 -0700 Subject: [PATCH 1/3] handle --- .../dashboard/activities/RouteActivity.tsx | 3 +-- src/pages/dashboard/components/RouteList.tsx | 20 +++++++++++++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/pages/dashboard/activities/RouteActivity.tsx b/src/pages/dashboard/activities/RouteActivity.tsx index 78ad9e5b3..9f7f66f97 100644 --- a/src/pages/dashboard/activities/RouteActivity.tsx +++ b/src/pages/dashboard/activities/RouteActivity.tsx @@ -31,8 +31,7 @@ const RouteActivity: VoidComponent = (props) => { const routeName = () => `${props.dongleId}|${props.dateStr}` const [route] = createResource(routeName, getRoute) - const startTime = () => (route.latest ? dayjs(route().start_time).format('dddd, MMM D, YYYY') : '') - + const startTime = () => (route.latest?.start_time ? dayjs(route().start_time).format('dddd, MMM D, YYYY') : '') const selection = () => ({ startTime: props.startTime, endTime: props.endTime }) // FIXME: generateTimelineStatistics is given different versions of TimelineEvents multiple times, leading to stuttering engaged % on switch diff --git a/src/pages/dashboard/components/RouteList.tsx b/src/pages/dashboard/components/RouteList.tsx index a35d16b59..efb1acb3f 100644 --- a/src/pages/dashboard/components/RouteList.tsx +++ b/src/pages/dashboard/components/RouteList.tsx @@ -19,9 +19,10 @@ interface RouteCardProps { } const RouteCard: VoidComponent = (props) => { - const startTime = () => dayjs.utc(props.route.start_time).local() - const endTime = () => dayjs.utc(props.route.end_time).local() - const color = () => dateTimeToColorBetween(startTime().toDate(), endTime().toDate(), [30, 57, 138], [218, 161, 28]) + const startTime = () => (props.route.start_time ? dayjs.utc(props.route.start_time).local() : undefined) + const endTime = () => (props.route.end_time ? dayjs.utc(props.route.end_time).local() : undefined) + const color = () => + startTime() && endTime() ? dateTimeToColorBetween(startTime()!.toDate(), endTime()!.toDate(), [30, 57, 138], [218, 161, 28]) : '#000000' const [statistics] = createResource(() => props.route, getRouteStatistics) const [location] = createResource(async () => { const startPos = [props.route.start_lng || 0, props.route.start_lat || 0] @@ -34,10 +35,19 @@ const RouteCard: VoidComponent = (props) => { return `${startPlace} to ${endPlace}` }) + const getCardHeadline = () => { + if (!startTime() || !endTime()) return <>{props.route.fullname.split('|')[1]} + return ( + <> + {startTime()?.format('h:mm A')} to {endTime()?.format('h:mm A')} + + ) + } + return ( }>{location()}} trailing={ @@ -106,6 +116,8 @@ const RouteList: VoidComponent<{ dongleId: string }> = (props) => { // Group and display headers for each day let prevDayHeader: string | null = null function getDayHeader(route: Route): string | null { + // group route without start or end time with the nearest day + if (route.start_time === null || route.end_time === null) return null const date = dayjs.utc(route.start_time).local() let dayHeader = null if (date.isSame(dayjs(), 'day')) { From d71892fa570eec71f59d926af44fa683460912e5 Mon Sep 17 00:00:00 2001 From: Trey Moen Date: Sat, 30 Aug 2025 17:57:29 -0700 Subject: [PATCH 2/3] datestr --- src/pages/dashboard/activities/RouteActivity.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/dashboard/activities/RouteActivity.tsx b/src/pages/dashboard/activities/RouteActivity.tsx index 9f7f66f97..0888c4369 100644 --- a/src/pages/dashboard/activities/RouteActivity.tsx +++ b/src/pages/dashboard/activities/RouteActivity.tsx @@ -31,7 +31,7 @@ const RouteActivity: VoidComponent = (props) => { const routeName = () => `${props.dongleId}|${props.dateStr}` const [route] = createResource(routeName, getRoute) - const startTime = () => (route.latest?.start_time ? dayjs(route().start_time).format('dddd, MMM D, YYYY') : '') + const startTime = () => (route.latest?.start_time ? dayjs(route().start_time).format('dddd, MMM D, YYYY') : props.dateStr) const selection = () => ({ startTime: props.startTime, endTime: props.endTime }) // FIXME: generateTimelineStatistics is given different versions of TimelineEvents multiple times, leading to stuttering engaged % on switch From 58df02b23c686dcb75e302c22ca3d94cf5b43364 Mon Sep 17 00:00:00 2001 From: Trey Moen Date: Sat, 30 Aug 2025 17:58:46 -0700 Subject: [PATCH 3/3] cleanup --- src/pages/dashboard/components/RouteList.tsx | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/pages/dashboard/components/RouteList.tsx b/src/pages/dashboard/components/RouteList.tsx index efb1acb3f..5eed083bd 100644 --- a/src/pages/dashboard/components/RouteList.tsx +++ b/src/pages/dashboard/components/RouteList.tsx @@ -36,12 +36,8 @@ const RouteCard: VoidComponent = (props) => { }) const getCardHeadline = () => { - if (!startTime() || !endTime()) return <>{props.route.fullname.split('|')[1]} - return ( - <> - {startTime()?.format('h:mm A')} to {endTime()?.format('h:mm A')} - - ) + if (!startTime() || !endTime()) return props.route.fullname.split('|')[1] + return `${startTime()!.format('h:mm A')} to ${endTime()!.format('h:mm A')}` } return (