Skip to content

Commit d6fbf79

Browse files
author
Artyom Podymov
committed
Merge branch 'main' into feature/RI-2083_enablement-area-markdown
# Conflicts: # redisinsight/ui/src/pages/workbench/components/enablament-area/EnablementArea/EnablementArea.tsx # redisinsight/ui/src/pages/workbench/components/enablament-area/EnablementArea/components/InternalPage/InternalPage.tsx
2 parents 5e6b00e + 354933c commit d6fbf79

File tree

47 files changed

+1504
-224
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1504
-224
lines changed

redisinsight/ui/src/components/navigation-menu/NavigationMenu.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ const NavigationMenu = () => {
161161
</>
162162
)}
163163
>
164-
<div className={styles.popover}>
164+
<div className={styles.popover} data-testid="help-center">
165165
<EuiTitle size="xs">
166166
<span>Help Center</span>
167167
</EuiTitle>
@@ -173,6 +173,7 @@ const NavigationMenu = () => {
173173
className={styles.helpMenuItemLink}
174174
href="https://github.com/RedisInsight/RedisInsight/issues"
175175
target="_blank"
176+
data-testid="submit-bug-btn"
176177
>
177178
<EuiIcon type="flag" size="xl" />
178179
<EuiSpacer size="s" />
@@ -185,6 +186,7 @@ const NavigationMenu = () => {
185186
<EuiFlexItem
186187
className={styles.helpMenuItem}
187188
onClick={() => onKeyboardShortcutClick()}
189+
data-testid="shortcuts-btn"
188190
>
189191
<div className={styles.helpMenuItemLink}>
190192
<EuiIcon type="keyboardShortcut" size="xl" />
@@ -206,6 +208,7 @@ const NavigationMenu = () => {
206208
onClick={onClickReleaseNotes}
207209
href="https://docs.redis.com/staging/release-ri-v2.0/ri/release-notes/"
208210
target="_blank"
211+
data-testid="release-notes-btn"
209212
>
210213
<div className={cx({ [styles.helpMenuItemNotified]: isReleaseNotesViewed === false })}>
211214
<EuiIcon type="package" size="xl" />

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/QueryCardCliPlugin/QueryCardCliPlugin.tsx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,32 @@ const QueryCardCliPlugin = (props: Props) => {
4747

4848
const dispatch = useDispatch()
4949

50+
const sendMessageToPlugin = (data = {}) => {
51+
const event: any = document.createEvent('Event')
52+
event.initEvent('message', false, false)
53+
event.data = data
54+
event.origin = '*'
55+
pluginIframeRef?.current?.contentWindow?.dispatchEvent(event)
56+
}
57+
5058
const executeCommand = () => {
51-
pluginIframeRef?.current?.contentWindow?.postMessage({
59+
sendMessageToPlugin({
5260
event: 'executeCommand',
5361
method: currentView.activationMethod,
5462
data: { command: query, data: result, status }
55-
}, '*')
63+
})
5664
}
5765

5866
const sendRedisCommand = (command: string, requestId: string) => {
5967
dispatch(
6068
sendPluginCommandAction({
6169
command,
6270
onSuccessAction: (response) => {
63-
pluginIframeRef?.current?.contentWindow?.postMessage({
71+
sendMessageToPlugin({
6472
event: 'executeRedisCommand',
6573
requestId,
6674
data: response
67-
}, '*')
75+
})
6876
}
6977
})
7078
)
@@ -108,7 +116,7 @@ const QueryCardCliPlugin = (props: Props) => {
108116
modules
109117
})
110118
// @ts-ignore
111-
pluginIframeRef.current.src = `data:text/html;charset=utf-8,${encodeURI(html)}`
119+
pluginIframeRef.current.srcdoc = html
112120
}
113121

114122
const getGlobalStylesSrc = (): string =>

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>

redisinsight/ui/src/components/shortcuts-flyout/ShortcutsFlyout.spec.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ describe('ShortcutsFlyout', () => {
3131

3232
SHORTCUTS.forEach((group: ShortcutGroup) => {
3333
expect(
34-
document.querySelector(`[data-test-subj="shortcut-title-${group.name}"]`)
34+
document.querySelector(`[data-test-subj="shortcuts-section-${group.name}"]`)
3535
).toBeInTheDocument()
3636
})
3737
})

redisinsight/ui/src/components/shortcuts-flyout/ShortcutsFlyout.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const ShortcutsFlyout = () => {
3636

3737
const ShortcutsTable = ({ name, items }: ShortcutGroup) => (
3838
<div key={name}>
39-
<EuiTitle size="xxs" data-test-subj={`shortcut-title-${name}`}>
39+
<EuiTitle size="xxs" data-test-subj={`shortcuts-section-${name}`}>
4040
<h6>{name}</h6>
4141
</EuiTitle>
4242
<EuiSpacer size="m" />
@@ -55,9 +55,10 @@ const ShortcutsFlyout = () => {
5555
ownFocus
5656
size="538px"
5757
onClose={() => dispatch(setShortcutsFlyoutState(false))}
58+
data-test-subj="shortcuts-flyout"
5859
>
5960
<EuiFlyoutBody>
60-
<EuiTitle size="s" className={styles.title}>
61+
<EuiTitle size="s" className={styles.title} data-testid="shortcuts-title">
6162
<h4>Shortcuts</h4>
6263
</EuiTitle>
6364
<EuiSpacer size="m" />

redisinsight/ui/src/constants/storage.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ enum BrowserStorageItem {
88
segmentAnonymousId = 'ajs_anonymous_id',
99
wbClientUuid = 'wbClientUuid',
1010
wbInputHistory = 'wbInputHistory',
11+
isEnablementAreaMinimized = 'isEnablementAreaMinimized'
1112
}
1213

1314
export default BrowserStorageItem

0 commit comments

Comments
 (0)