({
onChanged,
filters,
versions,
targets,
disabled,
})
| 29 | }; |
| 30 | |
| 31 | const VersionTargetForm: React.FC<Props> = ({ |
| 32 | onChanged, |
| 33 | filters, |
| 34 | versions, |
| 35 | targets, |
| 36 | disabled, |
| 37 | }) => { |
| 38 | const { t } = useTranslation("flashing"); |
| 39 | return ( |
| 40 | <Form |
| 41 | layout="vertical" |
| 42 | onValuesChange={(_, values) => |
| 43 | onChanged?.({ ...values, filters } as Parameters<typeof onChanged>[0]) |
| 44 | } |
| 45 | fields={Object.entries({ |
| 46 | target: targets.selectedId, |
| 47 | version: versions.selectedId, |
| 48 | }).map(([key, value]) => ({ name: [key], value }))} |
| 49 | size="large" |
| 50 | > |
| 51 | <Form.Item |
| 52 | label={t(`Firmware version`)} |
| 53 | name="version" |
| 54 | tooltip={ |
| 55 | versions.tooltip |
| 56 | ? { |
| 57 | title: versions.tooltip, |
| 58 | icon: <InfoCircleOutlined />, |
| 59 | } |
| 60 | : versions.tooltip |
| 61 | } |
| 62 | help={ |
| 63 | versions.error ? ( |
| 64 | t(`Could not load releases`) |
| 65 | ) : ( |
| 66 | <div style={{ display: "flex", justifyContent: "flex-end" }}> |
| 67 | <VersionFiltersDropdown |
| 68 | filters={filters} |
| 69 | onChange={(newFilters) => { |
| 70 | onChanged?.({ |
| 71 | version: versions.selectedId, |
| 72 | target: targets.selectedId, |
| 73 | filters: newFilters, |
| 74 | }); |
| 75 | }} |
| 76 | /> |
| 77 | </div> |
| 78 | ) |
| 79 | } |
| 80 | validateStatus={versions.error ? "error" : undefined} |
| 81 | required |
| 82 | > |
| 83 | <Select |
| 84 | value={versions.selectedId} |
| 85 | allowClear={false} |
| 86 | placeholder={ |
| 87 | versions.loading |
| 88 | ? t(`Loading releases...`) |
nothing calls this directly
no outgoing calls
no test coverage detected