import React from 'react'; import find from 'lodash/find'; import classnames from 'classnames'; import { useSelector, useDispatch } from 'react-redux'; import { updateRequestPaneTab } from 'providers/ReduxStore/slices/tabs'; import QueryParams from 'components/RequestPane/QueryParams'; import RequestHeaders from 'components/RequestPane/RequestHeaders'; import RequestBody from 'components/RequestPane/RequestBody'; import RequestBodyMode from 'components/RequestPane/RequestBody/RequestBodyMode'; import StyledWrapper from './StyledWrapper'; const HttpRequestPane = ({item, collection, leftPaneWidth}) => { const dispatch = useDispatch(); const tabs = useSelector((state) => state.tabs.tabs); const activeTabUid = useSelector((state) => state.tabs.activeTabUid); const selectTab = (tab) => { dispatch(updateRequestPaneTab({ uid: item.uid, requestPaneTab: tab })) }; const getTabPanel = (tab) => { switch(tab) { case 'params': { return ; } case 'body': { return ; } case 'headers': { return ; } default: { return
404 | Not found
; } } } if(!activeTabUid) { return (
Something went wrong
); } const focusedTab = find(tabs, (t) => t.uid === activeTabUid); if(!focusedTab || !focusedTab.uid || !focusedTab.requestPaneTab) { return (
An error occured!
); } const getTabClassname = (tabName) => { return classnames(`tab select-none ${tabName}`, { 'active': tabName === focusedTab.requestPaneTab }); }; return (
selectTab('params')}>Params
selectTab('body')}>Body
selectTab('headers')}>Headers
{/* Moved to post mvp */} {/*
selectTab('auth')}>Auth
*/} {focusedTab.requestPaneTab === 'body' ? (
) : null }
{getTabPanel(focusedTab.requestPaneTab)}
) }; export default HttpRequestPane;