import React, { Fragment } from 'react';
import {
ScrollView,
View,
} from 'react-native';
import styled from 'styled-components/native';
import {
Emphasis,
Fixed,
} from '../../base/text';
import JSONTree from 'react-native-json-tree';
import Cell from '../../base/Cell';
import CellHeader from '../../base/CellHeader';
import Tab from '../Tab';
const WebView = styled.WebView`
`;
const theme = {
scheme: 'bright',
author: 'chris kempson (http://chriskempson.com)',
base00: '#000000',
base01: '#303030',
base02: '#505050',
base03: '#b0b0b0',
base04: '#d0d0d0',
base05: '#e0e0e0',
base06: '#f5f5f5',
base07: '#ffffff',
base08: '#fb0120',
base09: '#fc6d24',
base0A: '#fda331',
base0B: '#a1c659',
base0C: '#76c7b7',
base0D: '#6fb3d2',
base0E: '#d381c3',
base0F: '#be643c'
};
const Indented = styled.View`
margin: 0 25px;
`;
const getResponse = (contentType, request) => {
if (!contentType) {
return null;
}
if (request.responseType == 'blob' || request.responseType == 'ArrayBuffer') {
return 🤖 Binary
}
const contentTypes = contentType.split(';').map(c => c.trim());
if (contentTypes.includes('application/json')) {
const data = JSON.parse(request.responseText);
return
}
return {request.responseText};
}
let i = 0;
const Data = ({
url,
method,
status,
headers,
requestHeaders,
args = [],
}) => {
const headerInfo = Object.keys(headers).map(key => `${key}: ${headers[key]}`).join('\n');
return (
|
|
|
Response Headers
{requestHeaders}
{headerInfo.length > 0 && (
Request Headers
{headerInfo}
)}
{args[0] && (
Request Body
{args[0].toString()}
)}
);
};
const Response = ({
contentType,
request,
}) => (
{getResponse(contentType, request)}
);
const getPreview = (contentType, request, url) => {
if (!contentType || request.responseType == 'blob' || request.responseType == 'ArrayBuffer' || !contentType) {
return [];
}
const contentTypes = contentType.split(';').map(c => c.trim());
if (contentTypes.includes('text/html')) {
return [{
name: 'Preview',
view: (
),
}]
}
return [];
}
const RequestDetails = (props) => (
}, {
name: 'Response',
view:
}, ...getPreview(props.contentType, props.request, props.url)]}
/>
);
export default RequestDetails;