From 3880e04c6fb3f5756be27c28821adba528699896 Mon Sep 17 00:00:00 2001 From: Matibox Date: Thu, 28 Aug 2025 18:39:11 +0200 Subject: [PATCH] Add adding telemetry to db --- .../new/_components/TelemetryUpload.tsx | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/app/(dashboard)/telemetry/new/_components/TelemetryUpload.tsx b/src/app/(dashboard)/telemetry/new/_components/TelemetryUpload.tsx index 2495ec3..66bdc35 100644 --- a/src/app/(dashboard)/telemetry/new/_components/TelemetryUpload.tsx +++ b/src/app/(dashboard)/telemetry/new/_components/TelemetryUpload.tsx @@ -27,17 +27,46 @@ import { Input } from '~/components/ui/input'; import { cars, games, tracks } from '~/lib/constants'; import Flag from '~/components/Flag'; import { groupBy } from '~/lib/utils'; +import { api } from '~/trpc/react'; +import { useToast } from '~/hooks/use-toast'; export default function TelemetryUpload() { const router = useRouter(); + const { toast } = useToast(); const form = useForm>({ resolver: zodResolver(uploadTelemetrySchema), defaultValues: {}, }); + const utils = api.useUtils(); + const uploadTelemetry = api.telemetry.upload.useMutation({ + onError: () => { + toast({ + variant: 'destructive', + title: 'Operation failed', + description: 'An unknown error occured.', + }); + }, + onSuccess: async () => { + //TODO invalidate query + toast({ + variant: 'default', + title: 'Success', + description: 'Telemetry file has been added.', + }); + + router.back(); + }, + }); + function onSubmit(values: z.infer) { - console.log(values); + uploadTelemetry.mutate({ + ...values, + url: 'PLACEHOLDER_URL', + filename: values.file.name, + size: values.file.size, + }); } return (