diff --git a/src/app/coaching-sessions/[id]/page.tsx b/src/app/coaching-sessions/[id]/page.tsx
index 0b648f3..6411f3f 100644
--- a/src/app/coaching-sessions/[id]/page.tsx
+++ b/src/app/coaching-sessions/[id]/page.tsx
@@ -151,7 +151,7 @@ export default function CoachingSessionsPage() {
style={siteConfig.titleStyle}
onRender={handleTitleRender}
>
-
+
Error loading coaching sessions
;
if (!coachingSessions?.length) return
No coaching sessions found
;
+ const SessionItem = ({
+ session,
+ goals,
+ sessionIndex,
+ }: {
+ session: CoachingSession;
+ goals: (OverarchingGoal[] | undefined)[];
+ sessionIndex: number;
+ }) => (
+
+
+
+
+ {goals[sessionIndex]?.[0]?.title || "No goal set"}
+
+
+ {getDateTimeFromString(session.date).toLocaleString(
+ DateTime.DATETIME_FULL
+ )}
+
+
+
+
+ );
+
return (
<>
- {coachingSessions.some(
- (session) => getDateTimeFromString(session.date) < DateTime.now()
- ) && (
-
- Previous Sessions
- {coachingSessions
- .filter(
- (session) => getDateTimeFromString(session.date) < DateTime.now()
- )
- .map((session) => {
- const sessionIndex = coachingSessions.findIndex(
- (s) => s.id === session.id
- );
- return (
-
-
-
- {goals[sessionIndex]?.[0]?.title || "No goal set"}
-
-
- {getDateTimeFromString(session.date).toLocaleString(
- DateTime.DATETIME_FULL
- )}
-
-
-
- );
- })}
-
- )}
- {coachingSessions.some(
- (session) => getDateTimeFromString(session.date) >= DateTime.now()
- ) && (
-
- Upcoming Sessions
- {coachingSessions
- .filter(
- (session) => getDateTimeFromString(session.date) >= DateTime.now()
- )
- .map((session) => {
- const sessionIndex = coachingSessions.findIndex(
- (s) => s.id === session.id
- );
- return (
-
-
-
- {goals[sessionIndex]?.[0]?.title || "No goal set"}
-
-
- {getDateTimeFromString(session.date).toLocaleString(
- DateTime.DATETIME_FULL
- )}
-
-
-
- );
- })}
-
+ {[
+ {
+ label: "Previous Sessions",
+ condition: (date: string) =>
+ getDateTimeFromString(date) < DateTime.now(),
+ },
+ {
+ label: "Upcoming Sessions",
+ condition: (date: string) =>
+ getDateTimeFromString(date) >= DateTime.now(),
+ },
+ ].map(
+ ({ label, condition }) =>
+ coachingSessions.some((session) => condition(session.date)) && (
+
+ {label}
+ {coachingSessions
+ .filter((session) => condition(session.date))
+ .map((session) => (
+ s.id === session.id
+ )}
+ />
+ ))}
+
+ )
)}
>
);
@@ -188,11 +185,11 @@ export default function CoachingSessionSelector({
};
const displayValue = currentSession ? (
-
-
+
+
{currentGoal?.title || "No goal set"}
-
+
{getDateTimeFromString(currentSession.date).toLocaleString(
DateTime.DATETIME_FULL
)}
@@ -206,12 +203,18 @@ export default function CoachingSessionSelector({
value={currentCoachingSessionId ?? undefined}
onValueChange={handleSetCoachingSession}
>
-
-
+
+
{displayValue}
-
+
diff --git a/src/components/ui/dashboard/select-coaching-session.tsx b/src/components/ui/dashboard/select-coaching-session.tsx
index 9642b3d..9ecd260 100644
--- a/src/components/ui/dashboard/select-coaching-session.tsx
+++ b/src/components/ui/dashboard/select-coaching-session.tsx
@@ -31,14 +31,14 @@ export default function SelectCoachingSession() {
);
return (
-
+
Join a Coaching Session
Select current organization, relationship and session
-
+