Skip to content

Commit 22e4ec1

Browse files
mikemuzzaclaude
andcommitted
Add Sprig survey tracking for feature flags page
Added tracking event `viewed_featureflags_docs` that fires when users visit the `/docs/featureflags` page. This follows the same pattern as the existing experiments page tracking (`viewed_experimentation_docs`). - Uses shared debouncing logic to prevent duplicate events - Tracks both initial page loads and route changes - Includes proper error handling and null checks 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 355c424 commit 22e4ec1

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

hooks/useSprig.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,4 +96,43 @@ export const useSprig = () => {
9696
router.events.on('routeChangeComplete', handleRouteChange);
9797
return () => router.events.off('routeChangeComplete', handleRouteChange);
9898
}, [router, sprigEnvironmentId]);
99+
100+
// Track feature flags page visits
101+
useEffect(() => {
102+
if (!sprigEnvironmentId || typeof window === 'undefined') return;
103+
104+
const trackFeatureFlagView = () => {
105+
const now = Date.now();
106+
107+
// Prevent duplicate events within debounce period
108+
if (now - lastEventTime < EVENT_DEBOUNCE_MS) {
109+
return;
110+
}
111+
112+
if (!window.Sprig) {
113+
return;
114+
}
115+
116+
try {
117+
lastEventTime = now;
118+
window.Sprig('track', 'viewed_featureflags_docs');
119+
} catch (error) {
120+
console.error('Sprig track failed:', error);
121+
}
122+
};
123+
124+
const handleRouteChange = (url: string) => {
125+
if (url.includes('/docs/featureflags')) {
126+
trackFeatureFlagView();
127+
}
128+
};
129+
130+
// Track if already on feature flags page
131+
if (router.asPath.includes('/docs/featureflags')) {
132+
trackFeatureFlagView();
133+
}
134+
135+
router.events.on('routeChangeComplete', handleRouteChange);
136+
return () => router.events.off('routeChangeComplete', handleRouteChange);
137+
}, [router, sprigEnvironmentId]);
99138
};

0 commit comments

Comments
 (0)