perf(analytics): added tracking for file upload and chat (#376)

This commit is contained in:
Stan Girard 2023-06-26 12:54:07 +02:00 committed by GitHub
parent 97d2c9de10
commit bdccdf1a0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 3 deletions

View File

@ -4,6 +4,7 @@ import { useEffect, useState } from "react";
import { useBrainConfig } from "@/lib/context/BrainConfigProvider/hooks/useBrainConfig";
import { useToast } from "@/lib/hooks";
import { useEventTracking } from "@/services/analytics/useEventTracking";
import { useChatService } from "./useChatService";
import { useChatContext } from "../context/ChatContext";
@ -11,6 +12,7 @@ import { ChatQuestion } from "../types";
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export const useChat = () => {
const { track } = useEventTracking();
const params = useParams();
const [chatId, setChatId] = useState<string | undefined>(
params?.chatId as string | undefined
@ -54,6 +56,7 @@ export const useChat = () => {
};
try {
void track("QUESTION_ASKED");
setGeneratingAnswer(true);
const currentChatId =
chatId ??

View File

@ -6,8 +6,10 @@ import { FileRejection, useDropzone } from "react-dropzone";
import { useSupabase } from "@/lib/context/SupabaseProvider";
import { useAxios } from "@/lib/hooks";
import { useToast } from "@/lib/hooks/useToast";
import { useEventTracking } from "@/services/analytics/useEventTracking";
export const useFileUploader = () => {
const { track} = useEventTracking();
const [isPending, setIsPending] = useState(false);
const { publish } = useToast();
const [files, setFiles] = useState<File[]>([]);
@ -25,7 +27,7 @@ export const useFileUploader = () => {
formData.append("file", file);
try {
const response = await axiosInstance.post(`/upload`, formData);
track("FILE_UPLOADED");
publish({
variant: response.data.type,
text:

View File

@ -4,14 +4,13 @@ import { useSupabase } from "@/lib/context/SupabaseProvider";
import { useJune } from "./useJune";
type TrackedEvent = "SIGNED_IN";
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
export const useEventTracking = () => {
const analytics = useJune();
const { session } = useSupabase();
const track = async (event: TrackedEvent): Promise<void> => {
const track = async (event: string): Promise<void> => {
await analytics?.identify(session?.user.id);
await analytics?.track(event);
};