UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

56 lines (50 loc) 1.6 kB
import {useTelemetry} from '@sanity/telemetry/react' import {useCallback, useMemo} from 'react' import { CreateDocumentLinkAccepted, CreateDocumentLinkCtaClicked, CreateDocumentOpened, CreateDocumentUnlinkApproved, CreateDocumentUnlinkCtaClicked, } from './__telemetry__/create.telemetry' interface SanityCreateTelemetryHookValue { linkCtaClicked: () => void linkAccepted: () => void unlinkCtaClicked: () => void unlinkApproved: () => void documentOpened: () => void } /** @internal */ export function useSanityCreateTelemetry(): SanityCreateTelemetryHookValue { const telemetry = useTelemetry() const startInCreateClicked = useCallback( () => telemetry.log(CreateDocumentLinkCtaClicked), [telemetry], ) const startInCreateAccepted = useCallback( () => telemetry.log(CreateDocumentLinkAccepted), [telemetry], ) const unlinkClicked = useCallback( () => telemetry.log(CreateDocumentUnlinkCtaClicked), [telemetry], ) const unlinkAccepted = useCallback(() => telemetry.log(CreateDocumentUnlinkApproved), [telemetry]) const editInCreateClicked = useCallback(() => telemetry.log(CreateDocumentOpened), [telemetry]) return useMemo( (): SanityCreateTelemetryHookValue => ({ linkCtaClicked: startInCreateClicked, linkAccepted: startInCreateAccepted, unlinkCtaClicked: unlinkClicked, unlinkApproved: unlinkAccepted, documentOpened: editInCreateClicked, }), [ startInCreateClicked, startInCreateAccepted, unlinkClicked, unlinkAccepted, editInCreateClicked, ], ) }