Blockers #2360

Merged
neb-b merged 7 commits from blockers into master 2019-03-20 05:55:31 +01:00
14 changed files with 72 additions and 72 deletions

View file

@ -35,6 +35,7 @@
"standard/no-callback-literal": 0,
"comma-dangle": ["error", "always-multiline"],
"space-before-function-paren": ["error", "never"],
"jsx-quotes": ["error", "prefer-double"],
neb-b commented 2019-03-19 17:05:00 +01:00 (Migrated from github.com)
Review

@skhameneh Do you know why this wouldn't be used? It's still using single quotes.

@skhameneh Do you know why this wouldn't be used? It's still using single quotes.
neb-b commented 2019-03-19 18:10:21 +01:00 (Migrated from github.com)
Review

Nevermind. Not sure what I was doing earlier but if works.

Nevermind. Not sure what I was doing earlier but if works.
"semi": [
"error",
"always",

View file

@ -171,7 +171,7 @@
"lbrySettings": {
"lbrynetDaemonVersion": "0.32.4",
"lbrynetDaemonUrlTemplate": "https://github.com/lbryio/lbry/releases/download/vDAEMONVER/lbrynet-OSNAME.zip",
"lbrynetDaemonDir": "static",
"lbrynetDaemonDir": "static/daemon",
"lbrynetDaemonFileName": "lbrynet"
}
}

View file

