Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | import React, { ChangeEvent, useState } from 'react'; import { Scheduler } from '../handler'; import { useTranslator } from '../hooks'; export type EnvironmentPickerProps = { name: string; id: string; onChange: (event: ChangeEvent) => void; environmentsPromise: Promise<Scheduler.IRuntimeEnvironment[]>; initialValue: string; }; export function EnvironmentPicker(props: EnvironmentPickerProps) { const [environmentList, setEnvironmentList] = useState( [] as Scheduler.IRuntimeEnvironment[] ); const trans = useTranslator('jupyterlab'); React.useEffect(() => { props.environmentsPromise.then(envList => setEnvironmentList(envList)); }, []); Iif (environmentList.length === 0) { return <em>{trans.__('Loading …')}</em>; } return ( <select name={props.name} id={props.id} onChange={props.onChange} value={props.initialValue} > <option value="" title={trans.__('No environment selected')} disabled ></option> {environmentList.map((env, idx) => ( <option value={env.label} title={env.description} key={idx}> {env.name} </option> ))} </select> ); } |