integrate some Odysee code with master
integrate analyticsjs top page buy page reconcile help page rec. constants reconcile search page search page wip wip
This commit is contained in:
parent
d7a589db01
commit
6b307352d3
7 changed files with 140 additions and 109 deletions
|
@ -198,6 +198,7 @@ const analytics: Analytics = {
|
|||
},
|
||||
|
||||
videoFetchDuration: (source, duration) => {
|
||||
sendPromMetric('time_to_fetch', duration);
|
||||
sendMatomoEvent('Media', 'TimeToFetch', source, duration);
|
||||
},
|
||||
|
||||
|
|
|
@ -66,3 +66,4 @@ exports.NOTIFICATIONS = 'notifications';
|
|||
exports.YOUTUBE_SYNC = 'youtube';
|
||||
exports.LIVESTREAM = 'livestream';
|
||||
exports.LIVESTREAM_CURRENT = 'live';
|
||||
exports.GENERAL = 'general';
|
||||
|
|
|
@ -13,12 +13,13 @@ import Button from 'component/button';
|
|||
import Nag from 'component/common/nag';
|
||||
import I18nMessage from 'component/i18nMessage';
|
||||
import LbcSymbol from 'component/common/lbc-symbol';
|
||||
import { SIMPLE_SITE } from 'config';
|
||||
|
||||
const MOONPAY_KEY = process.env.MOONPAY_SECRET_KEY;
|
||||
const COUNTRIES = Array.from(
|
||||
new Set(
|
||||
countryData.all
|
||||
.map(country => country.name)
|
||||
.map((country) => country.name)
|
||||
.sort((a, b) => {
|
||||
if (a > b) {
|
||||
return 1;
|
||||
|
@ -39,7 +40,7 @@ type Props = {
|
|||
email: string,
|
||||
user: ?User,
|
||||
doGetNewAddress: () => void,
|
||||
doUserSetCountry: string => void,
|
||||
doUserSetCountry: (string) => void,
|
||||
};
|
||||
|
||||
export default function BuyPage(props: Props) {
|
||||
|
@ -65,7 +66,10 @@ export default function BuyPage(props: Props) {
|
|||
|
||||
React.useEffect(() => {
|
||||
if (MOONPAY_KEY && !url && receiveAddress) {
|
||||
let url = `https://buy.moonpay.io?apiKey=pk_live_xNFffrN5NWKy6fu0ggbV8VQIwRieRzy&colorCode=%23257761¤cyCode=lbc&showWalletAddressForm=true&walletAddress=${receiveAddress}`;
|
||||
let url = SIMPLE_SITE
|
||||
? `https://buy.moonpay.io?apiKey=pk_live_xNFffrN5NWKy6fu0ggbV8VQIwRieRzy&colorCode=%23fa6165¤cyCode=lbc&showWalletAddressForm=true&walletAddress=${receiveAddress}`
|
||||
: `https://buy.moonpay.io?apiKey=pk_live_xNFffrN5NWKy6fu0ggbV8VQIwRieRzy&colorCode=%23257761¤cyCode=lbc&showWalletAddressForm=true&walletAddress=${receiveAddress}`;
|
||||
|
||||
if (email) {
|
||||
url += `&email=${encodeURIComponent(email)}`;
|
||||
}
|
||||
|
@ -148,7 +152,7 @@ export default function BuyPage(props: Props) {
|
|||
'Only some countries are eligible at this time. We are working to make this available to everyone.'
|
||||
)}
|
||||
value={country}
|
||||
onChange={e => setCountry(e.target.value)}
|
||||
onChange={(e) => setCountry(e.target.value)}
|
||||
>
|
||||
<option value="" disabled defaultValue>
|
||||
{__('Select your country')}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// @flow
|
||||
import { SITE_NAME, SIMPLE_SITE, SITE_HELP_EMAIL } from 'config';
|
||||
import * as ICONS from 'constants/icons';
|
||||
import * as PAGES from 'constants/pages';
|
||||
import * as React from 'react';
|
||||
import { SITE_HELP_EMAIL } from 'config';
|
||||
// @if TARGET='app'
|
||||
import { shell } from 'electron';
|
||||
import WalletBackup from 'component/walletBackup';
|
||||
|
@ -129,22 +129,37 @@ class HelpPage extends React.PureComponent<Props, State> {
|
|||
return (
|
||||
<Page className="card-stack">
|
||||
<Card
|
||||
title={__('Read the FAQ')}
|
||||
subtitle={__('Our FAQ answers many common questions.')}
|
||||
title={SIMPLE_SITE ? __('Visit the %SITE_NAME% Help Hub', { SITE_NAME }) : __('Read the FAQ')}
|
||||
subtitle={
|
||||
SIMPLE_SITE
|
||||
? __('Our support posts answer many common questions.')
|
||||
: __('Our FAQ answers many common questions.')
|
||||
}
|
||||
actions={
|
||||
<div className="section__actions">
|
||||
<Button
|
||||
href="https://lbry.com/faq/lbry-basics"
|
||||
label={__('Read the App Basics FAQ')}
|
||||
icon={ICONS.HELP}
|
||||
button="secondary"
|
||||
/>
|
||||
<Button
|
||||
href="https://lbry.com/faq"
|
||||
label={__('View all LBRY FAQs')}
|
||||
icon={ICONS.HELP}
|
||||
button="secondary"
|
||||
/>
|
||||
{SIMPLE_SITE ? (
|
||||
<Button
|
||||
href="https://odysee.com/@OdyseeHelp:b"
|
||||
label={__('View %SITE_NAME% Help Hub', { SITE_NAME })}
|
||||
icon={ICONS.HELP}
|
||||
button="secondary"
|
||||
/>
|
||||
) : (
|
||||
<>
|
||||
<Button
|
||||
href="https://lbry.com/faq/lbry-basics"
|
||||
label={__('Read the App Basics FAQ')}
|
||||
icon={ICONS.HELP}
|
||||
button="secondary"
|
||||
/>
|
||||
<Button
|
||||
href="https://lbry.com/faq"
|
||||
label={__('View all LBRY FAQs')}
|
||||
icon={ICONS.HELP}
|
||||
button="secondary"
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
}
|
||||
/>
|
||||
|
@ -160,7 +175,7 @@ class HelpPage extends React.PureComponent<Props, State> {
|
|||
actions={
|
||||
<div className="section__actions">
|
||||
<Button button="secondary" label={__('Join Our Chat')} icon={ICONS.CHAT} href="https://chat.lbry.com" />
|
||||
<Button button="secondary" label={__('Email Us')} icon={ICONS.WEB} href="mailto:help@lbry.com" />
|
||||
<Button button="secondary" label={__('Email Us')} icon={ICONS.WEB} href={`mailto:${SITE_HELP_EMAIL}`} />
|
||||
</div>
|
||||
}
|
||||
/>
|
||||
|
@ -211,90 +226,93 @@ class HelpPage extends React.PureComponent<Props, State> {
|
|||
|
||||
<WalletBackup />
|
||||
{/* @endif */}
|
||||
|
||||
<Card
|
||||
title={__('About --[About section in Help Page]--')}
|
||||
subtitle={
|
||||
this.state.upgradeAvailable !== null && this.state.upgradeAvailable ? (
|
||||
<span>
|
||||
{__('A newer version of LBRY is available.')}{' '}
|
||||
<Button button="link" href={newVerLink} label={__('Download now!')} />
|
||||
</span>
|
||||
) : null
|
||||
}
|
||||
isBodyList
|
||||
body={
|
||||
<div className="table__wrapper">
|
||||
<table className="table table--stretch">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{__('App')}</td>
|
||||
<td>
|
||||
{this.state.uiVersion ? this.state.uiVersion + ' - ' : ''}
|
||||
<Button
|
||||
button="link"
|
||||
label={__('Changelog')}
|
||||
href="https://github.com/lbryio/lbry-desktop/blob/master/CHANGELOG.md"
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Daemon (lbrynet)')}</td>
|
||||
<td>{ver ? ver.lbrynet_version : __('Loading...')}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Connected Email')}</td>
|
||||
<td>
|
||||
{user && user.primary_email ? (
|
||||
<React.Fragment>
|
||||
{user.primary_email}{' '}
|
||||
{!SIMPLE_SITE && (
|
||||
<>
|
||||
<Card
|
||||
title={__('About --[About section in Help Page]--')}
|
||||
subtitle={
|
||||
this.state.upgradeAvailable !== null && this.state.upgradeAvailable ? (
|
||||
<span>
|
||||
{__('A newer version of LBRY is available.')}{' '}
|
||||
<Button button="link" href={newVerLink} label={__('Download now!')} />
|
||||
</span>
|
||||
) : null
|
||||
}
|
||||
isBodyList
|
||||
body={
|
||||
<div className="table__wrapper">
|
||||
<table className="table table--stretch">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{__('App')}</td>
|
||||
<td>
|
||||
{this.state.uiVersion ? this.state.uiVersion + ' - ' : ''}
|
||||
<Button
|
||||
button="link"
|
||||
navigate={`/$/${PAGES.SETTINGS_NOTIFICATIONS}`}
|
||||
label={__('Update mailing preferences')}
|
||||
label={__('Changelog')}
|
||||
href="https://github.com/lbryio/lbry-desktop/blob/master/CHANGELOG.md"
|
||||
/>
|
||||
</React.Fragment>
|
||||
) : (
|
||||
<React.Fragment>
|
||||
<span className="empty">{__('none')} </span>
|
||||
<Button button="link" onClick={() => doAuth()} label={__('set email')} />
|
||||
</React.Fragment>
|
||||
)}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Reward Eligible')}</td>
|
||||
<td>{user && user.is_reward_approved ? __('Yes') : __('No')}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Platform')}</td>
|
||||
<td>{platform}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Installation ID')}</td>
|
||||
<td>{this.state.lbryId}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Access Token')}</td>
|
||||
<td>
|
||||
{this.state.accessTokenHidden && (
|
||||
<Button button="link" label={__('View')} onClick={this.showAccessToken} />
|
||||
)}
|
||||
{!this.state.accessTokenHidden && accessToken && (
|
||||
<div>
|
||||
<p>{accessToken}</p>
|
||||
<div className="help--warning">
|
||||
{__('This is equivalent to a password. Do not post or share this.')}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Daemon (lbrynet)')}</td>
|
||||
<td>{ver ? ver.lbrynet_version : __('Loading...')}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Connected Email')}</td>
|
||||
<td>
|
||||
{user && user.primary_email ? (
|
||||
<React.Fragment>
|
||||
{user.primary_email}{' '}
|
||||
<Button
|
||||
button="link"
|
||||
navigate={`/$/${PAGES.SETTINGS_NOTIFICATIONS}`}
|
||||
label={__('Update mailing preferences')}
|
||||
/>
|
||||
</React.Fragment>
|
||||
) : (
|
||||
<React.Fragment>
|
||||
<span className="empty">{__('none')} </span>
|
||||
<Button button="link" onClick={() => doAuth()} label={__('set email')} />
|
||||
</React.Fragment>
|
||||
)}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Reward Eligible')}</td>
|
||||
<td>{user && user.is_reward_approved ? __('Yes') : __('No')}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Platform')}</td>
|
||||
<td>{platform}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Installation ID')}</td>
|
||||
<td>{this.state.lbryId}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{__('Access Token')}</td>
|
||||
<td>
|
||||
{this.state.accessTokenHidden && (
|
||||
<Button button="link" label={__('View')} onClick={this.showAccessToken} />
|
||||
)}
|
||||
{!this.state.accessTokenHidden && accessToken && (
|
||||
<div>
|
||||
<p>{accessToken}</p>
|
||||
<div className="help--warning">
|
||||
{__('This is equivalent to a password. Do not post or share this.')}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</Page>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import { connect } from 'react-redux';
|
||||
import { withRouter } from 'react-router';
|
||||
import { doSearch } from 'redux/actions/search';
|
||||
import { SIMPLE_SITE } from 'config';
|
||||
import {
|
||||
selectIsSearching,
|
||||
makeSelectSearchUris,
|
||||
|
@ -19,11 +20,15 @@ const select = (state, props) => {
|
|||
if (urlQuery) {
|
||||
urlQuery = urlQuery.replace(/^lbry:\/\//i, '').replace(/\//, ' ');
|
||||
}
|
||||
|
||||
const query = makeSelectQueryWithOptions(
|
||||
urlQuery,
|
||||
showMature === false ? { nsfw: false, isBackgroundSearch: false } : { isBackgroundSearch: false }
|
||||
SIMPLE_SITE
|
||||
? { nsfw: false, isBackgroundSearch: false }
|
||||
: showMature === false
|
||||
? { nsfw: false, isBackgroundSearch: false }
|
||||
: { isBackgroundSearch: false }
|
||||
)(state);
|
||||
|
||||
const uris = makeSelectSearchUris(query)(state);
|
||||
const hasReachedMaxResultsLength = makeSelectHasReachedMaxResultsLength(query)(state);
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ export default function SearchPage(props: Props) {
|
|||
const additionalOptions: AdditionalOptions = { isBackgroundSearch: false };
|
||||
const [from, setFrom] = React.useState(0);
|
||||
|
||||
additionalOptions['nsfw'] = showNsfw;
|
||||
additionalOptions['nsfw'] = SIMPLE_SITE ? false : showNsfw;
|
||||
additionalOptions['from'] = from;
|
||||
|
||||
const modifiedUrlQuery = urlQuery.trim().replace(/\s+/g, '').replace(/:/g, '#');
|
||||
|
|
|
@ -5,14 +5,15 @@ import Page from 'component/page';
|
|||
import ClaimListDiscover from 'component/claimListDiscover';
|
||||
import ClaimEffectiveAmount from 'component/claimEffectiveAmount';
|
||||
import SearchTopClaim from 'component/searchTopClaim';
|
||||
import { ORDER_BY_TOP, FRESH_ALL } from 'constants/claim_search';
|
||||
import * as CS from 'constants/claim_search';
|
||||
import Button from 'component/button';
|
||||
import I18nMessage from 'component/i18nMessage';
|
||||
import * as PAGES from 'constants/pages';
|
||||
import { SIMPLE_SITE } from 'config';
|
||||
|
||||
type Props = {
|
||||
name: string,
|
||||
beginPublish: string => void,
|
||||
beginPublish: (string) => void,
|
||||
};
|
||||
|
||||
function TopPage(props: Props) {
|
||||
|
@ -25,8 +26,9 @@ function TopPage(props: Props) {
|
|||
<SearchTopClaim query={name} hideLink setChannelActive={setChannelActive} />
|
||||
<ClaimListDiscover
|
||||
name={channelActive ? `@${queryName}` : queryName}
|
||||
defaultFreshness={FRESH_ALL}
|
||||
defaultOrderBy={ORDER_BY_TOP}
|
||||
defaultFreshness={CS.FRESH_ALL}
|
||||
defaultOrderBy={CS.ORDER_BY_TOP}
|
||||
streamType={SIMPLE_SITE ? CS.CONTENT_ALL : undefined}
|
||||
meta={
|
||||
<div className="search__top-links">
|
||||
<I18nMessage
|
||||
|
@ -46,7 +48,7 @@ function TopPage(props: Props) {
|
|||
</div>
|
||||
}
|
||||
includeSupportAction
|
||||
renderProperties={claim => (
|
||||
renderProperties={(claim) => (
|
||||
<span className="claim-preview__custom-properties">
|
||||
{claim.meta.is_controlling && <span className="help--inline">{__('Currently winning')}</span>}
|
||||
<ClaimEffectiveAmount uri={claim.repost_url || claim.canonical_url} />
|
||||
|
|
Loading…
Add table
Reference in a new issue