Skip to content

Commit b3194e3

Browse files
authored
chore: improve track map performance (#41)
1 parent 311a037 commit b3194e3

File tree

2 files changed

+294
-71
lines changed

2 files changed

+294
-71
lines changed

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

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Meta, StoryObj } from '@storybook/react-vite';
22
import { TrackCanvas, TrackDriver } from './TrackCanvas';
33
import { useEffect, useState } from 'react';
4+
import tracks from './tracks/tracks.json';
45

56
export default {
67
component: TrackCanvas,
@@ -306,3 +307,49 @@ export const CirclingAround: Story = {
306307
drivers: sampleData,
307308
},
308309
};
310+
311+
// All available track IDs from tracks.json
312+
const allTrackIds = Object.keys(tracks)
313+
.map(Number)
314+
.filter(trackId => !isNaN(trackId) && tracks[trackId.toString() as keyof typeof tracks])
315+
.sort((a, b) => a - b);
316+
317+
export const AllTracksGrid: Story = {
318+
render: () => {
319+
const trackSize = 150;
320+
321+
return (
322+
<div className="p-4 bg-gray-900 min-h-screen font-sans">
323+
<h1 className="text-white text-center mb-6 text-2xl">
324+
All Available Tracks ({allTrackIds.length} total)
325+
</h1>
326+
<div
327+
className="grid gap-4 justify-center mx-auto"
328+
style={{
329+
gridTemplateColumns: 'repeat(auto-fit, minmax(150px, 1fr))',
330+
maxWidth: '100%',
331+
width: '100%'
332+
}}
333+
>
334+
{allTrackIds.map((trackId) => (
335+
<div
336+
key={trackId}
337+
className="border border-gray-600 rounded-lg overflow-hidden bg-gray-800 relative aspect-square"
338+
style={{ maxWidth: trackSize, maxHeight: trackSize }}
339+
>
340+
<div className="absolute top-1 left-1 bg-black bg-opacity-70 text-white px-2 py-1 rounded text-xs z-10">
341+
Track {trackId}
342+
</div>
343+
<div className="w-full h-full">
344+
<TrackCanvas
345+
trackId={trackId}
346+
drivers={sampleData}
347+
/>
348+
</div>
349+
</div>
350+
))}
351+
</div>
352+
</div>
353+
);
354+
},
355+
};

0 commit comments

Comments
 (0)