Просмотр исходного кода

provisioning zap w user context

Justin Rhee 3 лет назад
Родитель
Сommit
945e12a177

+ 4 - 0
api/server/handlers/user/update_onboarding_step.go

@@ -48,6 +48,10 @@ func (v *UpdateOnboardingStepHandler) ServeHTTP(w http.ResponseWriter, r *http.R
 	if request.Step == "provisioning-started" {
 		v.Config().AnalyticsClient.Track(analytics.ProvisioningAttemptTrack(&analytics.ProvisioningAttemptTrackOpts{
 			UserScopedTrackOpts: analytics.GetUserScopedTrackOpts(user.ID),
+			Email:               user.Email,
+			FirstName:           user.FirstName,
+			LastName:            user.LastName,
+			CompanyName:         user.CompanyName,
 		}))
 	}
 

+ 4 - 4
dashboard/src/main/home/sidebar/Clusters.tsx

@@ -34,7 +34,7 @@ class Clusters extends Component<PropsType, StateType> {
   // Need to track initialized for animation mounting
   state = {
     clusters: [] as ClusterType[],
-    prevProjectId: this.context.currentProject.id,
+    prevProjectId: this.context.currentProject?.id,
   };
 
   updateClusters = () => {
@@ -123,9 +123,9 @@ class Clusters extends Component<PropsType, StateType> {
   componentDidUpdate(prevProps: PropsType) {
     if (prevProps !== this.props) {
       // Refresh clusters on project change
-      if (this.state.prevProjectId !== this.context.currentProject.id) {
+      if (this.state.prevProjectId !== this.context.currentProject?.id) {
         this.updateClusters();
-        this.setState({ prevProjectId: this.context.currentProject.id });
+        this.setState({ prevProjectId: this.context.currentProject?.id });
       } else if (this.props.forceRefreshClusters === true) {
         this.updateClusters();
         this.props.setRefreshClusters(false);
@@ -210,7 +210,7 @@ class Clusters extends Component<PropsType, StateType> {
               path="/preview-environments"
               targetClusterName={cluster?.name}
               active={
-                currentCluster?.id === cluster.id &&
+                currentCluster?.id === cluster?.id &&
                 window.location.pathname.startsWith("/preview-environments")
               }
             >

+ 8 - 0
internal/analytics/tracks.go

@@ -165,11 +165,19 @@ func CredentialStepTrack(opts *CredentialStepTrackOpts) segmentTrack {
 // ProvisioningAttemptedTrackOpts are the options for creating a track when a user attempts provisioning
 type ProvisioningAttemptTrackOpts struct {
 	*UserScopedTrackOpts
+
+	Email       string
+	FirstName   string
+	LastName    string
+	CompanyName string
 }
 
 // ProvisioningAttemptTrack returns a track for when a user attempts provisioning
 func ProvisioningAttemptTrack(opts *ProvisioningAttemptTrackOpts) segmentTrack {
 	additionalProps := make(map[string]interface{})
+	additionalProps["email"] = opts.Email
+	additionalProps["name"] = opts.FirstName + " " + opts.LastName
+	additionalProps["company"] = opts.CompanyName
 
 	return getSegmentUserTrack(
 		opts.UserScopedTrackOpts,