Skip to content

Commit 3b4f12c

Browse files
committed
#RI-5033 - Refactor key details version 2
1 parent 992cd24 commit 3b4f12c

File tree

65 files changed

+459
-489
lines changed

Some content is hidden

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

65 files changed

+459
-489
lines changed
File renamed without changes.

redisinsight/ui/src/constants/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,5 @@ export * from './serverVersions'
3131
export * from './customErrorCodes'
3232
export * from './securityField'
3333
export * from './redisearch'
34+
export * from './browser/keyDetailsHeader'
3435
export { ApiEndpoints, BrowserStorageItem, ApiStatusCode, apiErrors }

redisinsight/ui/src/constants/keys.ts

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -90,38 +90,6 @@ export type KeyTypesActions = {
9090
}
9191
}
9292

93-
export const KEY_TYPES_ACTIONS: KeyTypesActions = Object.freeze({
94-
[KeyTypes.Hash]: {
95-
addItems: {
96-
name: 'Add Fields',
97-
},
98-
},
99-
[KeyTypes.List]: {
100-
addItems: {
101-
name: 'Add Element',
102-
},
103-
removeItems: {
104-
name: 'Remove Elements',
105-
},
106-
},
107-
[KeyTypes.Set]: {
108-
addItems: {
109-
name: 'Add Members',
110-
},
111-
},
112-
[KeyTypes.ZSet]: {
113-
addItems: {
114-
name: 'Add Members',
115-
},
116-
},
117-
[KeyTypes.String]: {
118-
editItem: {
119-
name: 'Edit Value',
120-
},
121-
},
122-
[KeyTypes.ReJSON]: {}
123-
})
124-
12593
export const STREAM_ADD_GROUP_VIEW_TYPES = [
12694
StreamViewType.Groups,
12795
StreamViewType.Consumers,

redisinsight/ui/src/pages/browser/components/add-key/AddKeyHash/AddKeyHash.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,11 @@ import {
1414
import {
1515
addHashKey, addKeyStateSelector,
1616
} from 'uiSrc/slices/browser/keys'
17-
import {
18-
IHashFieldState,
19-
INITIAL_HASH_FIELD_STATE
20-
} from 'uiSrc/pages/browser/modules/key-details/components/key-details-add-items'
17+
2118
import AddItemsActions from 'uiSrc/pages/browser/components/add-items-actions/AddItemsActions'
2219

2320
import { Maybe, stringToBuffer } from 'uiSrc/utils'
21+
import { IHashFieldState, INITIAL_HASH_FIELD_STATE } from 'uiSrc/pages/browser/modules/key-details/components/hash-details/add-hash-fields/AddHashFields'
2422
import { CreateHashWithExpireDto } from 'apiSrc/modules/browser/dto/hash.dto'
2523
import {
2624
AddHashFormConfig as config

redisinsight/ui/src/pages/browser/components/add-key/AddKeySet/AddKeySet.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@ import {
1616
addSetKey, addKeyStateSelector,
1717
} from 'uiSrc/slices/browser/keys'
1818
import AddItemsActions from 'uiSrc/pages/browser/components/add-items-actions/AddItemsActions'
19-
import {
20-
INITIAL_SET_MEMBER_STATE,
21-
ISetMemberState
22-
} from 'uiSrc/pages/browser/modules/key-details/components/key-details-add-items'
19+
20+
import { INITIAL_SET_MEMBER_STATE, ISetMemberState } from 'uiSrc/pages/browser/modules/key-details/components/set-details/add-set-members/AddSetMembers'
2321
import { CreateSetWithExpireDto } from 'apiSrc/modules/browser/dto/set.dto'
2422

2523
import {

redisinsight/ui/src/pages/browser/components/add-key/AddKeyStream/AddKeyStream.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import {
1010
} from '@elastic/eui'
1111
import { addStreamKey } from 'uiSrc/slices/browser/keys'
1212
import { entryIdRegex, isRequiredStringsValid, Maybe, stringToBuffer } from 'uiSrc/utils'
13-
import { StreamEntryFields } from 'uiSrc/pages/browser/modules/key-details/components/key-details-add-items'
1413
import { AddStreamFormConfig as config } from 'uiSrc/pages/browser/components/add-key/constants/fields-config'
14+
import { StreamEntryFields } from 'uiSrc/pages/browser/modules/key-details/components/stream-details/add-stream-entity'
1515
import { CreateStreamDto } from 'apiSrc/modules/browser/dto/stream.dto'
1616
import AddKeyFooter from '../AddKeyFooter/AddKeyFooter'
1717

redisinsight/ui/src/pages/browser/components/add-key/AddKeyZset/AddKeyZset.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,8 @@ import { isNaNConvertedString } from 'uiSrc/utils/numbers'
1717
import { addZsetKey, addKeyStateSelector } from 'uiSrc/slices/browser/keys'
1818

1919
import AddItemsActions from 'uiSrc/pages/browser/components/add-items-actions/AddItemsActions'
20-
import {
21-
INITIAL_ZSET_MEMBER_STATE,
22-
IZsetMemberState
23-
} from 'uiSrc/pages/browser/modules/key-details/components/key-details-add-items'
20+
21+
import { INITIAL_ZSET_MEMBER_STATE, IZsetMemberState } from 'uiSrc/pages/browser/modules/key-details/components/zset-details/add-zset-members/AddZsetMembers'
2422
import { CreateZSetWithExpireDto } from 'apiSrc/modules/browser/dto/z-set.dto'
2523
import AddKeyFooter from '../AddKeyFooter/AddKeyFooter'
2624
import { AddZsetFormConfig as config } from '../constants/fields-config'

redisinsight/ui/src/pages/browser/modules/key-details-header/KeyDetailsHeader.spec.tsx

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import React from 'react'
22
import { mock } from 'ts-mockito'
33
import { cloneDeep } from 'lodash'
44
import { render, screen, fireEvent, mockedStore, cleanup } from 'uiSrc/utils/test-utils'
5-
import { stringDataSelector } from 'uiSrc/slices/browser/string'
65
import { KeyTypes } from 'uiSrc/constants'
76
import { deleteSelectedKey } from 'uiSrc/slices/browser/keys'
87
import { KeyDetailsHeaderProps, KeyDetailsHeader } from './KeyDetailsHeader'
@@ -12,7 +11,6 @@ const mockedProps = mock<KeyDetailsHeaderProps>()
1211
const KEY_INPUT_TEST_ID = 'edit-key-input'
1312
const KEY_BTN_TEST_ID = 'edit-key-btn'
1413
const TTL_INPUT_TEST_ID = 'edit-ttl-input'
15-
const EDIT_VALUE_BTN_TEST_ID = 'edit-key-value-btn'
1614
const DELETE_KEY_BTN_TEST_ID = 'delete-key-btn'
1715
const DELETE_KEY_CONFIRM_BTN_TEST_ID = 'delete-key-confirm-btn'
1816

@@ -95,38 +93,6 @@ describe('KeyDetailsHeader', () => {
9593
expect(screen.getByTestId(TTL_INPUT_TEST_ID)).toHaveValue('100')
9694
})
9795

98-
it('should be able to change value (long string fully load)', () => {
99-
render(
100-
<KeyDetailsHeader
101-
{...mockedProps}
102-
keyType={KeyTypes.String}
103-
/>
104-
)
105-
106-
const editValueBtn = screen.getByTestId(`${EDIT_VALUE_BTN_TEST_ID}`)
107-
expect(editValueBtn).toHaveProperty('disabled', false)
108-
})
109-
110-
it('should not be able to change value (long string not fully load)', () => {
111-
const stringDataSelectorMock = jest.fn().mockReturnValue({
112-
value: {
113-
type: 'Buffer',
114-
data: [49, 50, 51],
115-
}
116-
})
117-
stringDataSelector.mockImplementation(stringDataSelectorMock)
118-
119-
render(
120-
<KeyDetailsHeader
121-
{...mockedProps}
122-
keyType={KeyTypes.String}
123-
/>
124-
)
125-
126-
const editValueBtn = screen.getByTestId(`${EDIT_VALUE_BTN_TEST_ID}`)
127-
expect(editValueBtn).toHaveProperty('disabled', true)
128-
})
129-
13096
describe('should call onRefresh', () => {
13197
test.each(Object.values(KeyTypes))('should call onRefresh for keyType: %s', (keyType) => {
13298
const component = render(<KeyDetailsHeader {...mockedProps} keyType={keyType} />)

redisinsight/ui/src/pages/browser/modules/key-details-header/KeyDetailsHeader.tsx

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@ import {
55
EuiLoadingContent,
66
EuiToolTip,
77
} from '@elastic/eui'
8-
import React from 'react'
8+
import React, { ReactElement } from 'react'
99
import { useDispatch, useSelector } from 'react-redux'
1010
import AutoSizer from 'react-virtualized-auto-sizer'
1111

1212
import { GroupBadge, AutoRefresh, FullScreen } from 'uiSrc/components'
1313
import {
14+
HIDE_LAST_REFRESH,
1415
KeyTypes,
1516
ModulesKeyTypes,
1617
} from 'uiSrc/constants'
@@ -29,13 +30,12 @@ import { RedisResponseBuffer } from 'uiSrc/slices/interfaces'
2930
import { getBasedOnViewTypeEvent, sendEventTelemetry, TelemetryEvent } from 'uiSrc/telemetry'
3031

3132
import { resetStringValue } from 'uiSrc/slices/browser/string'
33+
import { Nullable } from 'uiSrc/utils'
3234
import { KeyDetailsHeaderFormatter } from './components/key-details-header-formatter'
3335
import { KeyDetailsHeaderName } from './components/key-details-header-name'
3436
import { KeyDetailsHeaderTTL } from './components/key-details-header-ttl'
35-
import { KeyDetailsHeaderActions } from './components/key-details-header-actions'
3637
import { KeyDetailsHeaderDelete } from './components/key-details-header-delete'
3738
import { KeyDetailsHeaderSizeLength } from './components/key-details-header-size-length'
38-
import { HIDE_LAST_REFRESH } from './constants'
3939

4040
import styles from './styles.module.scss'
4141

@@ -44,12 +44,10 @@ export interface KeyDetailsHeaderProps {
4444
onCloseKey: (key: RedisResponseBuffer) => void
4545
onRemoveKey: () => void
4646
onEditKey: (key: RedisResponseBuffer, newKey: RedisResponseBuffer, onFailure?: () => void) => void
47-
onAddItem?: () => void
48-
onEditItem?: () => void
49-
onRemoveItem?: () => void
5047
isFullScreen: boolean
5148
arePanelsCollapsed: boolean
5249
onToggleFullScreen: () => void
50+
Actions: (props: { width: number }) => Nullable<ReactElement>
5351
}
5452

5553
const KeyDetailsHeader = ({
@@ -60,9 +58,7 @@ const KeyDetailsHeader = ({
6058
onRemoveKey,
6159
onEditKey,
6260
keyType,
63-
onAddItem = () => {},
64-
onEditItem = () => {},
65-
onRemoveItem = () => {},
61+
Actions = () => null,
6662
}: KeyDetailsHeaderProps) => {
6763
const { loading, lastRefreshTime } = useSelector(selectedKeySelector)
6864
const {
@@ -190,15 +186,7 @@ const KeyDetailsHeader = ({
190186
{Object.values(KeyTypes).includes(keyType as KeyTypes) && (
191187
<KeyDetailsHeaderFormatter width={width} />
192188
)}
193-
{keyType && (
194-
<KeyDetailsHeaderActions
195-
width={width}
196-
keyType={keyType}
197-
onAddItem={onAddItem}
198-
onEditItem={onEditItem}
199-
onRemoveItem={onRemoveItem}
200-
/>
201-
)}
189+
{keyType && <Actions width={width} /> }
202190
<KeyDetailsHeaderDelete onDelete={handleDeleteKey} />
203191
</div>
204192
</EuiFlexItem>

redisinsight/ui/src/pages/browser/modules/key-details-header/components/key-details-header-actions/KeyDetailsHeaderActions.spec.tsx

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)