From c2c43c390b88aa575d4ba888b04735942dfa628c Mon Sep 17 00:00:00 2001 From: Jordan Pittman Date: Fri, 17 Nov 2023 13:00:02 -0500 Subject: [PATCH] Add virtualized empty state example --- .../combobox-virtual-with-empty-states.tsx | 159 ++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 packages/playground-react/pages/combobox/combobox-virtual-with-empty-states.tsx diff --git a/packages/playground-react/pages/combobox/combobox-virtual-with-empty-states.tsx b/packages/playground-react/pages/combobox/combobox-virtual-with-empty-states.tsx new file mode 100644 index 0000000..bb88c57 --- /dev/null +++ b/packages/playground-react/pages/combobox/combobox-virtual-with-empty-states.tsx @@ -0,0 +1,159 @@ +import { Combobox } from '@headlessui/react' +import { useRef, useState } from 'react' +import { classNames } from '../../utils/class-names' + +import { Button } from '../../components/button' + +type Option = { + name: string + disabled: boolean + empty?: boolean +} + +export default function Home() { + let [list, setList] = useState(() => [ + {name: 'Alice', disabled: false}, + {name: 'Bob', disabled: false}, + {name: 'Charlie', disabled: false}, + {name: 'David', disabled: false}, + {name: 'Eve', disabled: false}, + {name: 'Fred', disabled: false}, + {name: 'George', disabled: false}, + {name: 'Helen', disabled: false}, + {name: 'Iris', disabled: false}, + {name: 'John', disabled: false}, + {name: 'Kate', disabled: false}, + {name: 'Linda', disabled: false}, + {name: 'Michael', disabled: false}, + {name: 'Nancy', disabled: false}, + {name: 'Oscar', disabled: true}, + {name: 'Peter', disabled: false}, + {name: 'Quentin', disabled: false}, + {name: 'Robert', disabled: false}, + {name: 'Sarah', disabled: false}, + {name: 'Thomas', disabled: false}, + {name: 'Ursula', disabled: false}, + {name: 'Victor', disabled: false}, + {name: 'Wendy', disabled: false}, + {name: 'Xavier', disabled: false}, + {name: 'Yvonne', disabled: false}, + {name: 'Zachary', disabled: false}, + ]) + + let emptyOption = useRef({ name: 'No results', disabled: true, empty: true }) + + let [query, setQuery] = useState('') + let [selectedPerson, setSelectedPerson] = useState