posthog events

This commit is contained in:
bkellam 2025-11-30 18:26:51 -08:00
parent a80e92eb3d
commit 5fb056b910
3 changed files with 54 additions and 27 deletions

View file

@ -8,7 +8,7 @@ import { ResizablePanel, ResizablePanelGroup } from "@/components/ui/resizable";
import { Toggle } from "@/components/ui/toggle";
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
import { useDomain } from "@/hooks/useDomain";
import { unwrapServiceError } from "@/lib/utils";
import { measure, unwrapServiceError } from "@/lib/utils";
import { useQuery } from "@tanstack/react-query";
import clsx from "clsx";
import { GlobeIcon, Loader2 } from "lucide-react";
@ -17,6 +17,7 @@ import { VscSymbolMisc } from "react-icons/vsc";
import { ReferenceList } from "./referenceList";
import { KeyboardShortcutHint } from "@/app/components/keyboardShortcutHint";
import { useHotkeys } from "react-hotkeys-hook";
import useCaptureEvent from "@/hooks/useCaptureEvent";
interface ExploreMenuProps {
selectedSymbolInfo: {
@ -30,8 +31,8 @@ interface ExploreMenuProps {
export const ExploreMenu = ({
selectedSymbolInfo,
}: ExploreMenuProps) => {
const domain = useDomain();
const captureEvent = useCaptureEvent();
const {
state: { activeExploreMenuTab },
updateBrowseState,
@ -46,14 +47,23 @@ export const ExploreMenu = ({
isLoading: isReferencesResponseLoading,
} = useQuery({
queryKey: ["references", selectedSymbolInfo.symbolName, selectedSymbolInfo.repoName, selectedSymbolInfo.revisionName, selectedSymbolInfo.language, domain, isGlobalSearchEnabled],
queryFn: () => unwrapServiceError(
queryFn: async () => {
const response = await measure(() => unwrapServiceError(
findSearchBasedSymbolReferences({
symbolName: selectedSymbolInfo.symbolName,
language: selectedSymbolInfo.language,
revisionName: selectedSymbolInfo.revisionName,
repoName: isGlobalSearchEnabled ? undefined : selectedSymbolInfo.repoName
})
),
), 'findSearchBasedSymbolReferences', false);
captureEvent('wa_explore_menu_references_loaded', {
durationMs: response.durationMs,
isGlobalSearchEnabled,
})
return response.data;
}
});
const {
@ -63,14 +73,23 @@ export const ExploreMenu = ({
isLoading: isDefinitionsResponseLoading,
} = useQuery({
queryKey: ["definitions", selectedSymbolInfo.symbolName, selectedSymbolInfo.repoName, selectedSymbolInfo.revisionName, selectedSymbolInfo.language, domain, isGlobalSearchEnabled],
queryFn: () => unwrapServiceError(
queryFn: async () => {
const response = await measure(() => unwrapServiceError(
findSearchBasedSymbolDefinitions({
symbolName: selectedSymbolInfo.symbolName,
language: selectedSymbolInfo.language,
revisionName: selectedSymbolInfo.revisionName,
repoName: isGlobalSearchEnabled ? undefined : selectedSymbolInfo.repoName
})
),
), 'findSearchBasedSymbolDefinitions', false);
captureEvent('wa_explore_menu_definitions_loaded', {
durationMs: response.durationMs,
isGlobalSearchEnabled,
})
return response.data;
}
});
useHotkeys('shift+a', () => {

View file

@ -68,7 +68,7 @@ export const useHoveredOverSymbolInfo = ({
})
), 'findSearchBasedSymbolDefinitions', false);
captureEvent('wa_find_hovered_over_symbol_definitions', {
captureEvent('wa_symbol_hover_popup_definitions_loaded', {
durationMs: response.durationMs,
});

View file

@ -273,15 +273,6 @@ export type PosthogEventMap = {
wa_api_key_created: {},
wa_api_key_creation_fail: {},
//////////////////////////////////////////////////////////////////
wa_goto_definition_pressed: {
source: 'chat' | 'browse' | 'preview',
},
wa_find_references_pressed: {
source: 'chat' | 'browse' | 'preview',
},
//////////////////////////////////////////////////////////////////
wa_explore_menu_reference_clicked: {},
//////////////////////////////////////////////////////////////////
wa_chat_feedback_submitted: {
feedback: 'like' | 'dislike',
chatId: string,
@ -303,8 +294,25 @@ export type PosthogEventMap = {
wa_github_star_toast_displayed: {},
wa_github_star_toast_clicked: {},
//////////////////////////////////////////////////////////////////
wa_find_hovered_over_symbol_definitions: {
wa_goto_definition_pressed: {
source: 'chat' | 'browse' | 'preview',
},
wa_find_references_pressed: {
source: 'chat' | 'browse' | 'preview',
},
wa_symbol_hover_popup_definitions_loaded: {
durationMs: number,
},
wa_explore_menu_reference_clicked: {},
wa_explore_menu_references_loaded: {
durationMs: number,
// Whether or not the user is searching all repositories.
isGlobalSearchEnabled: boolean,
},
wa_explore_menu_definitions_loaded: {
durationMs: number,
// Whether or not the user is searching all repositories.
isGlobalSearchEnabled: boolean,
}
}
export type PosthogEvent = keyof PosthogEventMap;