import React from "react"; import { FormField, FormRow } from "component/form.js"; import SubHeader from "component/subHeader"; import lbry from "lbry.js"; class SettingsPage extends React.PureComponent { constructor(props) { super(props); const daemonSettings = this.props.daemonSettings; this.state = { isMaxUpload: daemonSettings && daemonSettings.max_upload != 0, isMaxDownload: daemonSettings && daemonSettings.max_download != 0, showNsfw: lbry.getClientSetting("showNsfw"), showUnavailable: lbry.getClientSetting("showUnavailable"), language: lbry.getClientSetting("language"), }; } setDaemonSetting(name, value) { this.props.setDaemonSetting(name, value); } setClientSetting(name, value) { lbry.setClientSetting(name, value); this._onSettingSaveSuccess(); } onRunOnStartChange(event) { this.setDaemonSetting("run_on_startup", event.target.checked); } onShareDataChange(event) { this.setDaemonSetting("share_usage_data", event.target.checked); } onDownloadDirChange(event) { this.setDaemonSetting("download_directory", event.target.value); } onMaxUploadPrefChange(isLimited) { if (!isLimited) { this.setDaemonSetting("max_upload", 0.0); } this.setState({ isMaxUpload: isLimited, }); } onMaxUploadFieldChange(event) { this.setDaemonSetting("max_upload", Number(event.target.value)); } onMaxDownloadPrefChange(isLimited) { if (!isLimited) { this.setDaemonSetting("max_download", 0.0); } this.setState({ isMaxDownload: isLimited, }); } onMaxDownloadFieldChange(event) { this.setDaemonSetting("max_download", Number(event.target.value)); } onShowNsfwChange(event) { lbry.setClientSetting("showNsfw", event.target.checked); } // onLanguageChange(language) { // lbry.setClientSetting('language', language); // i18n.setLocale(language); // this.setState({language: language}) // } onShowUnavailableChange(event) {} render() { const { daemonSettings } = this.props; if (!daemonSettings) { return ( {__("Failed to load settings.")} ); } /* Run on Startup */ return ( {__("Download Directory")} {__("Bandwidth Limits")} {__("Max Upload")} { this.onMaxUploadPrefChange(false); }} defaultChecked={!this.state.isMaxUpload} label={__("Unlimited")} /> { this.onMaxUploadPrefChange(true); }} defaultChecked={this.state.isMaxUpload} label={ this.state.isMaxUpload ? __("Up to") : __("Choose limit...") } /> {this.state.isMaxUpload ? : ""} {this.state.isMaxUpload ? MB/s : ""} {__("Max Download")} { this.onMaxDownloadPrefChange(false); }} defaultChecked={!this.state.isMaxDownload} /> { this.onMaxDownloadPrefChange(true); }} defaultChecked={this.state.isMaxDownload} label={ this.state.isMaxDownload ? __("Up to") : __("Choose limit...") } /> {this.state.isMaxDownload ? : ""} {this.state.isMaxDownload ? MB/s : ""} {__("Content")} {__("Language")} { this.onLanguageChange("en"); }} defaultChecked={this.state.language == "en"} /> { this.onLanguageChange("rs"); }} defaultChecked={this.state.language == "rs"} /> {__("Share Diagnostic Data")} ); } } export default SettingsPage;