1
1
import { EuiTitle } from '@elastic/eui'
2
2
import React , { useEffect , useState } from 'react'
3
- import { useSelector } from 'react-redux'
3
+ import { useDispatch , useSelector } from 'react-redux'
4
4
import { useParams } from 'react-router-dom'
5
5
import { connectedInstanceSelector } from 'uiSrc/slices/instances/instances'
6
6
import { SubscriptionType } from 'uiSrc/constants/pubSub'
7
- import { sendPageViewTelemetry , TelemetryPageView } from 'uiSrc/telemetry'
7
+ import { sendEventTelemetry , sendPageViewTelemetry , TelemetryEvent , TelemetryPageView } from 'uiSrc/telemetry'
8
8
import { formatLongName , getDbIndex , setTitle } from 'uiSrc/utils'
9
9
10
10
import { OnboardingTour } from 'uiSrc/components'
11
11
import { ONBOARDING_FEATURES } from 'uiSrc/components/onboarding-features'
12
+ import { incrementOnboardStepAction } from 'uiSrc/slices/app/features'
13
+ import { OnboardingSteps } from 'uiSrc/constants/onboarding'
12
14
import { MessagesListWrapper , PublishMessage , SubscriptionPanel } from './components'
13
15
14
16
import styles from './styles.module.scss'
@@ -21,9 +23,28 @@ const PubSubPage = () => {
21
23
22
24
const [ isPageViewSent , setIsPageViewSent ] = useState ( false )
23
25
26
+ const dispatch = useDispatch ( )
27
+
24
28
const dbName = `${ formatLongName ( connectedInstanceName , 33 , 0 , '...' ) } ${ getDbIndex ( db ) } `
25
29
setTitle ( `${ dbName } - Pub/Sub` )
26
30
31
+ useEffect ( ( ) => ( ) => {
32
+ // as here is the last step of onboarding, we set next step when move from the page
33
+ // remove it when triggers&functions won't be the last page
34
+ dispatch ( incrementOnboardStepAction (
35
+ OnboardingSteps . Finish ,
36
+ 0 ,
37
+ ( ) => {
38
+ sendEventTelemetry ( {
39
+ event : TelemetryEvent . ONBOARDING_TOUR_FINISHED ,
40
+ eventData : {
41
+ databaseId : instanceId
42
+ }
43
+ } )
44
+ }
45
+ ) )
46
+ } , [ ] )
47
+
27
48
useEffect ( ( ) => {
28
49
if ( connectedInstanceName && ! isPageViewSent ) {
29
50
sendPageView ( instanceId )
0 commit comments