Skip to content

Commit 4177c55

Browse files
tariknzCopilot
andauthored
Additional performance improvements for trackmap (#42)
Co-authored-by: Copilot <[email protected]>
1 parent ca73cfd commit 4177c55

File tree

8 files changed

+426
-283
lines changed

8 files changed

+426
-283
lines changed

src/frontend/components/TrackMap/TrackCanvas.stories.tsx

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Meta, StoryObj } from '@storybook/react-vite';
22
import { TrackCanvas, TrackDriver } from './TrackCanvas';
33
import { useEffect, useState } from 'react';
44
import tracks from './tracks/tracks.json';
5+
import { BROKEN_TRACKS } from './tracks/broken-tracks';
56

67
export default {
78
component: TrackCanvas,
@@ -284,6 +285,48 @@ export const Primary: Story = {
284285
},
285286
};
286287

288+
export const SingleDriver: Story = {
289+
argTypes: {
290+
progress: {
291+
control: { type: 'range', min: 0, max: 1, step: 0.01 },
292+
description: 'Driver progress around the track (0-1)',
293+
},
294+
carNumber: {
295+
control: { type: 'text' },
296+
description: 'Driver car number',
297+
},
298+
isPlayer: {
299+
control: { type: 'boolean' },
300+
},
301+
carClassColor: {
302+
control: { type: 'number' },
303+
description: 'Driver car class color',
304+
},
305+
},
306+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
307+
render: (args: any) => {
308+
const drivers = [{
309+
driver: {
310+
CarIdx: 39,
311+
CarNumber: args.carNumber || '29',
312+
CarClassColor: args.carClassColor || 11430911,
313+
CarClassEstLapTime: 126.2284,
314+
},
315+
progress: args.progress || 0,
316+
isPlayer: args.isPlayer || false,
317+
}] as TrackDriver[];
318+
319+
return <TrackCanvas trackId={args.trackId} drivers={drivers} />;
320+
},
321+
args: {
322+
trackId: 1,
323+
progress: 0,
324+
carNumber: '29',
325+
isPlayer: true,
326+
carClassColor: 11430911,
327+
},
328+
} as Story;
329+
287330
export const CirclingAround: Story = {
288331
render: (args) => {
289332
const [drivers, setDrivers] = useState(args.drivers);
@@ -353,3 +396,43 @@ export const AllTracksGrid: Story = {
353396
);
354397
},
355398
};
399+
400+
export const BrokenTracksGrid: Story = {
401+
render: () => {
402+
const trackSize = 200;
403+
404+
return (
405+
<div className="p-4 bg-gray-900 min-h-screen font-sans">
406+
<h1 className="text-white text-center mb-6 text-2xl">
407+
Broken Tracks ({BROKEN_TRACKS.length} total)
408+
</h1>
409+
<p className="text-gray-400 text-center mb-6">
410+
These tracks are broken and will be hidden in production but available for debugging in development/storybook.
411+
</p>
412+
<div
413+
className="grid gap-4 justify-center mx-auto"
414+
style={{
415+
gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))',
416+
maxWidth: '100%',
417+
width: '100%'
418+
}}
419+
>
420+
{BROKEN_TRACKS.map((brokenTrack) => (
421+
<div
422+
key={brokenTrack.id}
423+
className="border border-red-600 rounded-lg overflow-hidden bg-gray-800 relative aspect-square"
424+
style={{ maxWidth: trackSize, maxHeight: trackSize }}
425+
>
426+
<div className="w-full h-full">
427+
<TrackCanvas
428+
trackId={brokenTrack.id}
429+
drivers={sampleData}
430+
/>
431+
</div>
432+
</div>
433+
))}
434+
</div>
435+
</div>
436+
);
437+
},
438+
};

0 commit comments

Comments
 (0)