From 17d086aa6ae32593d8c649250031c2c1ccf5c115 Mon Sep 17 00:00:00 2001 From: aaryansinha Date: Mon, 18 Nov 2024 16:45:21 -0500 Subject: [PATCH 01/44] Backend logic working, now just frontend edits remaining --- prisma/schema.prisma | 1 + src/components/GroupPage.tsx | 55 ++++++++++++++++++++++++++++---- src/server/router/user/email.ts | 10 +++--- src/server/router/user/groups.ts | 19 ++++++++++- 4 files changed, 72 insertions(+), 13 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 6ed0c132..21bffa31 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -162,6 +162,7 @@ model User { Message Message[] dateCreated DateTime @default(now()) dateModified DateTime @default(now()) @updatedAt + groupMessage String @default("") @map("group_message") @@index([carpoolId]) @@map(name: "user") diff --git a/src/components/GroupPage.tsx b/src/components/GroupPage.tsx index 94784c4e..1f78d976 100644 --- a/src/components/GroupPage.tsx +++ b/src/components/GroupPage.tsx @@ -59,13 +59,56 @@ interface NoGroupInfoProps { } const NoGroupInfo = ({ role }: NoGroupInfoProps) => { - const text = - role === Role.VIEWER - ? "You are in Viewer mode, switch to Rider or Driver to join a group" - : "You are not currently part of a carpool group"; + const { data: user } = trpc.user.me.useQuery(); + const [groupMessage, setGroupMessage] = useState(user?.groupMessage ?? ""); + const { mutate: updateUserMessage } = trpc.user.groups.updateUserMessage.useMutation(); + + useEffect(() => { + if (user?.groupMessage) { + setGroupMessage(user.groupMessage); + } + }, [user]); + + const handleMessageSubmit = async () => { + if (user?.id && role === "DRIVER") { + await updateUserMessage({ message: groupMessage }); + } + }; + return ( -
- {text} +
+ {role === Role.VIEWER ? ( +
+ You are in Viewer mode, switch to Rider or Driver to join a group +
+ ) : ( + <> + {role === "DRIVER" && ( +
+
+ Save a message to share with your future riders! +
+
+