From 3d6ebe67b736838947a13b0290367527a688a906 Mon Sep 17 00:00:00 2001 From: Pooja Belaramani Date: Wed, 22 Jan 2025 14:07:58 +0530 Subject: [PATCH] improve: script ui --- .../RequestPane/Script/StyledWrapper.js | 39 ++++++++-- .../components/RequestPane/Script/index.js | 75 ++++++++++++------- 2 files changed, 80 insertions(+), 34 deletions(-) diff --git a/packages/bruno-app/src/components/RequestPane/Script/StyledWrapper.js b/packages/bruno-app/src/components/RequestPane/Script/StyledWrapper.js index 66ba1ed3da..e876e5644a 100644 --- a/packages/bruno-app/src/components/RequestPane/Script/StyledWrapper.js +++ b/packages/bruno-app/src/components/RequestPane/Script/StyledWrapper.js @@ -1,13 +1,42 @@ import styled from 'styled-components'; const StyledWrapper = styled.div` - div.CodeMirror { - height: inherit; + height: 100%; + + .script-tabs { + display: flex; + gap: 1px; + padding: 0 1px; + border-bottom: 1px solid ${(props) => props.theme.requestTabs.bottomBorder}; } - div.title { - color: var(--color-tab-inactive); + .tab { + padding: 8px 16px; + font-size: 13px; + background: transparent; + border: none; + cursor: pointer; + color: ${(props) => props.theme.requestTabs.color}; + border-bottom: 2px solid transparent; + transition: all 0.2s ease; + position: relative; + + &:hover { + color: ${(props) => props.theme.requestTabs.icon.hoverColor}; + background: ${(props) => props.theme.requestTabs.icon.hoverBg}; + } + + &.active { + color: ${(props) => props.theme.tabs.active.color}; + border-bottom: solid 2px ${(props) => props.theme.tabs.active.border}; + background: ${(props) => props.theme.requestTabs.active.bg}; + } + } + + div.CodeMirror { + height: calc(100vh - 290px); + background: ${(props) => props.theme.codemirror.bg}; } `; -export default StyledWrapper; +export default StyledWrapper; \ No newline at end of file diff --git a/packages/bruno-app/src/components/RequestPane/Script/index.js b/packages/bruno-app/src/components/RequestPane/Script/index.js index ec4f4df95c..33aa21bd13 100644 --- a/packages/bruno-app/src/components/RequestPane/Script/index.js +++ b/packages/bruno-app/src/components/RequestPane/Script/index.js @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState } from 'react'; import get from 'lodash/get'; import { useDispatch, useSelector } from 'react-redux'; import CodeEditor from 'components/CodeEditor'; @@ -8,6 +8,7 @@ import { useTheme } from 'providers/Theme'; import StyledWrapper from './StyledWrapper'; const Script = ({ item, collection }) => { + const [activeTab, setActiveTab] = useState('pre-request'); const dispatch = useDispatch(); const requestScript = item.draft ? get(item, 'draft.request.script.req') : get(item, 'request.script.req'); const responseScript = item.draft ? get(item, 'draft.request.script.res') : get(item, 'request.script.res'); @@ -39,37 +40,53 @@ const Script = ({ item, collection }) => { const onSave = () => dispatch(saveRequest(item.uid, collection.uid)); return ( - -
-
Pre Request
- + +
+ +
-
-
Post Response
- + +
+ {activeTab === 'pre-request' && ( + + )} + + {activeTab === 'post-response' && ( + + )}
); }; -export default Script; +export default Script; \ No newline at end of file