From 9fd6daa826f4735cf88585476dcf113eb6572004 Mon Sep 17 00:00:00 2001 From: Michael Fatemi Date: Sat, 24 Jul 2021 18:33:21 -0400 Subject: [PATCH] better ui in carpool --- .../Carpool/CarpoolRouteEstimator.tsx | 13 +++++++-- src/components/Carpool/MemberList.tsx | 27 ++++++++++++++++--- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/components/Carpool/CarpoolRouteEstimator.tsx b/src/components/Carpool/CarpoolRouteEstimator.tsx index f2c56bf..df59e27 100644 --- a/src/components/Carpool/CarpoolRouteEstimator.tsx +++ b/src/components/Carpool/CarpoolRouteEstimator.tsx @@ -46,11 +46,20 @@ export default function CarpoolRouteEstimator() { return (

Route Optimization

{path ? ( -
+
Best route: {path.distance.toFixed(1)} miles
{(() => { diff --git a/src/components/Carpool/MemberList.tsx b/src/components/Carpool/MemberList.tsx index 4439db3..180a409 100644 --- a/src/components/Carpool/MemberList.tsx +++ b/src/components/Carpool/MemberList.tsx @@ -1,5 +1,6 @@ import AccountCircleIcon from '@material-ui/icons/AccountCircle'; -import { useContext } from 'react'; +import { useContext, useMemo, useState } from 'react'; +import UIPressable from '../UI/UIPressable'; import { CarpoolContext } from './Carpool'; function MemberRow({ member }: { member: { id: number; name: string } }) { @@ -27,8 +28,13 @@ const shownMembersCount = 2; export default function MemberList() { const { carpool } = useContext(CarpoolContext); + const [expanded, setExpanded] = useState(false); + const members = carpool.members; - const membersToShow = members.slice(0, shownMembersCount); + const membersToShow = useMemo( + () => (expanded ? members : members.slice(0, shownMembersCount)), + [members, expanded] + ); const hiddenMemberCount = members.length - membersToShow.length; return ( @@ -38,15 +44,28 @@ export default function MemberList() { flexDirection: 'column', alignSelf: 'center', alignItems: 'center', + boxSizing: 'border-box', + padding: '0rem 2rem', + width: '100%', }} >

Members

{members.length > 0 ? ( -
+
{membersToShow.map((member) => ( ))} - {formatOthers(hiddenMemberCount)} +
+ setExpanded((e) => !e)}> + {expanded ? 'Hide' : formatOthers(hiddenMemberCount)} +
) : ( 'This carpool has no members.'