Refactor: Implement comprehensive ride field integration

This commit is contained in:
gpt-engineer-app[bot]
2025-10-30 12:59:23 +00:00
parent 05217b00d4
commit 8fd8d2e843
3 changed files with 66 additions and 6 deletions

View File

@@ -27,6 +27,8 @@ export interface RideFilterState {
seatingTypes: string[];
intensityLevels: string[];
trackMaterials: string[];
supportMaterials: string[];
propulsionMethods: string[];
minSpeed: number;
maxSpeed: number;
minHeight: number;
@@ -54,6 +56,8 @@ export const defaultRideFilters: RideFilterState = {
seatingTypes: [],
intensityLevels: [],
trackMaterials: [],
supportMaterials: [],
propulsionMethods: [],
minSpeed: 0,
maxSpeed: 200,
minHeight: 0,
@@ -200,6 +204,29 @@ export function RideFilters({ filters, onFiltersChange, rides }: RideFiltersProp
{ label: 'Steel', value: 'steel' },
{ label: 'Wood', value: 'wood' },
{ label: 'Hybrid', value: 'hybrid' },
{ label: 'Aluminum', value: 'aluminum' },
{ label: 'Composite', value: 'composite' },
{ label: 'Other', value: 'other' },
];
const supportMaterialOptions: MultiSelectOption[] = [
{ label: 'Steel', value: 'steel' },
{ label: 'Wood', value: 'wood' },
{ label: 'Concrete', value: 'concrete' },
{ label: 'Aluminum', value: 'aluminum' },
{ label: 'Composite', value: 'composite' },
{ label: 'Other', value: 'other' },
];
const propulsionMethodOptions: MultiSelectOption[] = [
{ label: 'Chain Lift', value: 'chain_lift' },
{ label: 'Cable Lift', value: 'cable_lift' },
{ label: 'Launched (LIM/LSM)', value: 'launched_lim_lsm' },
{ label: 'Hydraulic Launch', value: 'hydraulic_launch' },
{ label: 'Compressed Air', value: 'compressed_air' },
{ label: 'Flywheel', value: 'flywheel' },
{ label: 'Gravity', value: 'gravity' },
{ label: 'Other', value: 'other' },
];
const resetFilters = () => {
@@ -339,6 +366,20 @@ export function RideFilters({ filters, onFiltersChange, rides }: RideFiltersProp
onChange={(value) => onFiltersChange({ ...filters, trackMaterials: value })}
placeholder="Select material"
/>
<FilterMultiSelectCombobox
label="Support Material"
options={supportMaterialOptions}
value={filters.supportMaterials}
onChange={(value) => onFiltersChange({ ...filters, supportMaterials: value })}
placeholder="Select support material"
/>
<FilterMultiSelectCombobox
label="Propulsion Method"
options={propulsionMethodOptions}
value={filters.propulsionMethods}
onChange={(value) => onFiltersChange({ ...filters, propulsionMethods: value })}
placeholder="Select propulsion"
/>
</div>
</FilterSection>