From 2d2096c58f37266256fc3c7a8d37551a5623801b Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Tue, 1 Jul 2025 09:53:47 -0400 Subject: [PATCH] Make the task modal more similar to the share modal (#164) --- .../app/(authenticated)/usage/Messages.tsx | 5 ++- .../app/(authenticated)/usage/TaskModal.tsx | 24 +++++++++++-- .../task-sharing/SharedTaskView.tsx | 1 - .../components/task-sharing/TaskDetails.tsx | 9 ++--- apps/web/src/components/ui/dialog.tsx | 34 +++++++++++++++++++ 5 files changed, 59 insertions(+), 14 deletions(-) diff --git a/apps/web/src/app/(authenticated)/usage/Messages.tsx b/apps/web/src/app/(authenticated)/usage/Messages.tsx index 6736652fdd..7b15c99c8a 100644 --- a/apps/web/src/app/(authenticated)/usage/Messages.tsx +++ b/apps/web/src/app/(authenticated)/usage/Messages.tsx @@ -13,7 +13,6 @@ const PlainTextLink = ({ children }: { children?: React.ReactNode }) => { type MessagesProps = { messages: Message[]; - maxHeight?: string; }; type SuggestionItem = string | { answer: string }; @@ -40,7 +39,7 @@ const parseQuestionData = (text: string): QuestionData | null => { return null; }; -export const Messages = ({ messages, maxHeight }: MessagesProps) => { +export const Messages = ({ messages }: MessagesProps) => { const { containerRef, scrollToBottom, autoScrollToBottom, userHasScrolled } = useAutoScroll({ enabled: true, @@ -79,7 +78,7 @@ export const Messages = ({ messages, maxHeight }: MessagesProps) => { {/* Scrollable messages container */}
{ ); + // Handle ESC key to close modal + useEffect(() => { + const handleKeyDown = (event: KeyboardEvent) => { + if (event.key === 'Escape' && open) { + onClose(); + } + }; + + if (open) { + document.addEventListener('keydown', handleKeyDown); + } + + return () => { + document.removeEventListener('keydown', handleKeyDown); + }; + }, [open, onClose]); + return ( - + - + ); }; diff --git a/apps/web/src/components/task-sharing/SharedTaskView.tsx b/apps/web/src/components/task-sharing/SharedTaskView.tsx index bdc4fd01a8..3f2db5ae98 100644 --- a/apps/web/src/components/task-sharing/SharedTaskView.tsx +++ b/apps/web/src/components/task-sharing/SharedTaskView.tsx @@ -51,7 +51,6 @@ export const SharedTaskView = ({ sharedBy={sharedBy} sharedAt={sharedAt} showSharedInfo={true} - limitMessagesHeight={false} /> ); }; diff --git a/apps/web/src/components/task-sharing/TaskDetails.tsx b/apps/web/src/components/task-sharing/TaskDetails.tsx index 4e1f6dddf6..a646344051 100644 --- a/apps/web/src/components/task-sharing/TaskDetails.tsx +++ b/apps/web/src/components/task-sharing/TaskDetails.tsx @@ -22,7 +22,6 @@ type TaskDetailsProps = { sharedAt?: Date; showSharedInfo?: boolean; headerActions?: React.ReactNode; - limitMessagesHeight?: boolean; }; export const TaskDetails = ({ @@ -32,12 +31,11 @@ export const TaskDetails = ({ sharedAt, showSharedInfo = false, headerActions, - limitMessagesHeight = true, }: TaskDetailsProps) => { const taskTitle = task.title || generateFallbackTitle(task); return ( -
+
{/* Task Header */} @@ -154,10 +152,7 @@ export const TaskDetails = ({ Conversation - + ) : ( diff --git a/apps/web/src/components/ui/dialog.tsx b/apps/web/src/components/ui/dialog.tsx index 417bd99b67..3cee9051cc 100644 --- a/apps/web/src/components/ui/dialog.tsx +++ b/apps/web/src/components/ui/dialog.tsx @@ -147,11 +147,45 @@ function DialogDescription({ ); } +function DialogContentFullScreen({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + + + Close + +
+
+ {children} +
+
+
+
+ ); +} + export { Dialog, DialogClose, DialogContent, DialogContentLarge, + DialogContentFullScreen, DialogDescription, DialogFooter, DialogHeader,