This commit is contained in:
jessop 2019-12-13 12:26:59 -05:00 committed by Sean Yesmunt
parent 36ffbe6322
commit e3aae34f65

View file

@ -24,16 +24,8 @@ type StatusOfServer = {
}; };
type ServerTuple = Array<string>; // ['host', 'port'] type ServerTuple = Array<string>; // ['host', 'port']
type DisplayOfServer = {
host: string,
port: string,
availability: boolean,
};
type ServerStatus = Array<StatusOfServer>; type ServerStatus = Array<StatusOfServer>;
type ServerConfig = Array<ServerTuple>; type ServerConfig = Array<ServerTuple>;
type DisplayList = Array<DisplayOfServer>;
type Props = { type Props = {
daemonSettings: DaemonSettings, daemonSettings: DaemonSettings,
@ -66,7 +58,6 @@ function SettingWalletServer(props: Props) {
const currentServerConfig: ServerConfig = daemonSettings && daemonSettings.lbryum_servers; const currentServerConfig: ServerConfig = daemonSettings && daemonSettings.lbryum_servers;
const serverConfig: ServerConfig = customWalletServers.length ? customWalletServers : currentServerConfig; const serverConfig: ServerConfig = customWalletServers.length ? customWalletServers : currentServerConfig;
const STATUS_INTERVAL = 5000; const STATUS_INTERVAL = 5000;
console.log(hasWalletServerPrefs)
useEffect(() => { useEffect(() => {
if (hasWalletServerPrefs) { if (hasWalletServerPrefs) {
@ -85,19 +76,6 @@ function SettingWalletServer(props: Props) {
fetchDaemonSettings(); fetchDaemonSettings();
}, []); }, []);
function makeDisplayList(l) {
const displayList = [];
l.forEach(entry => {
displayList.push({
host: entry[0],
port: entry[1],
available:
activeWalletServers.some(s => s.host === entry[0] && String(s.port) === entry[1] && s.availability) || false,
});
});
return displayList;
}
function makeServerParam(configList) { function makeServerParam(configList) {
return configList.reduce((acc, cur) => { return configList.reduce((acc, cur) => {
acc.push(`${cur[0]}:${cur[1]}`); acc.push(`${cur[0]}:${cur[1]}`);
@ -131,29 +109,29 @@ function SettingWalletServer(props: Props) {
<React.Fragment> <React.Fragment>
<label>{__('Wallet servers')}</label> <label>{__('Wallet servers')}</label>
<fieldset> <fieldset>
<FormField <FormField
type="radio" type="radio"
name="default_wallet_servers" name="default_wallet_servers"
checked={!advancedMode} checked={!advancedMode}
label={__('lbry.tv')} label={__('lbry.tv')}
onChange={e => { onChange={e => {
if (e.target.checked) { if (e.target.checked) {
doClear(); doClear();
} }
}} }}
/> />
<FormField <FormField
type="radio" type="radio"
name="custom_wallet_servers" name="custom_wallet_servers"
checked={advancedMode} checked={advancedMode}
onChange={e => { onChange={e => {
setAdvancedMode(e.target.checked); setAdvancedMode(e.target.checked);
if (e.target.checked) { if (e.target.checked) {
setCustomWalletServers(makeServerParam(customWalletServers)); setCustomWalletServers(makeServerParam(customWalletServers));
} }
}} }}
label={__('customize')} label={__('customize')}
/> />
</fieldset> </fieldset>
{advancedMode && ( {advancedMode && (
<div> <div>
@ -168,11 +146,15 @@ function SettingWalletServer(props: Props) {
</thead> </thead>
<tbody> <tbody>
{serverConfig && {serverConfig &&
makeDisplayList(serverConfig).map((t, i) => ( serverConfig.map((entry, i) => (
<tr key={`${t.host}:${t.port}`}> <tr key={`${entry[0]}:${entry[1]}`}>
<td>{t.host}</td> <td>{entry[0]}</td>
<td>{t.port}</td> <td>{entry[1]}</td>
<td>{t.available && <Icon icon={ICONS.SUBSCRIBE} />}</td> <td>
{activeWalletServers.some(
s => s.host === entry[0] && String(s.port) === entry[1] && s.availability
) && <Icon icon={ICONS.SUBSCRIBE} />}
</td>
<td> <td>
<Button button={'link'} icon={ICONS.REMOVE} onClick={() => onDelete(i)} /> <Button button={'link'} icon={ICONS.REMOVE} onClick={() => onDelete(i)} />
</td> </td>