diff --git a/src/app/api/fetch.ts b/src/app/api/fetch.ts index dc2bfde..d99cb8c 100644 --- a/src/app/api/fetch.ts +++ b/src/app/api/fetch.ts @@ -8,6 +8,12 @@ export const fetchAPI = async (endpoint: string) => { }, }; + // Check if any fetching is in queue + + // If so add to queue + + // Need mechanism to tell code to go to next fetch + // Fetch from server const data = await fetch(`${serverUrl}/${endpoint}`, { ...options }) .then( diff --git a/src/components/QueryNav/DropdownGroup.tsx b/src/components/QueryNav/DropdownGroup.tsx index 82b606d..d5ce504 100644 --- a/src/components/QueryNav/DropdownGroup.tsx +++ b/src/components/QueryNav/DropdownGroup.tsx @@ -6,6 +6,7 @@ import { usePathname, useRouter, useSearchParams } from 'next/navigation'; import { useCallback } from 'react'; import { driverDefault, eventDefault, sessionDefault } from '@/lib/constants'; +import { updateSearchParams } from '@/lib/helpers'; import { fetchDriverList } from '@/app/api/fetchDriversAndSessions'; import { fetchEventList } from '@/app/api/fetchEvents'; @@ -33,8 +34,7 @@ export const DropdownGroup = () => { const searchParams = useSearchParams(); // *** Param variables - const seasonParam = - searchParams.get('season') || new Date().getFullYear().toString(); + const seasonParam = searchParams.get('season') || ''; const eventParam = searchParams.get('event') || ''; const sessionParam = searchParams.get('session') || ''; const driversParam = searchParams.get('drivers') || ''; @@ -147,14 +147,17 @@ export const DropdownGroup = () => { params.set(name, value); - return params.toString(); + return params; + // .toString(); }, [searchParams, session, season], ); const dropdownAction = (name: string, value: string) => { updateState(name, value); - router.push(pathname + '?' + createQueryString(name, value)); + const newQueryString = createQueryString(name, value); + const newQueryView = updateSearchParams(newQueryString, 'view', name); + router.push(pathname + '?' + newQueryView); }; return ( diff --git a/src/components/Sidebar/Selection.tsx b/src/components/Sidebar/Selection.tsx index 05a70ec..1089c64 100644 --- a/src/components/Sidebar/Selection.tsx +++ b/src/components/Sidebar/Selection.tsx @@ -32,6 +32,7 @@ export const Selection = ({ ? '#' : `${pathname}?${updateSearchParams(params, 'view', title)}` } + tabIndex={disabled ? -1 : undefined} className={cn( buttonVariants({ variant: 'ghost', size: 'sm' }), active && @@ -40,7 +41,6 @@ export const Selection = ({ disabled && 'text-muted-foreground', className, )} - tabIndex={disabled ? -1 : undefined} > {title} {label && ( diff --git a/src/lib/transformers.tsx b/src/lib/transformers.tsx index 3d135b4..6987b63 100644 --- a/src/lib/transformers.tsx +++ b/src/lib/transformers.tsx @@ -12,10 +12,10 @@ export const formatRaceEventName = (val: string) => export const formatSessionUrl = (session: string) => sessionUrlParams[session as keyof typeof sessionUrlParams]; -export const formatSessionName = (val: string) => - Object.keys(sessionUrlParams).find( - (key) => sessionUrlParams[key as keyof typeof sessionUrlParams] === val, - ); +// export const formatSessionName = (val: string) => +// Object.keys(sessionUrlParams).find( +// (key) => sessionUrlParams[key as keyof typeof sessionUrlParams] === val, +// ); export const formatConstructorResults = (drivers: DriverResult[]) => drivers @@ -69,7 +69,7 @@ export const formatNextEvent = (data: ScheduleSchema) => { key.match(/Session[1-5]DateUtc/g), ); - // Find the next session + // Find the Next Session Time const nextSessionTime = sessionTimes.find((session) => { const sessionName = data[ session.slice(0, 8) as keyof ScheduleSchema