diff --git a/apps/waitlist-website/app/chat/message.ts b/apps/waitlist-website/app/chat/message.ts
index 756dc18..8786832 100644
--- a/apps/waitlist-website/app/chat/message.ts
+++ b/apps/waitlist-website/app/chat/message.ts
@@ -56,3 +56,10 @@ export function duplicateEmailMessage(): SystemMessage {
message: `I appreciate your excitement! You are already on the waitlist. When I am ready, I will reach out again. Have a good ${timeOfDay()} :)`,
}
}
+
+export function troubleMessage(): SystemMessage {
+ return {
+ role: "system",
+ message: `I apologize, but I am having trouble adding you to the waitlist. Could you refresh the page and try again please in a moment?`,
+ }
+}
diff --git a/apps/waitlist-website/app/routes/home.tsx b/apps/waitlist-website/app/routes/home.tsx
index a84396f..344c8e5 100644
--- a/apps/waitlist-website/app/routes/home.tsx
+++ b/apps/waitlist-website/app/routes/home.tsx
@@ -8,6 +8,7 @@ import { ChatBox } from "~/chat/chat-box"
import {
duplicateEmailMessage,
INITLAL_MESSAGES,
+ troubleMessage,
waitListJoinedMessage,
type Message,
type SystemMessage,
@@ -111,10 +112,19 @@ export default function Home() {
if (fetcher.data?.email && !isAnimatingSend) {
setMessages((messages) => [...messages, waitListJoinedMessage(fetcher.data.email)])
} else if (fetcher.data?.error) {
- if (fetcher.data.error === FormError.Duplicate && !isAnimatingSend) {
- setMessages((messages) => [...messages, duplicateEmailMessage()])
- } else {
- console.error(fetcher.data.error)
+ if (!isAnimatingSend) {
+ let errorMessage: SystemMessage
+ switch (fetcher.data.error) {
+ case FormError.Duplicate:
+ errorMessage = duplicateEmailMessage()
+ break
+ default: {
+ console.error(fetcher.data.error)
+ errorMessage = troubleMessage()
+ break
+ }
+ }
+ setMessages((messages) => [...messages, errorMessage])
}
}
}, [fetcher.data?.email, fetcher.data?.error, isAnimatingSend])
@@ -196,6 +206,12 @@ export default function Home() {
}}
/>
{chatBox}
+
+
)
}