MCPcopy Index your code
hub / github.com/coder/coder / InnerMultiSelect

Function InnerMultiSelect

site/src/components/MultiUserSelect/MultiUserSelect.tsx:95–147  ·  view source on GitHub ↗
({
	className,
	error,
	onChange,
	selected,
	setFilter,
	users,
}: InnerAutocompleteProps<T>)

Source from the content-addressed store, hash-verified

93 };
94
95const InnerMultiSelect = <T extends SelectedUser>({
96 className,
97 error,
98 onChange,
99 selected,
100 setFilter,
101 users,
102}: InnerAutocompleteProps<T>) => {
103 const [inputValue, setInputValue] = useState("");
104 const { debounced, cancelDebounce } = useDebouncedFunction(
105 (nextFilter: string) => {
106 setFilter(nextFilter);
107 },
108 DEBOUNCE_MS,
109 );
110
111 return (
112 <div className={cn("flex flex-col gap-4", className)}>
113 <SearchField
114 className="h-12 w-full rounded-lg"
115 value={inputValue}
116 aria-label="Search users"
117 onChange={(query) => {
118 setInputValue(query);
119 debounced(query);
120 }}
121 onClear={() => {
122 cancelDebounce();
123 setInputValue("");
124 setFilter("");
125 }}
126 placeholder="Search users..."
127 />
128 <div className="h-96 w-full rounded-lg border border-border border-solid">
129 <div className="h-full overflow-hidden p-px">
130 <div
131 className="h-full overflow-y-auto overflow-x-hidden overscroll-contain"
132 onWheel={(event) => {
133 event.stopPropagation();
134 }}
135 >
136 <UsersTable
137 error={error}
138 onChange={onChange}
139 selected={selected}
140 users={users}
141 />
142 </div>
143 </div>
144 </div>
145 </div>
146 );
147};
148
149type UsersTable<T extends SelectedUser> = {
150 error: unknown;

Callers

nothing calls this directly

Calls 2

useDebouncedFunctionFunction · 0.90
cnFunction · 0.90

Tested by

no test coverage detected