Merge branch 'master' into css_patch
This commit is contained in:
commit
ac2a69c47d
10 changed files with 31 additions and 188 deletions
ui
|
@ -3,6 +3,7 @@ import * as settings from "constants/settings";
|
||||||
import lbry from "lbry";
|
import lbry from "lbry";
|
||||||
import lbryio from "lbryio";
|
import lbryio from "lbryio";
|
||||||
import lbryuri from "lbryuri";
|
import lbryuri from "lbryuri";
|
||||||
|
import { makeSelectClientSetting } from "selectors/settings";
|
||||||
import { selectBalance } from "selectors/wallet";
|
import { selectBalance } from "selectors/wallet";
|
||||||
import {
|
import {
|
||||||
makeSelectFileInfoForUri,
|
makeSelectFileInfoForUri,
|
||||||
|
@ -360,13 +361,13 @@ export function doPurchaseUri(uri) {
|
||||||
|
|
||||||
if (
|
if (
|
||||||
cost == 0 ||
|
cost == 0 ||
|
||||||
!lbry.getClientSetting(settings.INSTANT_PURCHASE_ENABLED)
|
!makeSelectClientSetting(settings.INSTANT_PURCHASE_ENABLED)(state)
|
||||||
) {
|
) {
|
||||||
attemptPlay(cost);
|
attemptPlay(cost);
|
||||||
} else {
|
} else {
|
||||||
const instantPurchaseMax = lbry.getClientSetting(
|
const instantPurchaseMax = makeSelectClientSetting(
|
||||||
settings.INSTANT_PURCHASE_MAX
|
settings.INSTANT_PURCHASE_MAX
|
||||||
);
|
)(state);
|
||||||
if (instantPurchaseMax.currency == "LBC") {
|
if (instantPurchaseMax.currency == "LBC") {
|
||||||
attemptPlay(cost, instantPurchaseMax.amount);
|
attemptPlay(cost, instantPurchaseMax.amount);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -41,8 +41,6 @@ export function doSetDaemonSetting(key, value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function doSetClientSetting(key, value) {
|
export function doSetClientSetting(key, value) {
|
||||||
lbry.setClientSetting(key, value);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
type: types.CLIENT_SETTING_CHANGED,
|
type: types.CLIENT_SETTING_CHANGED,
|
||||||
data: {
|
data: {
|
||||||
|
|
|
@ -8,7 +8,6 @@ import SendCreditsPage from "page/sendCredits";
|
||||||
import ShowPage from "page/show";
|
import ShowPage from "page/show";
|
||||||
import PublishPage from "page/publish";
|
import PublishPage from "page/publish";
|
||||||
import DiscoverPage from "page/discover";
|
import DiscoverPage from "page/discover";
|
||||||
import DeveloperPage from "page/developer.js";
|
|
||||||
import RewardsPage from "page/rewards";
|
import RewardsPage from "page/rewards";
|
||||||
import FileListDownloaded from "page/fileListDownloaded";
|
import FileListDownloaded from "page/fileListDownloaded";
|
||||||
import FileListPublished from "page/fileListPublished";
|
import FileListPublished from "page/fileListPublished";
|
||||||
|
@ -32,7 +31,6 @@ const Router = props => {
|
||||||
auth: <AuthPage params={params} />,
|
auth: <AuthPage params={params} />,
|
||||||
backup: <BackupPage params={params} />,
|
backup: <BackupPage params={params} />,
|
||||||
channel: <ChannelPage params={params} />,
|
channel: <ChannelPage params={params} />,
|
||||||
developer: <DeveloperPage params={params} />,
|
|
||||||
discover: <DiscoverPage params={params} />,
|
discover: <DiscoverPage params={params} />,
|
||||||
downloaded: <FileListDownloaded params={params} />,
|
downloaded: <FileListDownloaded params={params} />,
|
||||||
help: <HelpPage params={params} />,
|
help: <HelpPage params={params} />,
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import lighthouse from "./lighthouse.js";
|
|
||||||
import jsonrpc from "./jsonrpc.js";
|
import jsonrpc from "./jsonrpc.js";
|
||||||
import lbryuri from "./lbryuri.js";
|
import lbryuri from "./lbryuri.js";
|
||||||
|
|
||||||
/**
|
|
||||||
* The 4 get/set functions below used to be in a utils.js library when used more widely.
|
|
||||||
* They've been reduced to just this file and probably ought to be eliminated entirely.
|
|
||||||
*/
|
|
||||||
function getLocal(key, fallback = undefined) {
|
function getLocal(key, fallback = undefined) {
|
||||||
const itemRaw = localStorage.getItem(key);
|
const itemRaw = localStorage.getItem(key);
|
||||||
return itemRaw === null ? fallback : JSON.parse(itemRaw);
|
return itemRaw === null ? fallback : JSON.parse(itemRaw);
|
||||||
|
@ -15,15 +10,6 @@ function setLocal(key, value) {
|
||||||
localStorage.setItem(key, JSON.stringify(value));
|
localStorage.setItem(key, JSON.stringify(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSession(key, fallback = undefined) {
|
|
||||||
const itemRaw = sessionStorage.getItem(key);
|
|
||||||
return itemRaw === null ? fallback : JSON.parse(itemRaw);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setSession(key, value) {
|
|
||||||
sessionStorage.setItem(key, JSON.stringify(value));
|
|
||||||
}
|
|
||||||
|
|
||||||
const { remote, ipcRenderer } = require("electron");
|
const { remote, ipcRenderer } = require("electron");
|
||||||
const menu = remote.require("./menu/main-menu");
|
const menu = remote.require("./menu/main-menu");
|
||||||
|
|
||||||
|
@ -31,19 +17,6 @@ let lbry = {
|
||||||
isConnected: false,
|
isConnected: false,
|
||||||
daemonConnectionString: "http://localhost:5279",
|
daemonConnectionString: "http://localhost:5279",
|
||||||
pendingPublishTimeout: 20 * 60 * 1000,
|
pendingPublishTimeout: 20 * 60 * 1000,
|
||||||
defaultClientSettings: {
|
|
||||||
showNsfw: false,
|
|
||||||
showUnavailable: true,
|
|
||||||
debug: false,
|
|
||||||
useCustomLighthouseServers: false,
|
|
||||||
customLighthouseServers: [],
|
|
||||||
language: "en",
|
|
||||||
theme: "light",
|
|
||||||
themes: [],
|
|
||||||
instantPurchaseMax: null,
|
|
||||||
instantPurchaseEnabled: false,
|
|
||||||
instantPurchaseMax: { currency: "LBC", amount: 0.1 },
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function apiCall(method, params, resolve, reject) {
|
function apiCall(method, params, resolve, reject) {
|
||||||
|
@ -227,17 +200,6 @@ lbry.publishDeprecated = function(
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
lbry.getClientSetting = function(setting) {
|
|
||||||
var localStorageVal = localStorage.getItem("setting_" + setting);
|
|
||||||
return localStorageVal === null
|
|
||||||
? lbry.defaultClientSettings[setting]
|
|
||||||
: JSON.parse(localStorageVal);
|
|
||||||
};
|
|
||||||
|
|
||||||
lbry.setClientSetting = function(setting, value) {
|
|
||||||
return localStorage.setItem("setting_" + setting, JSON.stringify(value));
|
|
||||||
};
|
|
||||||
|
|
||||||
lbry.imagePath = function(file) {
|
lbry.imagePath = function(file) {
|
||||||
return "img/" + file;
|
return "img/" + file;
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,9 +14,7 @@ let server = null;
|
||||||
let connectTryNum = 0;
|
let connectTryNum = 0;
|
||||||
|
|
||||||
function getServers() {
|
function getServers() {
|
||||||
return lbry.getClientSetting("useCustomLighthouseServers")
|
return defaultServers;
|
||||||
? lbry.getClientSetting("customLighthouseServers")
|
|
||||||
: defaultServers;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function call(method, params, callback, errorCallback) {
|
function call(method, params, callback, errorCallback) {
|
||||||
|
|
|
@ -1,122 +0,0 @@
|
||||||
import lbry from "../lbry.js";
|
|
||||||
import React from "react";
|
|
||||||
import FormField from "component/formField";
|
|
||||||
import Link from "../component/link";
|
|
||||||
|
|
||||||
const fs = require("fs");
|
|
||||||
const { ipcRenderer } = require("electron");
|
|
||||||
|
|
||||||
class DeveloperPage extends React.PureComponent {
|
|
||||||
constructor(props) {
|
|
||||||
super(props);
|
|
||||||
|
|
||||||
this.state = {
|
|
||||||
useCustomLighthouseServers: lbry.getClientSetting(
|
|
||||||
"useCustomLighthouseServers"
|
|
||||||
),
|
|
||||||
customLighthouseServers: lbry
|
|
||||||
.getClientSetting("customLighthouseServers")
|
|
||||||
.join("\n"),
|
|
||||||
upgradePath: "",
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
handleUseCustomLighthouseServersChange(event) {
|
|
||||||
lbry.setClientSetting("useCustomLighthouseServers", event.target.checked);
|
|
||||||
this.setState({
|
|
||||||
useCustomLighthouseServers: event.target.checked,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
handleUpgradeFileChange(event) {
|
|
||||||
this.setState({
|
|
||||||
upgradePath: event.target.value,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
handleForceUpgradeClick() {
|
|
||||||
let upgradeSent = false;
|
|
||||||
if (!this.state.upgradePath) {
|
|
||||||
alert(__("Please select a file to upgrade from"));
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
const stats = fs.lstatSync(this.state.upgradePath);
|
|
||||||
if (stats.isFile()) {
|
|
||||||
console.log("Starting upgrade using " + this.state.upgradePath);
|
|
||||||
ipcRenderer.send("upgrade", this.state.upgradePath);
|
|
||||||
upgradeSent = true;
|
|
||||||
}
|
|
||||||
} catch (e) {}
|
|
||||||
if (!upgradeSent) {
|
|
||||||
alert(
|
|
||||||
'Failed to start upgrade. Is "' +
|
|
||||||
this.state.upgradePath +
|
|
||||||
'" a valid path to the upgrade?'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
|
||||||
return (
|
|
||||||
<main>
|
|
||||||
<section className="card">
|
|
||||||
<h3>{__("Developer Settings")}</h3>
|
|
||||||
<div className="form-row">
|
|
||||||
<label>
|
|
||||||
<FormField
|
|
||||||
type="checkbox"
|
|
||||||
onChange={event => {
|
|
||||||
this.handleUseCustomLighthouseServersChange();
|
|
||||||
}}
|
|
||||||
checked={this.state.useCustomLighthouseServers}
|
|
||||||
/>
|
|
||||||
{" "}
|
|
||||||
{__("Use custom search servers")}
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
{this.state.useCustomLighthouseServers
|
|
||||||
? <div className="form-row">
|
|
||||||
<label>
|
|
||||||
{__("Custom search servers (one per line)")}
|
|
||||||
<div>
|
|
||||||
<FormField
|
|
||||||
type="textarea"
|
|
||||||
className="developer-page__custom-lighthouse-servers"
|
|
||||||
value={this.state.customLighthouseServers}
|
|
||||||
onChange={event => {
|
|
||||||
this.handleCustomLighthouseServersChange();
|
|
||||||
}}
|
|
||||||
checked={this.state.debugMode}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
: null}
|
|
||||||
</section>
|
|
||||||
<section className="card">
|
|
||||||
<div className="form-row">
|
|
||||||
<FormField
|
|
||||||
name="file"
|
|
||||||
ref="file"
|
|
||||||
type="file"
|
|
||||||
onChange={event => {
|
|
||||||
this.handleUpgradeFileChange();
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
|
|
||||||
<Link
|
|
||||||
label={__("Force Upgrade")}
|
|
||||||
button="alt"
|
|
||||||
onClick={event => {
|
|
||||||
this.handleForceUpgradeClick();
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</main>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default DeveloperPage;
|
|
|
@ -114,7 +114,7 @@ class RewardsPage extends React.PureComponent {
|
||||||
} else if (!rewards || rewards.length <= 0) {
|
} else if (!rewards || rewards.length <= 0) {
|
||||||
return (
|
return (
|
||||||
<div className="card__content empty">
|
<div className="card__content empty">
|
||||||
{__("Failed to load rewards.")}
|
{__("There are no rewards available at this time, please check back later.")}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -1,24 +1,35 @@
|
||||||
import * as types from "constants/action_types";
|
import * as types from "constants/action_types";
|
||||||
import * as settings from "constants/settings";
|
import * as settings from "constants/settings";
|
||||||
import LANGUAGES from "constants/languages";
|
import LANGUAGES from "constants/languages";
|
||||||
import lbry from "lbry";
|
|
||||||
|
function getLocalStorageSetting(setting, fallback) {
|
||||||
|
var localStorageVal = localStorage.getItem("setting_" + setting);
|
||||||
|
return localStorageVal === null ? fallback : JSON.parse(localStorageVal);
|
||||||
|
}
|
||||||
|
|
||||||
const reducers = {};
|
const reducers = {};
|
||||||
const defaultState = {
|
const defaultState = {
|
||||||
clientSettings: {
|
clientSettings: {
|
||||||
instantPurchaseEnabled: lbry.getClientSetting(
|
instantPurchaseEnabled: getLocalStorageSetting(
|
||||||
settings.INSTANT_PURCHASE_ENABLED
|
settings.INSTANT_PURCHASE_ENABLED,
|
||||||
|
false
|
||||||
),
|
),
|
||||||
instantPurchaseMax: lbry.getClientSetting(settings.INSTANT_PURCHASE_MAX),
|
instantPurchaseMax: getLocalStorageSetting(settings.INSTANT_PURCHASE_MAX, {
|
||||||
showNsfw: lbry.getClientSetting(settings.SHOW_NSFW),
|
currency: "LBC",
|
||||||
showUnavailable: lbry.getClientSetting(settings.SHOW_UNAVAILABLE),
|
amount: 0.1,
|
||||||
welcome_acknowledged: lbry.getClientSetting(settings.NEW_USER_ACKNOWLEDGED),
|
}),
|
||||||
credit_intro_acknowledged: lbry.getClientSetting(
|
showNsfw: getLocalStorageSetting(settings.SHOW_NSFW, false),
|
||||||
|
showUnavailable: getLocalStorageSetting(settings.SHOW_UNAVAILABLE, true),
|
||||||
|
welcome_acknowledged: getLocalStorageSetting(
|
||||||
|
settings.NEW_USER_ACKNOWLEDGED,
|
||||||
|
false
|
||||||
|
),
|
||||||
|
credit_intro_acknowledged: getLocalStorageSetting(
|
||||||
settings.CREDIT_INTRO_ACKNOWLEDGED
|
settings.CREDIT_INTRO_ACKNOWLEDGED
|
||||||
),
|
),
|
||||||
language: lbry.getClientSetting(settings.LANGUAGE),
|
language: getLocalStorageSetting(settings.LANGUAGE, "en"),
|
||||||
theme: lbry.getClientSetting(settings.THEME),
|
theme: getLocalStorageSetting(settings.THEME, "light"),
|
||||||
themes: lbry.getClientSetting(settings.THEMES),
|
themes: getLocalStorageSetting(settings.THEMES, []),
|
||||||
},
|
},
|
||||||
languages: {},
|
languages: {},
|
||||||
};
|
};
|
||||||
|
@ -35,6 +46,9 @@ reducers[types.CLIENT_SETTING_CHANGED] = function(state, action) {
|
||||||
|
|
||||||
clientSettings[key] = value;
|
clientSettings[key] = value;
|
||||||
|
|
||||||
|
//this technically probably shouldn't happen here, and should be fixed when we're no longer using localStorage at all for persistent app state
|
||||||
|
localStorage.setItem("setting_" + key, JSON.stringify(value));
|
||||||
|
|
||||||
return Object.assign({}, state, {
|
return Object.assign({}, state, {
|
||||||
clientSettings,
|
clientSettings,
|
||||||
});
|
});
|
||||||
|
|
|
@ -24,5 +24,4 @@
|
||||||
@import "component/_scrollbar.scss";
|
@import "component/_scrollbar.scss";
|
||||||
@import "component/_tabs.scss";
|
@import "component/_tabs.scss";
|
||||||
@import "component/_media.scss";
|
@import "component/_media.scss";
|
||||||
@import "page/_developer.scss";
|
|
||||||
@import "page/_show.scss";
|
@import "page/_show.scss";
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
.developer-page__custom-lighthouse-servers {
|
|
||||||
font: 0.8em monospace;
|
|
||||||
width: 30em;
|
|
||||||
height: 10em;
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue