UNPKG

datajunction-ui

Version:

DataJunction Metrics Platform UI

48 lines (43 loc) 1.24 kB
import { useContext, useEffect, useState } from 'react'; import DJClientContext from '../../providers/djclient'; import Control from './FieldControl'; import Select from 'react-select'; export default function UserSelect({ onChange, currentUser }) { const djClient = useContext(DJClientContext).DataJunctionAPI; const [retrieved, setRetrieved] = useState(false); const [users, setUsers] = useState([]); useEffect(() => { const fetchData = async () => { const users = await djClient.users(); setUsers(users); setRetrieved(true); }; fetchData().catch(console.error); }, [djClient]); return ( <span className="menu-link" style={{ marginLeft: '30px', width: '400px' }} data-testid="select-user" > {retrieved ? ( <Select name="edited_by" isClearable label="Edited By" components={{ Control }} onChange={e => onChange(e)} defaultValue={{ value: currentUser, label: currentUser, }} options={users?.map(user => { return { value: user.username, label: user.username }; })} /> ) : ( '' )} </span> ); }