import { isNil, noop } from 'lodash' import { Archive, X } from 'lucide-react' import { useState } from 'react' import { useParams } from 'common' import { MonacoEditor } from 'components/grid/components/common/MonacoEditor' import { RowAction, RowData } from 'components/interfaces/Auth/Users/UserOverview' import { useDatabaseQueueMessageArchiveMutation } from 'data/database-queues/database-queue-messages-archive-mutation' import { PostgresQueueMessage } from 'data/database-queues/database-queue-messages-infinite-query' import dayjs from 'dayjs' import { useSelectedProject } from 'hooks/misc/useSelectedProject' import { prettifyJSON } from 'lib/helpers' import { Button, ResizablePanel, Separator, Tabs_Shadcn_, TabsContent_Shadcn_, TabsList_Shadcn_, TabsTrigger_Shadcn_, } from 'ui' export const DATE_FORMAT = 'DD MMM, YYYY HH:mm' interface MessageDetailsPanelProps { selectedMessage: PostgresQueueMessage setSelectedMessage: (value: number | null) => void } const tryFormatInitialValue = (value: string) => { try { const jsonValue = JSON.parse(value) return JSON.stringify(jsonValue) } catch (err) { if (typeof value === 'string') { return value.replaceAll(`\"`, `"`) } else { return JSON.stringify(value) } } } export const MessageDetailsPanel = ({ selectedMessage, setSelectedMessage, }: MessageDetailsPanelProps) => { const { id: _id } = useParams() const { name: queueName } = useParams() const project = useSelectedProject() const { mutate, isLoading, isSuccess } = useDatabaseQueueMessageArchiveMutation() const initialValue = JSON.stringify(selectedMessage?.message) const jsonString = prettifyJSON(!isNil(initialValue) ? tryFormatInitialValue(initialValue) : '') const [view, setView] = useState<'details' | 'suggestion'>('details') return ( setSelectedMessage(null)} className="bg-studio border-t pointer-events-auto" >