import React, { useState } from 'react'; import { useFormikContext } from 'formik'; import { User } from '@/api/admin/users/getUsers'; import searchUsers from '@/api/admin/users/searchUsers'; import SearchableSelect, { Option } from '@/components/elements/SearchableSelect'; export default ({ selected }: { selected: User | null }) => { const context = useFormikContext(); const [ user, setUser ] = useState(selected); const [ users, setUsers ] = useState(null); const onSearch = (query: string): Promise => { return new Promise((resolve, reject) => { searchUsers({ username: query, email: query }) .then((users) => { setUsers(users); return resolve(); }) .catch(reject); }); }; const onSelect = (user: User | null) => { setUser(user); context.setFieldValue('ownerId', user?.id || null); }; const getSelectedText = (user: User | null): string => { return user?.email || ''; }; return ( {users?.map(d => ( ))} ); };