Skip to content

Commit c4c3ef9

Browse files
Merge pull request #88 from RedisInsight/fix/RI-2124_infinity-loading
Fix/ Workbench query infinity loading
2 parents c0ac1a5 + 34e0768 commit c4c3ef9

File tree

5 files changed

+26
-13
lines changed

5 files changed

+26
-13
lines changed

redisinsight/ui/src/components/query-card/QueryCard.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ const QueryCard = (props: Props) => {
149149
{isOpen && (
150150
<>
151151
{React.isValidElement(result)
152-
? <QueryCardCommonResult result={result} />
152+
? <QueryCardCommonResult loading={loading} result={result} />
153153
: (
154154
<>
155155
{viewTypeSelected === WBQueryType.Plugin && (
@@ -170,7 +170,7 @@ const QueryCard = (props: Props) => {
170170
</>
171171
)}
172172
{viewTypeSelected === WBQueryType.Text && (
173-
<QueryCardCliResult query={query} status={status} result={result} />
173+
<QueryCardCliResult loading={loading} query={query} status={status} result={result} />
174174
)}
175175
</>
176176
)}

redisinsight/ui/src/components/query-card/QueryCardCliResult/QueryCardCliResult.spec.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ describe('QueryCardCliResult', () => {
5050
expect(resultEl).toHaveTextContent(result)
5151
})
5252

53-
it('Result element should not render without result prop', () => {
53+
it('Result element should render (nil) result', () => {
5454
const result = ''
5555

5656
const { queryByTestId } = render(
@@ -59,6 +59,6 @@ describe('QueryCardCliResult', () => {
5959

6060
const resultEl = queryByTestId(resultTestId)
6161

62-
expect(resultEl).not.toBeInTheDocument()
62+
expect(resultEl).toHaveTextContent('(nil)')
6363
})
6464
})

redisinsight/ui/src/components/query-card/QueryCardCliResult/QueryCardCliResult.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,27 @@ import { EuiLoadingContent } from '@elastic/eui'
44

55
import { cliParseTextResponse, CliPrefix, Maybe } from 'uiSrc/utils'
66
import { CommandExecutionStatus } from 'uiSrc/slices/interfaces/cli'
7+
78
import styles from './styles.module.scss'
89

910
export interface Props {
1011
status: Maybe<CommandExecutionStatus>;
1112
query: string;
1213
result: any;
14+
loading?: boolean;
1315
}
1416

1517
const QueryCardCliResult = (props: Props) => {
16-
const { result, query, status } = props
18+
const { result, query, status, loading } = props
1719

1820
return (
1921
<div className={cx('queryResultsContainer', styles.container)}>
20-
{!!result && (
22+
{!loading && (
2123
<div data-testid="query-cli-result">
22-
{cliParseTextResponse(result, query, status, CliPrefix.QueryCard)}
24+
{cliParseTextResponse(result || '(nil)', query, status, CliPrefix.QueryCard)}
2325
</div>
2426
)}
25-
{!result && (
27+
{loading && (
2628
<div className={styles.loading}>
2729
<EuiLoadingContent lines={1} />
2830
</div>

redisinsight/ui/src/components/query-card/QueryCardCommonResult/QueryCardCommonResult.spec.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,14 @@ describe('QueryCardCliResult', () => {
1717
it('should render', () => {
1818
expect(render(<QueryCardCommonResult {...instance(mockedProps)} />)).toBeTruthy()
1919
})
20+
it('should render (nil) result', () => {
21+
const result = ''
22+
const { queryByTestId } = render(
23+
<QueryCardCommonResult {...instance(mockedProps)} result={result} />
24+
)
25+
26+
const resultEl = queryByTestId('query-common-result')
27+
28+
expect(resultEl).toHaveTextContent('(nil)')
29+
})
2030
})

redisinsight/ui/src/components/query-card/QueryCardCommonResult/QueryCardCommonResult.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,21 @@ import { EuiLoadingContent } from '@elastic/eui'
55
import styles from './styles.module.scss'
66

77
export interface Props {
8-
result: React.ReactElement;
8+
result: React.ReactElement | string;
9+
loading?: boolean;
910
}
1011

1112
const QueryCardCommonResult = (props: Props) => {
12-
const { result } = props
13+
const { result, loading } = props
1314

1415
return (
1516
<div className={cx('queryResultsContainer', styles.container)}>
16-
{!!result && (
17+
{!loading && (
1718
<div data-testid="query-common-result">
18-
{ result }
19+
{ result || '(nil)' }
1920
</div>
2021
)}
21-
{!result && (
22+
{loading && (
2223
<div className={styles.loading}>
2324
<EuiLoadingContent lines={1} />
2425
</div>

0 commit comments

Comments
 (0)