72 lines
1.7 KiB
JavaScript
72 lines
1.7 KiB
JavaScript
// @flow
|
|
import React from 'react';
|
|
import { FormField, FormFieldPrice } from 'component/common/form';
|
|
|
|
type Price = {
|
|
currency: string,
|
|
amount: number,
|
|
};
|
|
|
|
type DaemonSettings = {
|
|
download_dir: string,
|
|
share_usage_data: boolean,
|
|
max_key_fee?: Price,
|
|
max_connections_per_download?: number,
|
|
save_files: boolean,
|
|
save_blobs: boolean,
|
|
ffmpeg_path: string,
|
|
};
|
|
|
|
type SetDaemonSettingArg = boolean | string | number | Price;
|
|
|
|
type Props = {
|
|
daemonSettings: DaemonSettings,
|
|
setDaemonSetting: (string, ?SetDaemonSettingArg) => void,
|
|
};
|
|
|
|
export default function MaxPurchasePrice(props: Props) {
|
|
const { daemonSettings, setDaemonSetting } = props;
|
|
|
|
const defaultMaxKeyFee = { currency: 'USD', amount: 50 };
|
|
const disableMaxKeyFee = !(daemonSettings && daemonSettings.max_key_fee);
|
|
|
|
function onKeyFeeDisableChange(isDisabled: boolean) {
|
|
if (isDisabled) {
|
|
setDaemonSetting('max_key_fee');
|
|
}
|
|
}
|
|
|
|
function onKeyFeeChange(newValue: Price) {
|
|
setDaemonSetting('max_key_fee', newValue);
|
|
}
|
|
|
|
return (
|
|
<>
|
|
<FormField
|
|
type="radio"
|
|
name="no_max_purchase_no_limit"
|
|
checked={disableMaxKeyFee}
|
|
label={__('No Limit')}
|
|
onChange={() => onKeyFeeDisableChange(true)}
|
|
/>
|
|
<FormField
|
|
type="radio"
|
|
name="max_purchase_limit"
|
|
checked={!disableMaxKeyFee}
|
|
onChange={() => {
|
|
onKeyFeeDisableChange(false);
|
|
onKeyFeeChange(defaultMaxKeyFee);
|
|
}}
|
|
label={__('Choose limit')}
|
|
/>
|
|
|
|
<FormFieldPrice
|
|
name="max_key_fee"
|
|
min={0}
|
|
onChange={onKeyFeeChange}
|
|
price={daemonSettings.max_key_fee ? daemonSettings.max_key_fee : defaultMaxKeyFee}
|
|
disabled={disableMaxKeyFee}
|
|
/>
|
|
</>
|
|
);
|
|
}
|