Skip to content

Commit a916d50

Browse files
authored
Merge pull request #396 from RedisInsight/bugfix/RI-2561
#RI-2561 - fix showing redis stack logo
2 parents e1103f0 + 1acbbf4 commit a916d50

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

redisinsight/ui/src/pages/instance/InstancePage.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import { useParams } from 'react-router-dom'
55
import cx from 'classnames'
66

77
import {
8-
fetchInstanceAction,
9-
getDatabaseConfigInfoAction,
8+
fetchInstanceAction, fetchInstancesAction,
9+
getDatabaseConfigInfoAction, instancesSelector,
1010
} from 'uiSrc/slices/instances'
1111
import {
1212
appContextSelector,
@@ -53,13 +53,16 @@ const InstancePage = ({ routes = [] }: Props) => {
5353
const dispatch = useDispatch()
5454
const { instanceId: connectionInstanceId } = useParams<{ instanceId: string }>()
5555
const { isShowCli, isShowHelper } = useSelector(cliSettingsSelector)
56+
const { data: modulesData } = useSelector(instancesSelector)
5657
const { isShowMonitor } = useSelector(monitorSelector)
5758
const { contextInstanceId } = useSelector(appContextSelector)
5859

5960
const isShowBottomGroup = isShowCli || isShowHelper || isShowMonitor
6061

6162
useEffect(() => {
62-
dispatch(fetchInstanceAction(connectionInstanceId))
63+
dispatch(fetchInstanceAction(connectionInstanceId, () => {
64+
!modulesData.length && dispatch(fetchInstancesAction())
65+
}))
6366
dispatch(getDatabaseConfigInfoAction(connectionInstanceId))
6467

6568
if (contextInstanceId !== connectionInstanceId) {

redisinsight/ui/src/slices/instances.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ const instancesSlice = createSlice({
5252
loadInstancesSuccess: (state, { payload }: { payload: Instance[] }) => {
5353
state.data = checkRediStack(payload)
5454
state.loading = false
55+
if (state.connectedInstance.id) {
56+
const isRediStack = state.data.find((db) => db.id === state.connectedInstance.id)?.isRediStack
57+
state.connectedInstance.isRediStack = isRediStack || false
58+
}
5559
},
5660
loadInstancesFailure: (state, { payload }) => {
5761
state.loading = false
@@ -135,7 +139,9 @@ const instancesSlice = createSlice({
135139

136140
// set connected instance
137141
setConnectedInstance: (state, { payload }: { payload: Instance }) => {
138-
state.connectedInstance = checkRediStack([payload])[0]
142+
const isRediStack = state.data?.find((db) => db.id === state.connectedInstance.id)?.isRediStack
143+
state.connectedInstance = payload
144+
state.connectedInstance.isRediStack = isRediStack || false
139145
},
140146

141147
// reset connected instance
@@ -332,6 +338,7 @@ export function checkConnectToInstanceAction(
332338
) {
333339
return async (dispatch: AppDispatch) => {
334340
dispatch(setDefaultInstance())
341+
dispatch(resetConnectedInstance())
335342
try {
336343
const { status } = await apiService.get(`${ApiEndpoints.INSTANCE}/${id}/connect`)
337344

redisinsight/ui/src/slices/interfaces/instances.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export interface Instance extends DatabaseInstanceResponse {
3636
isDeleting?: boolean;
3737
sentinelMaster?: SentinelMasterDto;
3838
modules: RedisModuleDto[];
39-
isRediStack: boolean;
39+
isRediStack?: boolean;
4040
}
4141

4242
export enum ConnectionType {

redisinsight/ui/src/slices/tests/instances.spec.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import reducer, {
3636
changeInstanceAliasFailure,
3737
changeInstanceAliasSuccess,
3838
changeInstanceAliasAction,
39+
resetConnectedInstance,
3940
} from '../instances'
4041
import { addErrorNotification, addMessageNotification, IAddInstanceErrorPayload } from '../app/notifications'
4142
import { ConnectionType, InitialStateInstances, Instance } from '../interfaces'
@@ -62,6 +63,7 @@ beforeEach(() => {
6263
password: null,
6364
connectionType: ConnectionType.Standalone,
6465
nameFromProvider: null,
66+
modules: [],
6567
lastConnection: new Date('2021-04-22T09:03:56.917Z'),
6668
},
6769
{
@@ -73,6 +75,7 @@ beforeEach(() => {
7375
password: null,
7476
connectionType: ConnectionType.Standalone,
7577
nameFromProvider: null,
78+
modules: [],
7679
tls: {
7780
verifyServerCert: true,
7881
caCertId: '70b95d32-c19d-4311-bb24-e684af12cf15',
@@ -89,6 +92,7 @@ beforeEach(() => {
8992
connectionType: ConnectionType.Sentinel,
9093
nameFromProvider: null,
9194
lastConnection: new Date('2021-04-22T18:40:44.031Z'),
95+
modules: [],
9296
endpoints: [
9397
{
9498
host: 'localhost',
@@ -670,10 +674,11 @@ describe('instances slice', () => {
670674
// Assert
671675
const expectedActions = [
672676
setDefaultInstance(),
677+
resetConnectedInstance(),
673678
setDefaultInstanceSuccess(),
674679
]
675680

676-
expect(store.getActions().splice(0, 2)).toEqual(expectedActions)
681+
expect(store.getActions().splice(0, expectedActions.length)).toEqual(expectedActions)
677682
})
678683

679684
it('call both checkConnectToInstance and setDefaultInstanceFailure when fetch is fail', async () => {
@@ -702,6 +707,7 @@ describe('instances slice', () => {
702707
// Assert
703708
const expectedActions = [
704709
setDefaultInstance(),
710+
resetConnectedInstance(),
705711
setDefaultInstanceFailure(responsePayload.response.data.message),
706712
addErrorNotification(responsePayload as IAddInstanceErrorPayload),
707713
]

0 commit comments

Comments
 (0)