From 7d34233e5411cbe4edcef8646fba66b57634080e Mon Sep 17 00:00:00 2001 From: infinite-persistence Date: Fri, 6 Aug 2021 16:25:37 +0800 Subject: [PATCH] [System] grab Network & Data Settings --- ui/component/settingSystem/index.js | 7 ++- ui/component/settingSystem/view.jsx | 70 ++++++++++++++++++++++++++--- ui/page/settingsAdvanced/index.js | 2 - ui/page/settingsAdvanced/view.jsx | 38 +--------------- 4 files changed, 70 insertions(+), 47 deletions(-) diff --git a/ui/component/settingSystem/index.js b/ui/component/settingSystem/index.js index ccd1fbaab..0c27e9c92 100644 --- a/ui/component/settingSystem/index.js +++ b/ui/component/settingSystem/index.js @@ -1,10 +1,15 @@ import { connect } from 'react-redux'; import { doClearCache } from 'redux/actions/app'; +import { doSetDaemonSetting } from 'redux/actions/settings'; +import { selectDaemonSettings } from 'redux/selectors/settings'; import SettingSystem from './view'; -const select = (state) => ({}); +const select = (state) => ({ + daemonSettings: selectDaemonSettings(state), +}); const perform = (dispatch) => ({ + setDaemonSetting: (key, value) => dispatch(doSetDaemonSetting(key, value)), clearCache: () => dispatch(doClearCache()), }); diff --git a/ui/component/settingSystem/view.jsx b/ui/component/settingSystem/view.jsx index a91803aec..48b922d0d 100644 --- a/ui/component/settingSystem/view.jsx +++ b/ui/component/settingSystem/view.jsx @@ -3,6 +3,7 @@ import { ALERT } from 'constants/icons'; import React from 'react'; import Button from 'component/button'; import Card from 'component/common/card'; +import { FormField } from 'component/common/form'; import SettingAutoLaunch from 'component/settingAutoLaunch'; import SettingClosingBehavior from 'component/settingClosingBehavior'; import SettingsRow from 'component/settingsRow'; @@ -11,12 +12,31 @@ import SettingsRow from 'component/settingsRow'; const IS_MAC = process.platform === 'darwin'; // @endif +type Price = { + currency: string, + amount: number, +}; + +type SetDaemonSettingArg = boolean | string | number | Price; + +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 Props = { + daemonSettings: DaemonSettings, + setDaemonSetting: (string, ?SetDaemonSettingArg) => void, clearCache: () => Promise, }; export default function SettingSystem(props: Props) { - const { clearCache } = props; + const { daemonSettings, setDaemonSetting, clearCache } = props; const [clearingCache, setClearingCache] = React.useState(false); return ( @@ -26,10 +46,47 @@ export default function SettingSystem(props: Props) { isBodyList body={ <> + {/* @if TARGET='app' */} + + setDaemonSetting('save_files', !daemonSettings.save_files)} + checked={daemonSettings.save_files} + /> + + + {__("If disabled, LBRY will be very sad and you won't be helping improve the network.")}{' '} +