diff --git a/redisinsight/ui/src/components/auto-refresh/AutoRefresh.tsx b/redisinsight/ui/src/components/auto-refresh/AutoRefresh.tsx
index 281f4da40f..9744d85a3a 100644
--- a/redisinsight/ui/src/components/auto-refresh/AutoRefresh.tsx
+++ b/redisinsight/ui/src/components/auto-refresh/AutoRefresh.tsx
@@ -39,7 +39,7 @@ export interface Props {
defaultRefreshRate?: string
iconSize?: EuiButtonIconSizes
disabled?: boolean
- disabledRefreshButtonMessage: string
+ disabledRefreshButtonMessage?: string
enableAutoRefreshDefault?: boolean
}
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details-header/KeyDetailsHeader.tsx b/redisinsight/ui/src/pages/browser/modules/key-details-header/KeyDetailsHeader.tsx
index 9db1f9a16b..74b5f8f577 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details-header/KeyDetailsHeader.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details-header/KeyDetailsHeader.tsx
@@ -36,7 +36,7 @@ import { KeyDetailsHeaderSizeLength } from './components/key-details-header-size
import styles from './styles.module.scss'
export interface KeyDetailsHeaderProps {
- onCloseKey: (key: RedisResponseBuffer) => void
+ onCloseKey: () => void
onRemoveKey: () => void
onEditKey: (key: RedisResponseBuffer, newKey: RedisResponseBuffer, onFailure?: () => void) => void
isFullScreen: boolean
@@ -58,7 +58,6 @@ const KeyDetailsHeader = ({
const {
type,
length,
- nameString: keyProp,
name: keyBuffer,
} = useSelector(selectedKeyDataSelector) ?? initialKeyInfo
const { id: instanceId } = useSelector(connectedInstanceSelector)
@@ -142,7 +141,7 @@ const KeyDetailsHeader = ({
color="primary"
aria-label="Close key"
className={styles.closeBtn}
- onClick={() => onCloseKey(keyProp)}
+ onClick={() => onCloseKey()}
data-testid="close-key-btn"
/>
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/dynamic-type-details/DynamicTypeDetails.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/dynamic-type-details/DynamicTypeDetails.tsx
index dbb2204681..6ff62e10e2 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/dynamic-type-details/DynamicTypeDetails.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/dynamic-type-details/DynamicTypeDetails.tsx
@@ -36,7 +36,7 @@ const DynamicTypeDetails = (props: Props) => {
}
if (isTruncatedString(keyProp)) {
- return
+ return
}
// Supported key type
@@ -46,11 +46,11 @@ const DynamicTypeDetails = (props: Props) => {
// Unsupported redis modules key type
if (Object.values(ModulesKeyTypes).includes(selectedKeyType as ModulesKeyTypes)) {
- return
+ return
}
// Unsupported key type
- return
+ return
}
export { DynamicTypeDetails }
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/ModulesTypeDetails.spec.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/ModulesTypeDetails.spec.tsx
index 0009d8b17d..88d0474876 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/ModulesTypeDetails.spec.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/ModulesTypeDetails.spec.tsx
@@ -6,6 +6,6 @@ import ModulesTypeDetails from './ModulesTypeDetails'
describe('ModulesTypeDetails', () => {
it('should render', () => {
- expect(render()).toBeTruthy()
+ expect(render()).toBeTruthy()
})
})
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/ModulesTypeDetails.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/ModulesTypeDetails.tsx
index 17fe9dddc1..85b6b8f30d 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/ModulesTypeDetails.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/ModulesTypeDetails.tsx
@@ -1,14 +1,19 @@
import React from 'react'
-import { EuiFlexGroup, EuiFlexItem, EuiText, EuiTitle } from '@elastic/eui'
+import { EuiText, EuiTitle } from '@elastic/eui'
import { useHistory } from 'react-router-dom'
import { useSelector } from 'react-redux'
import { Pages } from 'uiSrc/constants'
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
-import styles from '../unsupported-type-details/styles.module.scss'
+import styles from './styles.module.scss'
+import TextDetailsWrapper from '../text-details-wrapper/TextDetailsWrapper'
-const ModulesTypeDetails = ({ moduleName = 'unsupported' }: { moduleName: string }) => {
+type ModulesTypeDetailsProps = {
+ moduleName: string,
+ onClose: () => void,
+}
+const ModulesTypeDetails = ({ moduleName = 'unsupported', onClose }: ModulesTypeDetailsProps) => {
const history = useHistory()
const { id: connectedInstanceId = '' } = useSelector(connectedInstanceSelector)
@@ -18,30 +23,26 @@ const ModulesTypeDetails = ({ moduleName = 'unsupported' }: { moduleName: string
}
return (
-
+
+
+ {`This is a ${moduleName} key.`}
+
+
+ {'Use Redis commands in the '}
+ ({})}
+ role="link"
+ rel="noreferrer"
+ >
+ Workbench
+
+ {' tool to view the value.'}
+
+
)
}
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/styles.module.scss b/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/styles.module.scss
new file mode 100644
index 0000000000..d002cfade9
--- /dev/null
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/modules-type-details/styles.module.scss
@@ -0,0 +1,4 @@
+.link {
+ text-decoration: underline;
+ color: var(--euiColorFullShade);
+}
\ No newline at end of file
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/text-details-wrapper/TextDetailsWrapper.spec.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/text-details-wrapper/TextDetailsWrapper.spec.tsx
new file mode 100644
index 0000000000..45b7c0e9ac
--- /dev/null
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/text-details-wrapper/TextDetailsWrapper.spec.tsx
@@ -0,0 +1,29 @@
+import React from "react"
+import TextDetailsWrapper from "./TextDetailsWrapper"
+import { fireEvent, render, screen } from "uiSrc/utils/test-utils";
+
+describe('TextDetailsWrapper', () => {
+ it('should render children correctly', () => {
+ const { queryByTestId } = render(
+
+ Children
+
+ );
+
+ expect(queryByTestId('children-wrapper')).toBeInTheDocument();
+ });
+
+ it('should call onClose when close button is clicked', () => {
+ const mockOnClose = jest.fn();
+
+ render(
+
+ Children
+
+ );
+
+ fireEvent.click(screen.getByTestId("close-key-btn"));
+
+ expect(mockOnClose).toBeCalledTimes(1);
+ });
+})
\ No newline at end of file
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/text-details-wrapper/TextDetailsWrapper.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/text-details-wrapper/TextDetailsWrapper.tsx
new file mode 100644
index 0000000000..d135d8d563
--- /dev/null
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/text-details-wrapper/TextDetailsWrapper.tsx
@@ -0,0 +1,38 @@
+import React, { ReactNode } from 'react';
+
+import { EuiButtonIcon, EuiFlexGroup, EuiFlexItem, EuiToolTip } from "@elastic/eui";
+
+import styles from './styles.module.scss';
+
+const TextDetailsWrapper = (
+ { onClose, children, testid }: { onClose: () => void, children: ReactNode, testid?: string }
+) => {
+ const getDataTestid = (suffix: string) => (testid ? `${testid}-${suffix}` : suffix);
+
+ return (
+
+
+ onClose()}
+ data-testid={getDataTestid('close-key-btn')}
+ />
+
+
+
+ {children}
+
+
+
+ );
+}
+
+
+export default TextDetailsWrapper;
\ No newline at end of file
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/styles.module.scss b/redisinsight/ui/src/pages/browser/modules/key-details/components/text-details-wrapper/styles.module.scss
similarity index 66%
rename from redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/styles.module.scss
rename to redisinsight/ui/src/pages/browser/modules/key-details/components/text-details-wrapper/styles.module.scss
index d7bb0e297a..8002cad487 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/styles.module.scss
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/text-details-wrapper/styles.module.scss
@@ -20,7 +20,15 @@
top: -7%;
}
-.link {
- text-decoration: underline;
- color: var(--euiColorFullShade);
-}
+.closeRightPanel {
+ position: absolute;
+ top: 22px;
+ right: 18px;
+
+ .closeBtn {
+ :global(svg) {
+ width: 20px;
+ height: 20px;
+ }
+ }
+}
\ No newline at end of file
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/TooLongKeyNameDetails.spec.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/TooLongKeyNameDetails.spec.tsx
index eeee4b5efc..06e49e22b6 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/TooLongKeyNameDetails.spec.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/TooLongKeyNameDetails.spec.tsx
@@ -1,10 +1,9 @@
import React from 'react'
import { render } from 'uiSrc/utils/test-utils'
-import TooLongKeyNameDetails
- from 'uiSrc/pages/browser/modules/key-details/components/too-long-key-name-details/TooLongKeyNameDetails'
+import TooLongKeyNameDetails from './TooLongKeyNameDetails';
describe('TooLongKeyNameDetails', () => {
it('should render', () => {
- expect(render()).toBeTruthy()
+ expect(render()).toBeTruthy()
})
})
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/TooLongKeyNameDetails.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/TooLongKeyNameDetails.tsx
index ed8aad1cab..829ee89e9d 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/TooLongKeyNameDetails.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/too-long-key-name-details/TooLongKeyNameDetails.tsx
@@ -1,21 +1,17 @@
import React from 'react'
-import { EuiFlexGroup, EuiFlexItem, EuiText, EuiTitle } from '@elastic/eui'
+import { EuiText, EuiTitle } from '@elastic/eui'
-import styles from './styles.module.scss'
+import TextDetailsWrapper from '../text-details-wrapper/TextDetailsWrapper'
-const TooLongKeyNameDetails = () => (
-
-
-
-
- The key name is too long
-
-
- Details cannot be displayed.
-
-
-
-
+const TooLongKeyNameDetails = ({ onClose }: { onClose: () => void}) => (
+
+
+ The key name is too long
+
+
+ Details cannot be displayed.
+
+
)
export default TooLongKeyNameDetails
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/UnsupportedTypeDetails.spec.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/UnsupportedTypeDetails.spec.tsx
index 36e466120b..91e2bfce4c 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/UnsupportedTypeDetails.spec.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/UnsupportedTypeDetails.spec.tsx
@@ -5,6 +5,6 @@ import UnsupportedTypeDetails from './UnsupportedTypeDetails'
describe('UnsupportedTypeDetails', () => {
it('should render', () => {
- expect(render()).toBeTruthy()
+ expect(render()).toBeTruthy()
})
})
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/UnsupportedTypeDetails.tsx b/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/UnsupportedTypeDetails.tsx
index fa7ab2a5c7..32f872dbb1 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/UnsupportedTypeDetails.tsx
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/UnsupportedTypeDetails.tsx
@@ -1,31 +1,29 @@
import React from 'react'
-import { EuiFlexGroup, EuiFlexItem, EuiText, EuiTitle } from '@elastic/eui'
+import { EuiText, EuiTitle } from '@elastic/eui'
import { EXTERNAL_LINKS } from 'uiSrc/constants/links'
+import TextDetailsWrapper from '../text-details-wrapper/TextDetailsWrapper';
+
import styles from './styles.module.scss'
-const UnsupportedTypeDetails = () => (
-
-
-
-
- This key type is not currently supported.
-
-
- See{' '}
-
- our repository
-
- {' '}for the list of supported key types.
-
-
-
-
+const UnsupportedTypeDetails = ({ onClose }: { onClose: () => void }) => (
+
+
+ This key type is not currently supported.
+
+
+ See{' '}
+
+ our repository
+
+ {' '}for the list of supported key types.
+
+
)
export default UnsupportedTypeDetails
diff --git a/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/styles.module.scss b/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/styles.module.scss
index d7bb0e297a..aa781cbd8c 100644
--- a/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/styles.module.scss
+++ b/redisinsight/ui/src/pages/browser/modules/key-details/components/unsupported-type-details/styles.module.scss
@@ -1,26 +1,4 @@
-.container {
- display: flex;
- flex-grow: 1;
- padding: 16px 40px 30px;
-
- text-align: center;
- color: #FFFFFFAD;
-
- h4 {
- font-size: 18px;
- font-weight: normal;
- margin-bottom: 18px;
- line-height: 24px;
- }
-}
-
-.textWrapper {
- max-width: 640px;
- position: relative;
- top: -7%;
-}
-
.link {
text-decoration: underline;
- color: var(--euiColorFullShade);
-}
+ color: var(--euiColorFullShade) !important;
+}
\ No newline at end of file