@ -3,9 +3,11 @@ import { spawn, execSync } from 'child_process';
import { Lbry } from 'lbry-redux';
export default class Daemon {
static path = process.env.LBRY_DAEMON || (
process.env.NODE_ENV === 'production' ? path.join(process.resourcesPath, 'static', 'lbrynet') : path.join(__static, 'lbrynet')
);
static path =
process.env.LBRY_DAEMON ||
(process.env.NODE_ENV === 'production'
? path.join(process.resourcesPath, 'static/daemon', 'lbrynet')
: path.join(__static, 'daemon/lbrynet'));
subprocess;
handlers;

View file

@ -34,7 +34,7 @@ let daemon;
const appState = {};
const installExtensions = async() => {
const installExtensions = async () => {
const devtronExtension = require('devtron');
return await devtronExtension.install();
};
@ -53,7 +53,7 @@ if (isDev) {
process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = true;
}
app.on('ready', async() => {
app.on('ready', async () => {
let isDaemonRunning = false;
await Lbry.status()
.then(() => {
@ -90,20 +90,21 @@ app.on('ready', async() => {
const {
default: installExtension,
REACT_DEVELOPER_TOOLS,
REDUX_DEVTOOLS, REACT_PERF,
REDUX_DEVTOOLS,
REACT_PERF,
} = require('electron-devtools-installer');
await installExtension(REACT_DEVELOPER_TOOLS)
.then((name) => console.log(`Added Extension: ${name}`))
.catch((err) => console.log('An error occurred: ', err));
.then(name => console.log(`Added Extension: ${name}`))
.catch(err => console.log('An error occurred: ', err));
await installExtension(REDUX_DEVTOOLS)
.then((name) => console.log(`Added Extension: ${name}`))
.catch((err) => console.log('An error occurred: ', err));
.then(name => console.log(`Added Extension: ${name}`))
.catch(err => console.log('An error occurred: ', err));
await installExtension(REACT_PERF)
.then((name) => console.log(`Added Extension: ${name}`))
.catch((err) => console.log('An error occurred: ', err));
.then(name => console.log(`Added Extension: ${name}`))
.catch(err => console.log('An error occurred: ', err));
}
rendererWindow = createWindow(appState);
@ -235,7 +236,7 @@ ipcMain.on('version-info-requested', () => {
let json;
try {
json = JSON.parse(result);
} catch(e) {
} catch (e) {
return;
}
const tagName = json.tag_name;
@ -262,17 +263,20 @@ ipcMain.on('version-info-requested', () => {
};
const requestLatestRelease = (alreadyRedirected = false) => {
const req = https.get({
hostname: 'api.github.com',
path: '/repos/lbryio/lbry-desktop/releases/latest',
headers: { 'user-agent': `LBRY/${localVersion}` },
}, res => {
if (res.statusCode === 301 || res.statusCode === 302) {
requestLatestRelease(res.headers.location, true);
} else {
onSuccess(res);
const req = https.get(
{
hostname: 'api.github.com',
path: '/repos/lbryio/lbry-desktop/releases/latest',
headers: { 'user-agent': `LBRY/${localVersion}` },
},
res => {
if (res.statusCode === 301 || res.statusCode === 302) {
requestLatestRelease(res.headers.location, true);
} else {
onSuccess(res);
}
}
});
);
if (alreadyRedirected) return;
req.on('error', err => {

View file

@ -13,8 +13,8 @@ const { Lbry } = require('lbry-redux');
delete global.window;
export default async function startSandbox() {
const sandbox = express();
const port = 5278;
const sandbox = express();
sandbox.get('/set/:outpoint', async(req, res) => {
const { outpoint } = req.params;
@ -26,5 +26,13 @@ export default async function startSandbox() {
res.send(`/sandbox/${outpoint}/`);
});
sandbox.listen(port, 'localhost', () => console.log(`Sandbox listening on port ${port}.`));
sandbox
.listen(port, 'localhost', () => console.log(`Sandbox listening on port ${port}.`))
.on('error', err => {
if (err.code === 'EADDRINUSE') {
console.log(
'Server already listening at localhost://5278: This is probably another LBRY app running. If not, games in the app will not work.'
);
}
});
}

View file

@ -1,7 +1,11 @@
import { connect } from 'react-redux';
import { doResolveUri, makeSelectClaimForUri, makeSelectIsUriResolving } from 'lbry-redux';
import {
doResolveUri,
makeSelectClaimForUri,
makeSelectIsUriResolving,
makeSelectTotalItemsForChannel,
} from 'lbry-redux';
import { doNavigate } from 'redux/actions/navigation';
import { makeSelectTotalItemsForChannel } from 'redux/selectors/content';
import ChannelTile from './view';
const select = (state, props) => ({

View file

@ -45,7 +45,7 @@ class ChannelTile extends React.PureComponent<Props> {
subscriptionUri = `lbry://${claim.permanent_url}`;
}
const onClick = () => navigate('/show', { uri });
const onClick = () => navigate('/show', { uri, page: 1 });
return (
<section

View file

@ -10,12 +10,14 @@ type Props = {
const WalletBalance = (props: Props) => {
const { balance } = props;
return (
<section className="card card--section card--wallet-balance">
<section
className="card card--section card--wallet-balance"
style={{ backgroundImage: `url(${BalanceBackground})` }}
>
<header className="card__header">
<h2 className="card__title">{__('Balance')}</h2>
<p className="card__subtitle">{__('You currently have')}</p>
</header>
<div className="card__content">
{(balance || balance === 0) && (
<CreditAmount large badge={false} amount={balance} precision={8} />

View file

@ -68,7 +68,6 @@ export const RESOLVE_URIS_COMPLETED = 'RESOLVE_URIS_COMPLETED';
export const FETCH_CHANNEL_CLAIMS_STARTED = 'FETCH_CHANNEL_CLAIMS_STARTED';
export const FETCH_CHANNEL_CLAIMS_COMPLETED = 'FETCH_CHANNEL_CLAIMS_COMPLETED';
export const FETCH_CHANNEL_CLAIM_COUNT_STARTED = 'FETCH_CHANNEL_CLAIM_COUNT_STARTED';
export const FETCH_CHANNEL_CLAIM_COUNT_COMPLETED = 'FETCH_CHANNEL_CLAIM_COUNT_COMPLETED';
export const FETCH_CLAIM_LIST_MINE_STARTED = 'FETCH_CLAIM_LIST_MINE_STARTED';
export const FETCH_CLAIM_LIST_MINE_COMPLETED = 'FETCH_CLAIM_LIST_MINE_COMPLETED';
export const ABANDON_CLAIM_STARTED = 'ABANDON_CLAIM_STARTED';

View file

@ -32,11 +32,11 @@ class ChannelPage extends React.PureComponent<Props> {
fetchClaims(uri, page || 1);
}
componentWillReceiveProps(nextProps: Props) {
const { page, fetchClaims } = this.props;
componentDidUpdate(prevProps: Props) {
const { page, fetchClaims, uri } = this.props;
if (nextProps.page && page !== nextProps.page) {
fetchClaims(nextProps.uri, nextProps.page);
if (prevProps.page && prevProps.page && page !== prevProps.page) {
fetchClaims(uri, page);
}
}

View file

@ -226,7 +226,7 @@ class FilePage extends React.Component<Props> {
<div className="media__actions media__actions--between">
<div className="media__action-group--large">
{claimIsMine ? (
{claimIsMine && (
<Button
button="primary"
icon={icons.EDIT}
@ -236,16 +236,18 @@ class FilePage extends React.Component<Props> {
navigate('/publish');
}}
/>
) : (
<SubscribeButton uri={channelUri} channelName={channelName} />
)}
{!claimIsMine && (
<Button
button="alt"
icon={icons.TIP}
label={__('Send a tip')}
onClick={() => openModal(MODALS.SEND_TIP, { uri })}
/>
<React.Fragment>
{channelUri && <SubscribeButton uri={channelUri} channelName={channelName} />}
<Button
button="alt"
icon={icons.TIP}
label={__('Send a tip')}
onClick={() => openModal(MODALS.SEND_TIP, { uri })}
/>
</React.Fragment>
)}
<Button
button="alt"

View file

@ -13,17 +13,6 @@ reducers[ACTIONS.SET_PLAYING_URI] = (state, action) =>
playingUri: action.data.uri,
});
reducers[ACTIONS.FETCH_CHANNEL_CLAIM_COUNT_COMPLETED] = (state, action) => {
const channelClaimCounts = Object.assign({}, state.channelClaimCounts);
const { uri, totalClaims } = action.data;
channelClaimCounts[uri] = totalClaims;
return Object.assign({}, state, {
channelClaimCounts,
});
};
reducers[ACTIONS.SET_CONTENT_POSITION] = (state, action) => {
const { claimId, outpoint, position } = action.data;
return {
@ -57,9 +46,9 @@ reducers[ACTIONS.CLEAR_CONTENT_HISTORY_URI] = (state, action) => {
return index === -1
? state
: {
...state,
history: history.slice(0, index).concat(history.slice(index + 1)),
};
...state,
history: history.slice(0, index).concat(history.slice(index + 1)),
};
};
reducers[ACTIONS.CLEAR_CONTENT_HISTORY_ALL] = state => ({ ...state, history: [] });

View file

@ -14,17 +14,6 @@ export const selectPlayingUri = createSelector(
state => state.playingUri
);
export const selectChannelClaimCounts = createSelector(
selectState,
state => state.channelClaimCounts || {}
);
export const makeSelectTotalItemsForChannel = (uri: string) =>
createSelector(
selectChannelClaimCounts,
byUri => byUri && byUri[uri]
);
export const selectRewardContentClaimIds = createSelector(
selectState,
state => state.rewardedContentClaimIds

View file

@ -136,6 +136,7 @@
display: inline;
font-size: 2rem;
line-height: 1.33;
margin-right: var(--spacing-vertical-small);
}
// M E D I A
@ -299,11 +300,10 @@
&:not(:empty) {
height: 2.55rem;
margin-top: -1px;
margin-top: 0px;
margin-bottom: var(--spacing-vertical-small);
padding-top: var(--spacing-vertical-small);
padding-left: var(--spacing-vertical-small);
}
.badge {