mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-23 11:31:13 -05:00
Refactor: Implement comprehensive ride field integration
This commit is contained in:
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user