From 13074a46ccec78b786e479d4b3e7b8ba820143d0 Mon Sep 17 00:00:00 2001 From: Charles Wahome Date: Fri, 29 Jan 2021 08:21:47 -0800 Subject: [PATCH] Fix: shrink request section (#822) * resize to complete shrinkage * adjust response-headers height * remove unnecessary code * add container style to auth import --- .../headers/ResponseHeaders.tsx | 2 +- .../views/query-runner/request/Request.tsx | 36 ++++++---- .../query-runner/request/auth/Auth.styles.ts | 7 +- .../views/query-runner/request/auth/Auth.tsx | 7 +- .../query-runner/request/body/RequestBody.tsx | 18 +++-- .../views/query-runner/request/body/index.ts | 4 ++ .../request/headers/Headers.styles.ts | 3 +- .../request/permissions/Permission.tsx | 67 ++++++++++--------- 8 files changed, 85 insertions(+), 59 deletions(-) create mode 100644 src/app/views/query-runner/request/body/index.ts diff --git a/src/app/views/query-response/headers/ResponseHeaders.tsx b/src/app/views/query-response/headers/ResponseHeaders.tsx index ed70e1690..d439d2f08 100644 --- a/src/app/views/query-response/headers/ResponseHeaders.tsx +++ b/src/app/views/query-response/headers/ResponseHeaders.tsx @@ -11,7 +11,7 @@ const ResponseHeaders = () => { const { dimensions: { response }, graphResponse, responseAreaExpanded } = useSelector((state: any) => state); const { headers } = graphResponse; - const height = convertVhToPx(getResponseHeight(response, responseAreaExpanded), 100); + const height = convertVhToPx(getResponseHeight(response.height, responseAreaExpanded), 100); if (headers) { return ( diff --git a/src/app/views/query-runner/request/Request.tsx b/src/app/views/query-runner/request/Request.tsx index b9b8fa38f..3169eb43a 100644 --- a/src/app/views/query-runner/request/Request.tsx +++ b/src/app/views/query-runner/request/Request.tsx @@ -6,7 +6,7 @@ import { TooltipHost, } from 'office-ui-fabric-react'; import { Resizable } from 're-resizable'; -import React, { Component } from 'react'; +import React, { Component, CSSProperties } from 'react'; import { injectIntl } from 'react-intl'; import { connect } from 'react-redux'; import { bindActionCreators, Dispatch } from 'redux'; @@ -15,11 +15,10 @@ import { telemetry } from '../../../../telemetry'; import { Mode } from '../../../../types/enums'; import { IRequestComponent } from '../../../../types/request'; import { setDimensions } from '../../../services/actions/dimensions-action-creator'; -import { sanitizeQueryUrl } from '../../../utils/query-url-sanitization'; import { translateMessage } from '../../../utils/translate-messages'; import { convertVhToPx } from '../../common/dimensions-adjustment'; -import { Monaco } from '../../common/monaco/Monaco'; import { Auth } from './auth'; +import { RequestBody } from './body'; import { RequestHeaders } from './headers'; import { Permission } from './permissions'; import './request.scss'; @@ -32,11 +31,17 @@ export class Request extends Component { private getPivotItems = (height: string) => { const { handleOnEditorChange, - sampleQuery, mode, intl: { messages }, }: any = this.props; + const heightAdjustment = 55; + const containerStyle: CSSProperties = { + height: convertVhToPx(height, heightAdjustment), + overflowY: 'hidden', + borderBottom: '1px solid #ddd' + }; + const pivotItems = [ { title={messages['request body']} headerText={messages['request body']} > - handleOnEditorChange(value)} /> +
+ +
, { title={messages['request header']} headerText={messages['request header']} > - +
+ +
, { title={translateMessage('permissions preview')} headerText={messages['modify permissions']} > - +
+ +
, ]; @@ -82,7 +90,9 @@ export class Request extends Component { onRenderItemLink={this.getTooltipDisplay} title={messages['Access Token']} headerText={messages['Access Token']}> - +
+ +
); } @@ -124,7 +134,7 @@ export class Request extends Component { public render() { const { dimensions } = this.props; const requestPivotItems = this.getPivotItems(dimensions.request.height); - const minHeight = 250; + const minHeight = 60; const maxHeight = 800; return ( @@ -133,7 +143,7 @@ export class Request extends Component { border: 'solid 1px #ddd', marginBottom: 10, }} - onResize={(e: any, direction: any, ref: any, d: any) => { + onResize={(e: any, direction: any, ref: any) => { if (ref && ref.style && ref.style.height) { this.setRequestAndResponseHeights(ref.style.height); } diff --git a/src/app/views/query-runner/request/auth/Auth.styles.ts b/src/app/views/query-runner/request/auth/Auth.styles.ts index c7e00c931..d30ceeb59 100644 --- a/src/app/views/query-runner/request/auth/Auth.styles.ts +++ b/src/app/views/query-runner/request/auth/Auth.styles.ts @@ -3,7 +3,8 @@ import { FontSizes, ITheme } from '@uifabric/styling'; export const authStyles = (theme: ITheme) => { return { auth: { - padding: 10 + padding: 5, + overflowY: 'auto', }, accessTokenContainer: { width: 160, @@ -18,7 +19,7 @@ export const authStyles = (theme: ITheme) => { fontFamily: 'monospace', fontSize: FontSizes.xSmall, width: '100%', - height: 150, + height: '100%', border: 'none', resize: 'none' }, @@ -29,7 +30,7 @@ export const authStyles = (theme: ITheme) => { emptyStateLabel: { display: 'flex', width: '100%', - minHeight: 200, + minHeight: '100%', justifyContent: 'center', alignItems: 'center' diff --git a/src/app/views/query-runner/request/auth/Auth.tsx b/src/app/views/query-runner/request/auth/Auth.tsx index bce206560..5a3587cbf 100644 --- a/src/app/views/query-runner/request/auth/Auth.tsx +++ b/src/app/views/query-runner/request/auth/Auth.tsx @@ -1,16 +1,19 @@ import { IconButton, IIconProps, Label, styled } from 'office-ui-fabric-react'; import React from 'react'; +import { useEffect } from 'react'; import { FormattedMessage } from 'react-intl'; import { useSelector } from 'react-redux'; import { componentNames, eventTypes, telemetry } from '../../../../../telemetry'; import { translateMessage } from '../../../../utils/translate-messages'; import { classNames } from '../../../classnames'; import { genericCopy } from '../../../common/copy'; +import { convertVhToPx } from '../../../common/dimensions-adjustment'; import { authStyles } from './Auth.styles'; export function Auth(props: any) { - const accessToken = useSelector((state: any) => state.authToken); + const { authToken: accessToken, dimensions: { request: { height } } } = useSelector((state: any) => state); + const requestHeight = convertVhToPx(height, 60); const handleCopy = async () => { await genericCopy(accessToken); @@ -26,7 +29,7 @@ export function Auth(props: any) { iconName: 'code' }; - return (
+ return (
{accessToken ?
diff --git a/src/app/views/query-runner/request/body/RequestBody.tsx b/src/app/views/query-runner/request/body/RequestBody.tsx index 426cfc843..8a1661d7c 100644 --- a/src/app/views/query-runner/request/body/RequestBody.tsx +++ b/src/app/views/query-runner/request/body/RequestBody.tsx @@ -1,12 +1,18 @@ import React from 'react'; +import { useSelector } from 'react-redux'; + import { Monaco } from '../../../common'; +import { convertVhToPx } from '../../../common/dimensions-adjustment'; + +const RequestBody = ({ handleOnEditorChange }: any) => { + const { dimensions: { request: { height } }, sampleQuery } = useSelector((state: any) => state); -export const RequestBodyControl = () => { return ( -
- -
+ handleOnEditorChange(value)} /> ); }; + +export default RequestBody; diff --git a/src/app/views/query-runner/request/body/index.ts b/src/app/views/query-runner/request/body/index.ts new file mode 100644 index 000000000..8ef4f1958 --- /dev/null +++ b/src/app/views/query-runner/request/body/index.ts @@ -0,0 +1,4 @@ +import RequestBody from './RequestBody'; +export { + RequestBody +}; \ No newline at end of file diff --git a/src/app/views/query-runner/request/headers/Headers.styles.ts b/src/app/views/query-runner/request/headers/Headers.styles.ts index e86387604..3b260f460 100644 --- a/src/app/views/query-runner/request/headers/Headers.styles.ts +++ b/src/app/views/query-runner/request/headers/Headers.styles.ts @@ -3,11 +3,10 @@ import { FontSizes } from '@uifabric/styling'; export const headerStyles = () => { return { container: { - width: '100%', textAlign: 'center', padding: 10, overflowY: 'auto', - overflowX: 'auto' + overflowX: 'hidden' }, itemContent: { marginTop: '2.5%', diff --git a/src/app/views/query-runner/request/permissions/Permission.tsx b/src/app/views/query-runner/request/permissions/Permission.tsx index 24e485248..1b1a070e1 100644 --- a/src/app/views/query-runner/request/permissions/Permission.tsx +++ b/src/app/views/query-runner/request/permissions/Permission.tsx @@ -238,39 +238,42 @@ export class Permission extends Component { const tabHeight = convertVhToPx(dimensions.request.height, 110); - return ( -
- {loading && } - {!loading && -
- {!panel && - this.renderItemColumn(item, index, column)} - renderDetailsHeader={this.renderDetailsHeader} - classes={classes} - />} - {panel && -
- - this.renderItemColumn(item, index, column)} - renderDetailsHeader={this.renderDetailsHeader} - /> -
- } -
- } + if (loading) { + return ; + } + + const displayPermissionsPanel = () => { + return
+ + this.renderItemColumn(item, index, column)} + renderDetailsHeader={this.renderDetailsHeader} + />
- ); + }; + + const displayPermissionsAsTab = () => { + return + this.renderItemColumn(item, index, column)} + renderDetailsHeader={this.renderDetailsHeader} + classes={classes} + />; + }; + + if (panel) { + return displayPermissionsPanel(); + } + + return displayPermissionsAsTab(); } }