+
+
{message.name}
·
{message.timestamp}
@@ -40,7 +40,7 @@ export const Messages = ({ messages }: MessagesProps) => {
)}
-
diff --git a/src/app/(authenticated)/usage/TaskDrawer.tsx b/src/app/(authenticated)/usage/TaskDrawer.tsx
deleted file mode 100644
index f4211f0460..0000000000
--- a/src/app/(authenticated)/usage/TaskDrawer.tsx
+++ /dev/null
@@ -1,114 +0,0 @@
-import { useQuery } from '@tanstack/react-query';
-import { X } from 'lucide-react';
-
-import type { TaskWithUser } from '@/actions/analytics';
-import { getMessages } from '@/actions/analytics';
-import { canShareTask } from '@/actions/taskSharing';
-import { useOrganizationSettings } from '@/hooks/useOrganizationSettings';
-import { formatCurrency, formatNumber } from '@/lib/formatters';
-import { generateFallbackTitle } from '@/lib/task-utils';
-import { QueryKey } from '@/types/react-query';
-import { Drawer, DrawerContent, Button } from '@/components/ui';
-import { ShareButton } from '@/components/task-sharing/ShareButton';
-
-import { Status } from './Status';
-import { Messages } from './Messages';
-
-type TaskDrawerProps = {
- task: TaskWithUser;
- onClose: () => void;
-};
-
-export const TaskDrawer = ({ task, onClose }: TaskDrawerProps) => {
- const { data: messages } = useQuery({
- queryKey: ['messages', task.taskId],
- queryFn: () => getMessages(task.taskId),
- });
-
- const { data: orgSettings } = useOrganizationSettings();
-
- const { data: sharePermission } = useQuery({
- queryKey: [QueryKey.CanShareTask, task.taskId],
- queryFn: () => canShareTask(task.taskId),
- enabled: !!task.taskId,
- });
-
- const isTaskSharingEnabled =
- orgSettings?.cloudSettings?.enableTaskSharing ?? false;
-
- const canUserShareThisTask = sharePermission?.canShare ?? false;
-
- return (
-
-
-
-
-
- {isTaskSharingEnabled && canUserShareThisTask && (
-
- )}
-
-
-
- {task.title || generateFallbackTitle(task)}
-
-
-
- Developer
- {task.user.name}
-
-
- Provider
-
- {task.provider}
-
-
-
- Model
-
- {task.model}
-
-
- {task.mode && (
-
- Mode
- {task.mode}
-
- )}
-
- Tokens
-
- {formatNumber(task.tokens)}
-
-
-
- Cost
-
- {formatCurrency(task.cost)}
-
-
-
- Date
-
- {new Date(task.timestamp * 1000).toLocaleString()}
-
-
-
- Status
-
-
-
- {typeof messages !== 'undefined' && messages.length > 0 && (
- <>
-
Conversation
-
- >
- )}
-
-
-
-
- );
-};
diff --git a/src/app/(authenticated)/usage/TaskModal.tsx b/src/app/(authenticated)/usage/TaskModal.tsx
new file mode 100644
index 0000000000..bbe52e2402
--- /dev/null
+++ b/src/app/(authenticated)/usage/TaskModal.tsx
@@ -0,0 +1,57 @@
+import { useQuery } from '@tanstack/react-query';
+
+import type { TaskWithUser } from '@/actions/analytics';
+import { getMessages } from '@/actions/analytics';
+import { canShareTask } from '@/actions/taskSharing';
+import { useOrganizationSettings } from '@/hooks/useOrganizationSettings';
+import { QueryKey } from '@/types/react-query';
+import { Dialog, DialogContentLarge } from '@/components/ui';
+import { ShareButton } from '@/components/task-sharing/ShareButton';
+import { TaskDetails } from '@/components/task-sharing/TaskDetails';
+
+type TaskModalProps = {
+ task: TaskWithUser;
+ open: boolean;
+ onClose: () => void;
+};
+
+export const TaskModal = ({ task, open, onClose }: TaskModalProps) => {
+ const { data: messages = [] } = useQuery({
+ queryKey: ['messages', task.taskId],
+ queryFn: () => getMessages(task.taskId),
+ enabled: open && !!task.taskId,
+ });
+
+ const { data: orgSettings } = useOrganizationSettings();
+
+ const { data: sharePermission } = useQuery({
+ queryKey: [QueryKey.CanShareTask, task.taskId],
+ queryFn: () => canShareTask(task.taskId),
+ enabled: open && !!task.taskId,
+ });
+
+ const isTaskSharingEnabled =
+ orgSettings?.cloudSettings?.enableTaskSharing ?? false;
+
+ const canUserShareThisTask = sharePermission?.canShare ?? false;
+
+ const headerActions = (
+ <>
+ {isTaskSharingEnabled && canUserShareThisTask && (
+
+ )}
+ >
+ );
+
+ return (
+
+ );
+};
diff --git a/src/app/(authenticated)/usage/Usage.tsx b/src/app/(authenticated)/usage/Usage.tsx
index be0848a588..16d61aea5e 100644
--- a/src/app/(authenticated)/usage/Usage.tsx
+++ b/src/app/(authenticated)/usage/Usage.tsx
@@ -12,7 +12,7 @@ import { type Filter, type ViewMode, viewModes } from './types';
import { Developers } from './Developers';
import { Models } from './Models';
import { Tasks } from './Tasks';
-import { TaskDrawer } from './TaskDrawer';
+import { TaskModal } from './TaskModal';
type UsageProps = {
userRole?: 'admin' | 'member';
@@ -89,7 +89,9 @@ export const Usage = ({ userRole = 'admin', currentUserId }: UsageProps) => {
)}