mirror of
https://github.com/usebruno/bruno.git
synced 2024-11-21 23:43:15 +01:00
feat: request headers
This commit is contained in:
parent
f9e7d1463b
commit
d7c3779e14
@ -0,0 +1,39 @@
|
|||||||
|
import styled from 'styled-components';
|
||||||
|
|
||||||
|
const Wrapper = styled.div`
|
||||||
|
table {
|
||||||
|
width: 100%;
|
||||||
|
border-collapse: collapse;
|
||||||
|
font-weight: 600;
|
||||||
|
|
||||||
|
thead, td {
|
||||||
|
border: 1px solid #efefef;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead {
|
||||||
|
color: #777777;
|
||||||
|
font-size: 0.75rem;
|
||||||
|
}
|
||||||
|
td {
|
||||||
|
padding: 6px 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-add-header {
|
||||||
|
margin-block: 10px;
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="text"] {
|
||||||
|
width: 100%;
|
||||||
|
border: solid 1px transparent;
|
||||||
|
outline: none !important;
|
||||||
|
|
||||||
|
&:focus{
|
||||||
|
outline: none !important;
|
||||||
|
border: solid 1px transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
export default Wrapper;
|
@ -0,0 +1,90 @@
|
|||||||
|
import React, { useState } from 'react';
|
||||||
|
import StyledWrapper from './StyledWrapper';
|
||||||
|
|
||||||
|
const RequestHeaders = () => {
|
||||||
|
const [headers, setHeaders] = useState([{enabled: true}]);
|
||||||
|
|
||||||
|
const addHeader = () => {
|
||||||
|
let newHeader = {
|
||||||
|
key: '',
|
||||||
|
value: '',
|
||||||
|
description: '',
|
||||||
|
enabled: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
let newHeaders = [...headers, newHeader];
|
||||||
|
setHeaders(newHeaders);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleHeaderValueChange = (e, index, menu) => {
|
||||||
|
// todo: yet to implement
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleRemoveHeader = (index) => {
|
||||||
|
headers.splice(index, 1);
|
||||||
|
setHeaders(...headers);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<StyledWrapper className="mt-4">
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>KEY</td>
|
||||||
|
<td>VALUE</td>
|
||||||
|
<td>DESCRIPTION</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{headers && headers.length && headers.map((header, index) => {
|
||||||
|
return (
|
||||||
|
<tr key={index}>
|
||||||
|
<td>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
defaultChecked={header.enabled}
|
||||||
|
name="enabled"
|
||||||
|
onChange={(e) => handleHeaderValueChange(e, index, 'enabled')}
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
name="key"
|
||||||
|
defaultValue={headers[index].key}
|
||||||
|
onChange={(e) => handleHeaderValueChange(e, index, 'key')}
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
name="value"
|
||||||
|
defaultValue={headers[index].value}
|
||||||
|
onChange={(e) => handleHeaderValueChange(e, index, 'value')}
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
name="description"
|
||||||
|
defaultValue={headers[index].description}
|
||||||
|
onChange={(e) => handleHeaderValueChange(e, index, 'description')}
|
||||||
|
/>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<button onClick={() => handleRemoveHeader(index)}>
|
||||||
|
remove
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
)
|
||||||
|
})}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<button className="btn-add-header" onClick={addHeader}>+ Add Header</button>
|
||||||
|
</StyledWrapper>
|
||||||
|
)
|
||||||
|
};
|
||||||
|
export default RequestHeaders;
|
@ -2,6 +2,7 @@ import React from 'react';
|
|||||||
import { Tab, TabList, TabPanel, Tabs } from 'react-tabs';
|
import { Tab, TabList, TabPanel, Tabs } from 'react-tabs';
|
||||||
import StyledWrapper from './StyledWrapper';
|
import StyledWrapper from './StyledWrapper';
|
||||||
import QueryEditor from '../QueryEditor';
|
import QueryEditor from '../QueryEditor';
|
||||||
|
import RequestHeaders from '../RequestHeaders';
|
||||||
|
|
||||||
const RequestPane = ({onRunQuery, schema, leftPaneWidth, value, onQueryChange}) => {
|
const RequestPane = ({onRunQuery, schema, leftPaneWidth, value, onQueryChange}) => {
|
||||||
return (
|
return (
|
||||||
@ -21,7 +22,7 @@ const RequestPane = ({onRunQuery, schema, leftPaneWidth, value, onQueryChange})
|
|||||||
/>
|
/>
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
<TabPanel>
|
<TabPanel>
|
||||||
Headers
|
<RequestHeaders />
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
</StyledWrapper>
|
</StyledWrapper>
|
||||||
|
Loading…
Reference in New Issue
Block a user