import React, { useState } from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { IconX, IconFileText, IconArrowRight, IconNetwork } from '@tabler/icons'; import { clearSelectedRequest } from 'providers/ReduxStore/slices/logs'; import QueryResult from 'components/ResponsePane/QueryResult'; import Network from 'components/ResponsePane/Timeline/TimelineItem/Network'; import StyledWrapper from './StyledWrapper'; import { uuid } from 'utils/common/index'; const RequestTab = ({ request, response }) => { const formatHeaders = (headers) => { if (!headers) return []; if (Array.isArray(headers)) return headers; return Object.entries(headers).map(([key, value]) => ({ name: key, value })); }; const formatBody = (body) => { if (!body) return 'No body'; if (typeof body === 'string') return body; return JSON.stringify(body, null, 2); }; return (

General

Request URL: {request?.url || 'N/A'}
Request Method: {request?.method || 'GET'}

Request Headers

{formatHeaders(request?.headers).length > 0 ? (
{formatHeaders(request.headers).map((header, index) => ( ))}
Name Value
{header.name} {header.value}
) : (
No headers
)}
{request?.body && (

Request Body

{formatBody(request.body)}
)}
); }; const ResponseTab = ({ response, request, collection }) => { const formatHeaders = (headers) => { if (!headers) return []; if (Array.isArray(headers)) return headers; return Object.entries(headers).map(([key, value]) => ({ name: key, value })); }; return (

Response Headers

{formatHeaders(response?.headers).length > 0 ? (
{formatHeaders(response.headers).map((header, index) => ( ))}
Name Value
{header.name} {header.value}
) : (
No headers
)}

Response Body

{response?.data || response?.dataBuffer ? ( ) : (
No response data
)}
); }; const NetworkTab = ({ response }) => { const timeline = response?.timeline || []; return (

Network Logs

{timeline.length > 0 ? ( ) : (
No network logs available
)}
); }; const RequestDetailsPanel = () => { const dispatch = useDispatch(); const { selectedRequest } = useSelector(state => state.logs); const collections = useSelector(state => state.collections.collections); const [activeTab, setActiveTab] = useState('request'); if (!selectedRequest) return null; const { data } = selectedRequest; const { request, response } = data; const collection = collections.find(c => c.uid === selectedRequest.collectionUid); const handleClose = () => { dispatch(clearSelectedRequest()); }; const formatTime = (timestamp) => { const date = new Date(timestamp); return date.toLocaleString(); }; const getTabContent = () => { switch (activeTab) { case 'request': return ; case 'response': return ; case 'network': return ; default: return ; } }; return (
Request Details ({formatTime(selectedRequest.timestamp)})
{getTabContent()}
); }; export default RequestDetailsPanel;