in s3-artifact-storage-ui/src/App/S3/TransferSpeedUp/components/Distribution.tsx [26:76]
export default function Distribution({ label, fieldName, onChange }: OwnProps) {
const { control, getValues, setError, clearErrors } = useFormContext();
const { showErrorsOnForm } = useErrorService({
setError,
errorKeyToFieldNameConvertor: errorIdToFieldName,
});
const { isLoading, errors, reloadDistributions, cfDistributions } =
useCfDistributions();
const { isMagicHappening, disabled, setCfDistributions } =
useCloudFrontDistributionsContext();
const reloadCloudDistributions = useCallback(async () => {
clearErrors(fieldName);
const result = await reloadDistributions(getValues());
result && setCfDistributions(result);
}, [
clearErrors,
fieldName,
reloadDistributions,
getValues,
setCfDistributions,
]);
if (errors) {
showErrorsOnForm(errors);
}
return (
<FormRow label={label} labelFor={fieldName}>
<FieldRow>
<FieldColumn>
<FormSelect
name={fieldName}
control={control}
// selected={uploadDistributionData[0]}
rules={{ required: 'Distribution is mandatory' }}
data={cfDistributions}
onChange={onChange}
onBeforeOpen={reloadCloudDistributions}
loading={isLoading}
label="-- Select distribution --"
disabled={isMagicHappening || disabled}
/>
</FieldColumn>
<FieldColumn>
<MagicDistributionsButton />
</FieldColumn>
</FieldRow>
</FormRow>
);
}