import type { ChangeEvent } from 'react' import React, { useState } from 'react' import { Select, Form, Container, NumberInput } from '@toptal/picasso' import { SPACING_4 } from '@toptal/picasso-utils' const SelectSearchBehaviourExample = () => { const [value, setValue] = useState('') const [multipleValues, setMultipleValues] = useState([]) const [limit, setLimit] = useState(50) const handlerForSelectChange = (setState: (state: string) => void) => ( event: ChangeEvent<{ name?: string value: string }> ) => { setState(event.target.value) } const handleMultipleChange = (setState: (state: string[]) => void) => (event: React.ChangeEvent<{ value: string[] }>) => { setState(event.target.value) } const handlerForInputChange = (setState: (state: number) => void) => (event: React.ChangeEvent) => { setState(parseInt(event.target.value, 10)) } return ( Flat options Limit ) } const optionsGenerator = (start = 1) => (value: number, key: number) => ({ value: `${key + start}`, text: `Option ${key + start}`, }) const LOTS_OF_OPTION_GROUPS = { 'Group 1': Array.from({ length: 200 }, optionsGenerator()), 'Group 2': Array.from({ length: 200 }, optionsGenerator(200)), 'Group 3': Array.from({ length: 200 }, optionsGenerator(400)), 'Group 4': Array.from({ length: 200 }, optionsGenerator(600)), } const LOTS_OF_OPTIONS = Array.from({ length: 1000 }, optionsGenerator()) export default SelectSearchBehaviourExample