import React, { useState } from 'react'; import { useFormikContext } from 'formik'; import { Role } from '@/api/admin/roles/getRoles'; import searchRoles from '@/api/admin/roles/searchRoles'; import SearchableSelect, { Option } from '@/components/elements/SearchableSelect'; export default ({ selected }: { selected: Role | null }) => { const context = useFormikContext(); const [ role, setRole ] = useState(selected); const [ roles, setRoles ] = useState(null); const onSearch = (query: string): Promise => { return new Promise((resolve, reject) => { searchRoles({ name: query }) .then(roles => { setRoles(roles); return resolve(); }) .catch(reject); }); }; const onSelect = (role: Role | null) => { setRole(role); context.setFieldValue('adminRoleId', role?.id || null); }; const getSelectedText = (role: Role | null): string | undefined => { return role?.name; }; return ( {roles?.map(d => ( ))} ); };