From 8589c83fb8c559d2ad76413f26dc90f3b252e6a8 Mon Sep 17 00:00:00 2001 From: Server Ubunto - HOME Date: Tue, 19 May 2026 20:22:37 +0100 Subject: [PATCH] fix: updated from 9.3.3 to 15 --- app/api/drivers/route.ts | 23 +------------------- app/api/events/register/route.ts | 2 +- app/api/live/telemetry/route.ts | 6 +++--- app/dashboard/page.tsx | 2 +- app/events/[event_id]/page.tsx | 4 ++-- app/events/[event_id]/results/page.tsx | 24 --------------------- app/events/page.tsx | 2 +- app/live/page.tsx | 6 +++--- app/music/page.tsx | 21 +++++++++++++----- app/rankings/page.tsx | 4 ++-- components/events/EventRegistrationForm.tsx | 2 +- components/events/EventResultsClient.tsx | 2 +- components/live/LiveSessionClient.tsx | 2 +- components/live/LiveTiming.tsx | 2 +- components/live/LiveTrackMap.tsx | 6 ++++-- components/navbar.tsx | 1 + lib/db.ts | 8 +++---- lib/telemetryBridge.ts | 4 ++-- 18 files changed, 45 insertions(+), 76 deletions(-) diff --git a/app/api/drivers/route.ts b/app/api/drivers/route.ts index ee9cbd4..00c873e 100644 --- a/app/api/drivers/route.ts +++ b/app/api/drivers/route.ts @@ -43,7 +43,7 @@ export async function GET(request: Request) { const rows = await query(sql); // Transform to proper structure - const drivers: DriverWithServer[] = rows.map((row: any) => ({ + const drivers: DriverWithServer[] = rows.map((row: unkown) => ({ driver_guid: row.driver_guid, driver_name: row.driver_name, driver_team: row.driver_team, @@ -85,24 +85,3 @@ export async function GET(request: Request) { ); } } - -// POST endpoint for updating driver data (optional, for future use) -export async function POST(request: Request) { - try { - const body = await request.json(); - - // Add your update logic here - // Example: Update driver rank, stats, etc. - - return NextResponse.json({ - success: true, - message: 'Driver updated', - }); - } catch (error) { - console.error('Error updating driver:', error); - return NextResponse.json( - { success: false, error: 'Failed to update driver' }, - { status: 500 } - ); - } -} diff --git a/app/api/events/register/route.ts b/app/api/events/register/route.ts index 586b701..0dd0098 100644 --- a/app/api/events/register/route.ts +++ b/app/api/events/register/route.ts @@ -51,7 +51,7 @@ export async function POST(request: Request) { } // Check if event exists and is open - const eventCheck: any = await queryOne( + const eventCheck: unknown = await queryOne( `SELECT event_id, event_status, max_participants, (SELECT COUNT(*) FROM event_registrations WHERE event_id = $1 AND status = 'REGISTERED') as current_registrations diff --git a/app/api/live/telemetry/route.ts b/app/api/live/telemetry/route.ts index c7bd320..fc41db6 100644 --- a/app/api/live/telemetry/route.ts +++ b/app/api/live/telemetry/route.ts @@ -31,7 +31,7 @@ async function updateRankCache() { ); rankCache.clear(); - users.forEach((row: any) => { + users.forEach((row: unknown) => { rankCache.set(row.driver_guid.toString(), { rank: row.rank_position, rating: row.user_rank @@ -112,7 +112,7 @@ export async function GET(request: Request) { const heartbeat = setInterval(() => { try { controller.enqueue(encoder.encode(`: heartbeat\n\n`)); - } catch (error) { + } catch { clearInterval(heartbeat); } }, 30000); @@ -124,7 +124,7 @@ export async function GET(request: Request) { clearInterval(heartbeat); try { controller.close(); - } catch (error) { + } catch { // Controller already closed } }); diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx index 32489ce..573c5b6 100644 --- a/app/dashboard/page.tsx +++ b/app/dashboard/page.tsx @@ -36,7 +36,7 @@ async function getConnectedDrivers() { const rows = await query(sql); - return rows.map((row: any) => ({ + return rows.map((row: unknown) => ({ driver_guid: row.driver_guid, driver_name: row.driver_name, driver_team: row.driver_team, diff --git a/app/events/[event_id]/page.tsx b/app/events/[event_id]/page.tsx index 7b69342..afedb64 100644 --- a/app/events/[event_id]/page.tsx +++ b/app/events/[event_id]/page.tsx @@ -107,7 +107,7 @@ export default async function EventDetailPage({ params: Promise<{ event_id: number }>; }) { const { event_id } = await params; - const event: any = await getEvent(event_id); + const event: unknown = await getEvent(event_id); if (!event) { notFound(); } @@ -205,7 +205,7 @@ export default async function EventDetailPage({ {registrations.length === 0 ? (

No registrations yet

) : ( - registrations.map((reg: any, index: number) => ( + registrations.map((reg: unknown, index: number) => (
diff --git a/app/events/[event_id]/results/page.tsx b/app/events/[event_id]/results/page.tsx index 56d21e7..ef62c72 100644 --- a/app/events/[event_id]/results/page.tsx +++ b/app/events/[event_id]/results/page.tsx @@ -2,26 +2,11 @@ // Event championship results page with auto-refresh import { query } from '@/lib/db'; -import { TrophyIcon } from '@/components/ui/icons'; import Link from 'next/link'; import EventResultsClient from '@/components/events/EventResultsClient'; export const dynamic = "force-dynamic"; -interface TeamStanding { - team_id: number; - team_name: string; - total_points: number; - races_participated: number; - best_finish: number; - drivers: { - driver_guid: string; - driver_name: string; - position: number; - points_awarded: number; - }[]; -} - async function getEventResults(eventId: number) { if (eventId == undefined) { @@ -72,15 +57,6 @@ async function getEventResults(eventId: number) { return { event, standings }; } - -function getPositionColor(position: number): string { - if (position === 1) return 'bg-yellow-500/20 border-yellow-500/50 text-yellow-400'; - if (position === 2) return 'bg-gray-400/20 border-gray-400/50 text-gray-300'; - if (position === 3) return 'bg-orange-600/20 border-orange-600/50 text-orange-400'; - return 'bg-white/5 border-white/10 text-white/60'; -} - - export default async function EventResultsPage({ params, diff --git a/app/events/page.tsx b/app/events/page.tsx index 2f19d9b..19b18a2 100644 --- a/app/events/page.tsx +++ b/app/events/page.tsx @@ -67,7 +67,7 @@ export default async function EventsPage() {

Check back soon for new racing events

) : ( - events.map((event: any) => { + events.map((event: unknown) => { const isOpen = event.event_status === 'OPEN'; const isFull = event.registrations_count >= event.max_participants; const deadlinePassed = event.registration_deadline && new Date(event.registration_deadline) < new Date(); diff --git a/app/live/page.tsx b/app/live/page.tsx index bab7859..3d3b342 100644 --- a/app/live/page.tsx +++ b/app/live/page.tsx @@ -12,7 +12,7 @@ interface LiveData { server_track: string; server_config: string; connected_players: number; - cars: any[]; + cars: unknown[]; } async function getLiveData(): Promise { @@ -32,7 +32,7 @@ async function getLiveData(): Promise { // For each server, get connected cars with their positions const liveData = await Promise.all( - servers.map(async (server: any) => { + servers.map(async (server: unknown) => { const carsSql = ` SELECT u.driver_guid, @@ -47,7 +47,7 @@ async function getLiveData(): Promise { const cars = await query(carsSql, [server.server_id]); // Add mock data for positions (real data will come from telemetry stream) - const carsWithPositions = cars.map((car: any, index: number) => ({ + const carsWithPositions = cars.map((car: unknown, index: number) => ({ ...car, carID: index, position: index + 1, diff --git a/app/music/page.tsx b/app/music/page.tsx index 05de08c..4782402 100644 --- a/app/music/page.tsx +++ b/app/music/page.tsx @@ -1,6 +1,5 @@ 'use client'; -import Image from "next/image"; import { useState, useRef, useEffect, MouseEvent } from 'react'; // Configuration @@ -113,8 +112,20 @@ export default function MusicPage() { }; useEffect(() => { - void fetchTracks(); - }, []); + let active = true; + + const run = async () => { + const data = await fetchTracks(); + if (!active) return; + setTracks(data); + }; + + void run(); + + return () => { + active = false; + }; + }, [isPlaying]); // Group tracks by theme const tracksByTheme = tracks.reduce>((acc, track) => { @@ -338,7 +349,7 @@ export default function MusicPage() {
{isVideo ? (