export default()

in src/frontend/src/components/selection/ImageSourceToggleSelection.tsx [31:63]


export default ({ onChange }: Props) => {
  const [selectedOptions, setSelectedFeature] = useState<ImageSource>(
    Object.values(OPTION_TO_LABEL_MAP)[0]
  );

  const handleSelection = (newSelection: ImageSource) => {
    if (newSelection !== null) {
      setSelectedFeature(newSelection);
      onChange(newSelection);
    }
  };

  return (
    <div className="btn-group">
      {Object.entries(OPTION_TO_LABEL_MAP).map(([label, value]) => (
        <button
          data-testid={`button-${value}`}
          key={value}
          onClick={() => handleSelection(value)}
          aria-label={label}
          className={clsx(
            "btn",
            selectedOptions === value
              ? "btn-primary border-primary-focus"
              : "bg-gray-200 border-gray-400 text-gray-500 hover:border-primary hover:bg-primary hover:bg-opacity-25"
          )}
        >
          {label}
        </button>
      ))}
    </div>
  );
};