From 8c7cde5fe8f98c08c7713bb41d3f4ad1f40584ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josh=20Daniel=20Ba=C3=B1ares?= Date: Wed, 17 Jul 2024 18:59:37 +0800 Subject: [PATCH] feat: implement progress dialog for forms (#223) * feat: implement progress dialog for forms * fix: revert tailwind config * chore: add header for notes --- .../(user)/to/[username]/components/form.tsx | 115 ++++++++++-------- .../[username]/components/unauthenticated.tsx | 10 +- .../www/src/app/(user)/to/[username]/page.tsx | 6 +- .../src/app/components/progress-dialog.tsx | 86 +++++++++++++ apps/www/src/app/notes/components/form.tsx | 52 +++++--- .../src/app/notes/components/reply-drawer.tsx | 104 +++++++++------- apps/www/src/app/notes/page.tsx | 4 + packages/ui/components.json | 4 + packages/ui/package.json | 1 + packages/ui/src/components/ad-container.tsx | 12 +- packages/ui/src/components/ui/progress.tsx | 28 +++++ packages/ui/tsconfig.json | 6 +- pnpm-lock.yaml | 103 +++++++++++++++- 13 files changed, 399 insertions(+), 132 deletions(-) create mode 100644 apps/www/src/app/components/progress-dialog.tsx create mode 100644 packages/ui/src/components/ui/progress.tsx diff --git a/apps/www/src/app/(user)/to/[username]/components/form.tsx b/apps/www/src/app/(user)/to/[username]/components/form.tsx index c4583143..2bb339ea 100644 --- a/apps/www/src/app/(user)/to/[username]/components/form.tsx +++ b/apps/www/src/app/(user)/to/[username]/components/form.tsx @@ -16,6 +16,7 @@ import useBotDetection from "@/hooks/use-bot-detection"; import { Textarea } from "@umamin/ui/components/textarea"; import { useDynamicTextarea } from "@/hooks/use-dynamic-textarea"; import type { UserByUsernameQueryResult } from "../../../queries"; +import { ProgressDialog } from "@/app/components/progress-dialog"; const CREATE_MESSAGE_MUTATION = graphql(` mutation CreateMessage($input: CreateMessageInput!) { @@ -27,7 +28,7 @@ const CREATE_MESSAGE_MUTATION = graphql(` const createMessagePersisted = graphql.persisted( "3550bab6df63cc9b4f891263677b487dbf67eba1b5cc9af9fec5fc037d2e49f0", - CREATE_MESSAGE_MUTATION, + CREATE_MESSAGE_MUTATION ); type Props = { @@ -40,6 +41,7 @@ export default function ChatForm({ currentUserId, user }: Props) { const [content, setContent] = useState(""); const [message, setMessage] = useState(""); const [isFetching, setIsFetching] = useState(false); + const [dialogOpen, setDialogOpen] = useState(false); const inputRef = useDynamicTextarea(content); @@ -74,65 +76,76 @@ export default function ChatForm({ currentUserId, user }: Props) { return; } - setMessage(content.replace(/(\r\n|\n|\r){2,}/g, "\n\n")); - setContent(""); - toast.success("Message sent"); + setDialogOpen(true); setIsFetching(false); logEvent(analytics, "send_message"); } catch (err: any) { - toast.error(err.message); + toast.error("An error occured"); setIsFetching(false); } } return ( -
-
- -
- - {user?.quietMode ? ( - - User has enabled quiet mode - - ) : ( -
-