mirror of
https://github.com/sourcebot-dev/sourcebot.git
synced 2025-12-12 04:15:30 +00:00
posthog events
This commit is contained in:
parent
a80e92eb3d
commit
5fb056b910
3 changed files with 54 additions and 27 deletions
|
|
@ -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(
|
||||
findSearchBasedSymbolReferences({
|
||||
symbolName: selectedSymbolInfo.symbolName,
|
||||
language: selectedSymbolInfo.language,
|
||||
revisionName: selectedSymbolInfo.revisionName,
|
||||
repoName: isGlobalSearchEnabled ? undefined : selectedSymbolInfo.repoName
|
||||
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(
|
||||
findSearchBasedSymbolDefinitions({
|
||||
symbolName: selectedSymbolInfo.symbolName,
|
||||
language: selectedSymbolInfo.language,
|
||||
revisionName: selectedSymbolInfo.revisionName,
|
||||
repoName: isGlobalSearchEnabled ? undefined : selectedSymbolInfo.repoName
|
||||
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', () => {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
Loading…
Reference in a new issue