in libs/designer/src/lib/ui/settings/index.tsx [404:669]
function NetworkingSettings({
nodeId,
readOnly,
nodeSettings,
isExpanded,
validationErrors,
updateSettings,
dispatch,
uploadChunkMetadata,
downloadChunkMetadata,
}: SettingSectionProps & {
uploadChunkMetadata: UploadChunkMetadata | undefined;
downloadChunkMetadata: DownloadChunkMetadata | undefined;
}): JSX.Element | null {
const {
asynchronous,
disableAsyncPattern,
suppressWorkflowHeaders,
suppressWorkflowHeadersOnResponse,
requestOptions,
retryPolicy,
uploadChunk,
paging,
downloadChunkSize,
} = nodeSettings;
const { hideContentTransferSettings } = useHostOptions();
const onAsyncPatternToggle = (checked: boolean): void => {
updateSettings({
disableAsyncPattern: {
isSupported: !!disableAsyncPattern?.isSupported,
value: checked,
},
});
};
const onAsyncResponseToggle = (checked: boolean): void => {
updateSettings({
asynchronous: {
isSupported: !!asynchronous?.isSupported,
value: checked,
},
});
};
const onRequestOptionsChange = (newVal: string): void => {
updateSettings(
{
requestOptions: {
isSupported: !!requestOptions?.isSupported,
value: { timeout: newVal },
},
},
true
);
};
const onSuppressHeadersToggle = (checked: boolean): void => {
updateSettings({
suppressWorkflowHeaders: {
isSupported: !!suppressWorkflowHeaders?.isSupported,
value: checked,
},
});
};
const onPaginationToggle = (checked: boolean): void => {
updateSettings(
{
paging: {
isSupported: !!paging?.isSupported,
value: { ...paging?.value, enabled: checked },
},
},
true
);
};
const onPaginationValueChange = (newVal: string): void => {
updateSettings(
{
paging: {
isSupported: !!paging?.isSupported,
value: {
enabled: !!paging?.value?.enabled,
value: Number(newVal),
},
},
},
true
);
};
const onHeadersOnResponseToggle = (checked: boolean): void => {
updateSettings({
suppressWorkflowHeadersOnResponse: {
isSupported: !!suppressWorkflowHeadersOnResponse?.isSupported,
value: checked,
},
});
};
const onContentTransferToggle = (checked: boolean): void => {
updateSettings({
uploadChunk: {
isSupported: !!uploadChunk?.isSupported,
value: checked ? { ...uploadChunk?.value, transferMode: constants.SETTINGS.TRANSFER_MODE.CHUNKED } : undefined,
},
});
};
const onUploadChunkSizeChange = (newVal: string): void => {
updateSettings(
{
uploadChunk: {
isSupported: !!uploadChunk?.isSupported,
value: {
...(uploadChunk?.value as any),
...{ uploadChunkSize: newVal === '' ? undefined : Number.parseInt(newVal, 10) },
},
},
},
true
);
};
const onDownloadChunkSizeChange = (newVal: string): void => {
updateSettings(
{
downloadChunkSize: {
isSupported: !!downloadChunkSize?.isSupported,
value: newVal === '' ? undefined : Number.parseInt(newVal, 10),
},
},
true
);
};
const onRetryPolicyChange = (selectedOption: IDropdownOption): void => {
updateSettings(
{
retryPolicy: {
isSupported: !!retryPolicy?.isSupported,
value: {
type: selectedOption.key.toString(),
count: retryPolicy?.value?.count,
interval: retryPolicy?.value?.interval,
},
},
},
true
);
};
const onRetryCountChange = (newVal: string): void => {
updateSettings(
{
retryPolicy: {
isSupported: !!retryPolicy?.isSupported,
value: {
...(retryPolicy?.value as any),
count: Number.isNaN(Number(newVal)) ? newVal : Number(newVal),
},
},
},
true
);
};
const onRetryIntervalChange = (newVal: string): void => {
updateSettings(
{
retryPolicy: {
isSupported: !!retryPolicy?.isSupported,
value: {
...(retryPolicy?.value as any),
interval: newVal,
},
},
},
true
);
};
const onRetryMinIntervalChange = (newVal: string): void => {
updateSettings(
{
retryPolicy: {
isSupported: !!retryPolicy?.isSupported,
value: {
...(retryPolicy?.value as any),
minimumInterval: newVal,
},
},
},
true
);
};
const onRetryMaxIntervalChange = (newVal: string): void => {
updateSettings(
{
retryPolicy: {
isSupported: !!retryPolicy?.isSupported,
value: {
...(retryPolicy?.value as any),
maximumInterval: newVal,
},
},
},
true
);
};
if (
retryPolicy?.isSupported ||
suppressWorkflowHeaders?.isSupported ||
suppressWorkflowHeadersOnResponse?.isSupported ||
paging?.isSupported ||
uploadChunk?.isSupported ||
downloadChunkSize?.isSupported ||
asynchronous?.isSupported ||
disableAsyncPattern?.isSupported ||
requestOptions?.isSupported
) {
return (
<Networking
nodeId={nodeId}
readOnly={readOnly}
expanded={isExpanded}
validationErrors={validationErrors}
suppressWorkflowHeaders={suppressWorkflowHeaders}
suppressWorkflowHeadersOnResponse={suppressWorkflowHeadersOnResponse}
paging={paging}
asynchronous={asynchronous}
requestOptions={requestOptions}
disableAsyncPattern={disableAsyncPattern}
chunkedTransferMode={equals(uploadChunk?.value?.transferMode, constants.SETTINGS.TRANSFER_MODE.CHUNKED)}
uploadChunkMetadata={uploadChunkMetadata}
downloadChunkMetadata={downloadChunkMetadata}
retryPolicy={retryPolicy}
uploadChunk={uploadChunk}
downloadChunkSize={downloadChunkSize}
hideContentTransferSettings={hideContentTransferSettings}
onHeaderClick={(sectionName) => dispatch(setExpandedSections(sectionName))}
onAsyncPatternToggle={onAsyncPatternToggle}
onAsyncResponseToggle={onAsyncResponseToggle}
onContentTransferToggle={onContentTransferToggle}
onUploadChunkSizeChange={onUploadChunkSizeChange}
onDownloadChunkSizeChange={onDownloadChunkSizeChange}
onPaginationToggle={onPaginationToggle}
onPaginationValueChange={onPaginationValueChange}
onRequestOptionsChange={onRequestOptionsChange}
onHeadersOnResponseToggle={onHeadersOnResponseToggle}
onSuppressHeadersToggle={onSuppressHeadersToggle}
onRetryPolicyChange={onRetryPolicyChange}
onRetryCountChange={onRetryCountChange}
onRetryIntervalChange={onRetryIntervalChange}
onRetryMinIntervalChange={onRetryMinIntervalChange}
onRetryMaxIntervalChange={onRetryMaxIntervalChange}
/>
);
}
return null;
}