datajunction-ui
Version:
DataJunction Metrics Platform UI
48 lines (43 loc) • 1.24 kB
JSX
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>
);
}