ruvector/studio/hooks/misc/useStudioCommandMenuTelemetry.ts
rUv 814f595995 feat(studio): Add complete RuVector Studio application
Major additions:
- Complete Next.js studio application with 1600+ components
- Docker support (Dockerfile.combined, docker-compose.yml)
- GCP deployment documentation and benchmarks
- SQL benchmark scripts for performance testing
- Sentry integration for monitoring
- Comprehensive test suite and mocks

Studio features:
- Dashboard and admin interfaces
- Data visualization components
- Authentication and user management
- API integration with RuVector backend
- Static data and public assets

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-06 23:04:48 +00:00

40 lines
1.2 KiB
TypeScript

import { useCallback } from 'react'
import { useParams } from 'common'
import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization'
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
import type {
CommandMenuOpenedEvent,
CommandMenuCommandClickedEvent,
CommandMenuSearchSubmittedEvent,
} from 'common/telemetry-constants'
export function useStudioCommandMenuTelemetry() {
const { ref: projectRef } = useParams()
const { data: organization } = useSelectedOrganizationQuery()
const { mutate: sendEvent } = useSendEventMutation()
const onTelemetry = useCallback(
(
event:
| CommandMenuOpenedEvent
| CommandMenuCommandClickedEvent
| CommandMenuSearchSubmittedEvent
) => {
// Add studio-specific groups (project and organization)
const eventWithGroups = {
...event,
groups: {
...event.groups,
...(projectRef && { project: projectRef }),
...(organization?.slug && { organization: organization.slug }),
},
}
sendEvent(eventWithGroups)
},
[projectRef, organization?.slug, sendEvent]
)
return { onTelemetry }
}