Skip to content

Commit 38d20f0

Browse files
authored
RI-6968: Send the number of keys in the Viewed Browser Page event (#4460)
1 parent 67b00af commit 38d20f0

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
lines changed

redisinsight/ui/src/pages/browser/BrowserPage.test.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { KeyTypes } from 'uiSrc/constants'
77
import { RootState } from 'uiSrc/slices/store'
88
import { setSelectedKeyRefreshDisabled, toggleBrowserFullScreen } from 'uiSrc/slices/browser/keys'
99
import { sendPageViewTelemetry, TelemetryPageView } from 'uiSrc/telemetry'
10-
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
10+
import { connectedInstanceOverviewSelector, connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
1111
import BrowserPage from './BrowserPage'
1212
import KeyList, { Props as KeyListProps } from './components/key-list/KeyList'
1313

@@ -87,6 +87,7 @@ jest.mock('uiSrc/telemetry', () => ({
8787
jest.mock('uiSrc/slices/instances/instances', () => ({
8888
...jest.requireActual('uiSrc/slices/instances/instances'),
8989
connectedInstanceSelector: jest.fn(),
90+
connectedInstanceOverviewSelector: jest.fn(),
9091
}))
9192
/**
9293
* BrowserPage tests
@@ -114,6 +115,9 @@ describe('BrowserPage', () => {
114115
(connectedInstanceSelector as jest.Mock).mockImplementation(() => ({
115116
...commonOptions,
116117
isFreeDb,
118+
}));
119+
(connectedInstanceOverviewSelector as jest.Mock).mockImplementation(() => ({
120+
totalKeys: 25,
117121
}))
118122

119123
render(<BrowserPage />)
@@ -123,6 +127,7 @@ describe('BrowserPage', () => {
123127
eventData: {
124128
databaseId: 'instanceId',
125129
isFree: isFreeDb,
130+
totalKeys: 25,
126131
},
127132
})
128133
})

redisinsight/ui/src/pages/browser/BrowserPage.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import {
3636
} from 'uiSrc/slices/app/context'
3737
import { resetErrors } from 'uiSrc/slices/app/notifications'
3838
import { RedisResponseBuffer } from 'uiSrc/slices/interfaces'
39-
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
39+
import { connectedInstanceOverviewSelector, connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
4040

4141
import { KeyViewType } from 'uiSrc/slices/interfaces/keys'
4242
import { SCAN_COUNT_DEFAULT, SCAN_TREE_COUNT_DEFAULT } from 'uiSrc/constants/api'
@@ -73,6 +73,7 @@ const BrowserPage = () => {
7373
const { type } = useSelector(selectedKeyDataSelector) ?? { type: '', length: 0 }
7474
const { viewType, searchMode } = useSelector(keysSelector)
7575
const { openedPanel: openedSidePanel } = useSelector(sidePanelsSelector)
76+
const overview = useSelector(connectedInstanceOverviewSelector)
7677

7778
const [isPageViewSent, setIsPageViewSent] = useState(false)
7879
const [arePanelsCollapsed, setArePanelsCollapsed] = useState(isOneSideMode(!!openedSidePanel))
@@ -134,10 +135,10 @@ const BrowserPage = () => {
134135
}, [openedSidePanel])
135136

136137
useEffect(() => {
137-
if (connectedInstanceName && !isPageViewSent) {
138-
sendPageView(instanceId)
138+
if (connectedInstanceName && overview?.totalKeys !== undefined && !isPageViewSent) {
139+
sendPageView(instanceId, overview?.totalKeys)
139140
}
140-
}, [connectedInstanceName, isPageViewSent])
141+
}, [connectedInstanceName, overview, isPageViewSent])
141142

142143
const updateWindowDimensions = () => {
143144
setArePanelsCollapsed(isOneSideMode(isSidePanelOpenRef.current))
@@ -150,12 +151,13 @@ const BrowserPage = () => {
150151
}))
151152
}, [])
152153

153-
const sendPageView = (instanceId: string) => {
154+
const sendPageView = (instanceId: string, totalKeys: number | null) => {
154155
sendPageViewTelemetry({
155156
name: TelemetryPageView.BROWSER_PAGE,
156157
eventData: {
157158
databaseId: instanceId,
158159
isFree: isFreeDb,
160+
totalKeys,
159161
}
160162
})
161163
setIsPageViewSent(true)
@@ -172,9 +174,9 @@ const BrowserPage = () => {
172174
}
173175

174176
const handleAddKeyPanel = useCallback((value: boolean, keyName?: RedisResponseBuffer) => {
175-
handlePanel(value, keyName);
176-
setIsAddKeyPanelOpen(value);
177-
dispatch(setBrowserSelectedKey(keyName || null));
177+
handlePanel(value, keyName)
178+
setIsAddKeyPanelOpen(value)
179+
dispatch(setBrowserSelectedKey(keyName || null))
178180
}, [])
179181

180182
const handleBulkActionsPanel = useCallback((value: boolean) => {
@@ -183,7 +185,7 @@ const BrowserPage = () => {
183185
}, [])
184186

185187
const handleRemoveSelectedKey = useCallback(() => {
186-
setBrowserSelectedKey(null);
188+
setBrowserSelectedKey(null)
187189
handlePanel(true)
188190
}, [])
189191

@@ -224,7 +226,7 @@ const BrowserPage = () => {
224226

225227
dispatch(setInitialStateByType(prevSelectedType.current))
226228
setSelectedKey(rowData.name)
227-
dispatch(setBrowserSelectedKey(rowData.name));
229+
dispatch(setBrowserSelectedKey(rowData.name))
228230
closeRightPanels()
229231
prevSelectedType.current = rowData.type
230232
}

0 commit comments

Comments
 (0)