feat: listeners for cmd+s ctr+s in SingleLineEditor

This commit is contained in:
Anoop M D 2023-01-22 00:49:11 +05:30
parent 2e3b296021
commit 0e041d460c
6 changed files with 21 additions and 9 deletions

View File

@ -5,7 +5,7 @@ import { IconTrash } from '@tabler/icons';
import { useDispatch } from 'react-redux';
import { addFormUrlEncodedParam, updateFormUrlEncodedParam, deleteFormUrlEncodedParam } from 'providers/ReduxStore/slices/collections';
import SingleLineEditor from 'components/SingleLineEditor';
import { sendRequest } from 'providers/ReduxStore/slices/collections/actions';
import { sendRequest, saveRequest } from 'providers/ReduxStore/slices/collections/actions';
import StyledWrapper from './StyledWrapper';
const FormUrlEncodedParams = ({ item, collection }) => {
@ -21,6 +21,7 @@ const FormUrlEncodedParams = ({ item, collection }) => {
);
};
const onSave = () => dispatch(saveRequest(item.uid, collection.uid));
const handleRun = () => dispatch(sendRequest(item, collection.uid));
const handleParamChange = (e, _param, type) => {
const param = cloneDeep(_param);
@ -87,6 +88,7 @@ const FormUrlEncodedParams = ({ item, collection }) => {
<td>
<SingleLineEditor
value={param.value}
onSave={onSave}
onChange={(newValue) => handleParamChange({
target: {
value: newValue

View File

@ -5,7 +5,7 @@ import { IconTrash } from '@tabler/icons';
import { useDispatch } from 'react-redux';
import { addMultipartFormParam, updateMultipartFormParam, deleteMultipartFormParam } from 'providers/ReduxStore/slices/collections';
import SingleLineEditor from 'components/SingleLineEditor';
import { sendRequest } from 'providers/ReduxStore/slices/collections/actions';
import { sendRequest, saveRequest } from 'providers/ReduxStore/slices/collections/actions';
import StyledWrapper from './StyledWrapper';
const MultipartFormParams = ({ item, collection }) => {
@ -21,6 +21,7 @@ const MultipartFormParams = ({ item, collection }) => {
);
};
const onSave = () => dispatch(saveRequest(item.uid, collection.uid));
const handleRun = () => dispatch(sendRequest(item, collection.uid));
const handleParamChange = (e, _param, type) => {
const param = cloneDeep(_param);
@ -86,6 +87,7 @@ const MultipartFormParams = ({ item, collection }) => {
</td>
<td>
<SingleLineEditor
onSave={onSave}
value={param.value}
onChange={(newValue) => handleParamChange({
target: {

View File

@ -5,7 +5,7 @@ import { IconTrash } from '@tabler/icons';
import { useDispatch } from 'react-redux';
import { addQueryParam, updateQueryParam, deleteQueryParam } from 'providers/ReduxStore/slices/collections';
import SingleLineEditor from 'components/SingleLineEditor';
import { sendRequest } from 'providers/ReduxStore/slices/collections/actions';
import { sendRequest, saveRequest } from 'providers/ReduxStore/slices/collections/actions';
import StyledWrapper from './StyledWrapper';
@ -22,6 +22,7 @@ const QueryParams = ({ item, collection }) => {
);
};
const onSave = () => dispatch(saveRequest(item.uid, collection.uid));
const handleRun = () => dispatch(sendRequest(item, collection.uid));
const handleParamChange = (e, _param, type) => {
const param = cloneDeep(_param);
@ -90,6 +91,7 @@ const QueryParams = ({ item, collection }) => {
<td>
<SingleLineEditor
value={param.value}
onSave={onSave}
onChange={(newValue) => handleParamChange({
target: {
value: newValue

View File

@ -2,6 +2,7 @@ import React from 'react';
import get from 'lodash/get';
import { useDispatch } from 'react-redux';
import { requestUrlChanged, updateRequestMethod } from 'providers/ReduxStore/slices/collections';
import { saveRequest } from 'providers/ReduxStore/slices/collections/actions';
import HttpMethodSelector from './HttpMethodSelector';
import { useTheme } from 'providers/Theme';
import SendIcon from 'components/Icons/Send';
@ -14,6 +15,7 @@ const QueryUrl = ({ item, collection, handleRun }) => {
const method = item.draft ? get(item, 'draft.request.method') : get(item, 'request.method');
const url = item.draft ? get(item, 'draft.request.url') : get(item, 'request.url');
const onSave = () => dispatch(saveRequest(item.uid, collection.uid));
const onUrlChange = (value) => {
dispatch(
requestUrlChanged({
@ -42,6 +44,7 @@ const QueryUrl = ({ item, collection, handleRun }) => {
<div className="flex items-center flex-grow input-container h-full">
<SingleLineEditor
value={url}
onSave={onSave}
onChange={(newValue) => onUrlChange(newValue)}
onRun={handleRun}
collection={collection}

View File

@ -4,7 +4,7 @@ import cloneDeep from 'lodash/cloneDeep';
import { IconTrash } from '@tabler/icons';
import { useDispatch } from 'react-redux';
import { addRequestHeader, updateRequestHeader, deleteRequestHeader } from 'providers/ReduxStore/slices/collections';
import { sendRequest } from 'providers/ReduxStore/slices/collections/actions';
import { sendRequest, saveRequest } from 'providers/ReduxStore/slices/collections/actions';
import SingleLineEditor from 'components/SingleLineEditor';
import StyledWrapper from './StyledWrapper';
@ -21,6 +21,7 @@ const RequestHeaders = ({ item, collection }) => {
);
};
const onSave = () => dispatch(saveRequest(item.uid, collection.uid));
const handleRun = () => dispatch(sendRequest(item, collection.uid));
const handleHeaderValueChange = (e, _header, type) => {
const header = cloneDeep(_header);
@ -87,6 +88,7 @@ const RequestHeaders = ({ item, collection }) => {
<td>
<SingleLineEditor
value={header.value}
onSave={onSave}
onChange={(newValue) => handleHeaderValueChange({
target: {
value: newValue

View File

@ -22,7 +22,6 @@ class SingleLineEditor extends Component {
this.editor = CodeMirror(this.editorRef.current, {
lineWrapping: false,
lineNumbers: false,
autofocus: true,
mode: "brunovariables",
brunoVarInfo: {
variables: getEnvironmentVariables(this.props.collection),
@ -54,7 +53,9 @@ class SingleLineEditor extends Component {
}
},
'Cmd-S': () => {
console.log('cmd-s');
if (this.props.onSave) {
console.log('cmd-s +');
this.props.onSave();
}
},