import React, { useEffect, useState } from 'react'; import FetchBasicDetails from './components/FetchBasicDetails'; import { Button } from 'UI'; import { ResourceType } from 'Player'; import FetchTabs from './components/FetchTabs/FetchTabs'; import { useStore } from 'App/mstore'; import { DateTime } from 'luxon'; interface Props { resource: any; time?: number; rows?: any; fetchPresented?: boolean; } function FetchDetailsModal(props: Props) { const { rows = [], fetchPresented = false } = props; const [resource, setResource] = useState(props.resource); const [first, setFirst] = useState(false); const [last, setLast] = useState(false); const isXHR = resource.type === ResourceType.XHR || resource.type === ResourceType.FETCH const { sessionStore: { devTools }, settingsStore: { sessionSettings: { timezone }}, } = useStore(); useEffect(() => { const index = rows.indexOf(resource); const length = rows.length - 1; setFirst(index === 0); setLast(index === length); }, [resource]); const prevClick = () => { const index = rows.indexOf(resource); if (index > 0) { setResource(rows[index - 1]); devTools.update('network', { index: index - 1 }) } }; const nextClick = () => { const index = rows.indexOf(resource); if (index < rows.length - 1) { setResource(rows[index + 1]); devTools.update('network', { index: index + 1 }) } }; return (
Network Request
{isXHR && } {rows && rows.length > 0 && (
)}
); } export default FetchDetailsModal;