import React from "react"; import { connect } from "react-redux"; import { withRouter, RouteComponentProps } from "react-router"; import FormRow from "./FormRow"; import { BaseText } from "../canvas/TextViewComponent"; import { BaseTabbedView } from "../canvas/TabbedView"; import JSONViewer from "./JSONViewer"; import styled from "styled-components"; import { AppState } from "../../reducers"; import { ActionApiResponse } from "../../reducers/entityReducers/actionsReducer"; const ResponseWrapper = styled.div` flex: 4; `; const ResponseMetaInfo = styled.div` display: flex; ${BaseText} { color: #768896; margin: 0 5px; } `; interface ReduxStateProps { responses: { [id: string]: ActionApiResponse; }; } const TableWrapper = styled.div` &&& { table { table-layout: fixed; width: 100%; td { font-size: 12px; width: 50%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } } } `; const ResponseHeadersView = (props: { data: { [name: string]: Array }; }) => { if (!props.data) return
; return ( {Object.keys(props.data).map(k => ( ))}
Key Value
{k} {props.data[k].join(", ")}
); }; type Props = ReduxStateProps & RouteComponentProps<{ id: string }>; const ApiResponseView = (props: Props) => { const response = props.responses[props.match.params.id] || {}; return ( {response.statusCode} 300ms 203 kb , }, { key: "headers", title: "Response Headers", panelComponent: , }, ]} /> ); }; const mapStateToProps = (state: AppState): ReduxStateProps => ({ responses: state.entities.actions.responses, }); export default connect(mapStateToProps)(withRouter(ApiResponseView));