import { useMemo, useState } from 'react';

type FilterableCar = {
  km: number;
};

export const useCardGrid = <T extends FilterableCar>(cars: T[]) => {
  const [currentOption, setCurrentOption] = useState('all');

  const options = [
    { label: 'TODOS', value: 'all' },
    { label: 'PRE OWNED', value: 'preowned' },
    { label: '0KM', value: 'new' },
  ];

  const filteredCars = useMemo(() => {
    switch (currentOption) {
      case 'new':
        return cars.filter((car) => car.km === 0);

      case 'preowned':
        return cars.filter((car) => car.km > 0);

      default:
        return cars;
    }
  }, [cars, currentOption]);

  return { currentOption, setCurrentOption, options, filteredCars };
};
