More master reconciliation
rewards page recon router recon uEmailVerify recon uPVerify recon rm style app/view recon channel page recon chanFol recon syncPassword recon fileDesc recon web/redirect recon wip page/view recon
This commit is contained in:
parent
6b307352d3
commit
fe86010be5
14 changed files with 39 additions and 28 deletions
|
@ -4,6 +4,7 @@ import React, { useEffect, useRef, useState } from 'react';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
import analytics from 'analytics';
|
import analytics from 'analytics';
|
||||||
import { buildURI, parseURI } from 'lbry-redux';
|
import { buildURI, parseURI } from 'lbry-redux';
|
||||||
|
import { SIMPLE_SITE } from 'config';
|
||||||
import Router from 'component/router/index';
|
import Router from 'component/router/index';
|
||||||
import ModalRouter from 'modal/modalRouter';
|
import ModalRouter from 'modal/modalRouter';
|
||||||
import ReactModal from 'react-modal';
|
import ReactModal from 'react-modal';
|
||||||
|
@ -399,12 +400,12 @@ function App(props: Props) {
|
||||||
|
|
||||||
{/* @if TARGET='web' */}
|
{/* @if TARGET='web' */}
|
||||||
<YoutubeWelcome />
|
<YoutubeWelcome />
|
||||||
{!shouldHideNag && <OpenInAppLink uri={uri} />}
|
{!SIMPLE_SITE && !shouldHideNag && <OpenInAppLink uri={uri} />}
|
||||||
{!shouldHideNag && <NagContinueFirstRun />}
|
{!shouldHideNag && <NagContinueFirstRun />}
|
||||||
{(lbryTvApiStatus === STATUS_DEGRADED || lbryTvApiStatus === STATUS_FAILING) && !shouldHideNag && (
|
{(lbryTvApiStatus === STATUS_DEGRADED || lbryTvApiStatus === STATUS_FAILING) && !shouldHideNag && (
|
||||||
<NagDegradedPerformance onClose={() => setLbryTvApiStatus(STATUS_OK)} />
|
<NagDegradedPerformance onClose={() => setLbryTvApiStatus(STATUS_OK)} />
|
||||||
)}
|
)}
|
||||||
{lbryTvApiStatus === STATUS_OK && showAnalyticsNag && !shouldHideNag && (
|
{!SIMPLE_SITE && lbryTvApiStatus === STATUS_OK && showAnalyticsNag && !shouldHideNag && (
|
||||||
<NagDataCollection onClose={handleAnalyticsDismiss} />
|
<NagDataCollection onClose={handleAnalyticsDismiss} />
|
||||||
)}
|
)}
|
||||||
{/* @endif */}
|
{/* @endif */}
|
||||||
|
|
|
@ -50,7 +50,7 @@ function FileDescription(props: Props) {
|
||||||
<FileDetails uri={uri} />
|
<FileDetails uri={uri} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="section__actions--between">
|
<div className="card__bottom-actions">
|
||||||
{expanded ? (
|
{expanded ? (
|
||||||
<Button button="link" label={__('Less')} onClick={() => setExpanded(!expanded)} />
|
<Button button="link" label={__('Less')} onClick={() => setExpanded(!expanded)} />
|
||||||
) : (
|
) : (
|
||||||
|
|
|
@ -12,6 +12,7 @@ import usePersistedState from 'effects/use-persisted-state';
|
||||||
import { useHistory } from 'react-router';
|
import { useHistory } from 'react-router';
|
||||||
import { useIsMobile, useIsMediumScreen } from 'effects/use-screensize';
|
import { useIsMobile, useIsMediumScreen } from 'effects/use-screensize';
|
||||||
import { parseURI } from 'lbry-redux';
|
import { parseURI } from 'lbry-redux';
|
||||||
|
import { SIMPLE_SITE } from 'config';
|
||||||
|
|
||||||
export const MAIN_CLASS = 'main';
|
export const MAIN_CLASS = 'main';
|
||||||
type Props = {
|
type Props = {
|
||||||
|
@ -58,7 +59,7 @@ function Page(props: Props) {
|
||||||
const {
|
const {
|
||||||
location: { pathname },
|
location: { pathname },
|
||||||
} = useHistory();
|
} = useHistory();
|
||||||
const [sidebarOpen, setSidebarOpen] = usePersistedState('sidebar', true);
|
const [sidebarOpen, setSidebarOpen] = usePersistedState('sidebar', !SIMPLE_SITE);
|
||||||
const isMediumScreen = useIsMediumScreen();
|
const isMediumScreen = useIsMediumScreen();
|
||||||
const isMobile = useIsMobile();
|
const isMobile = useIsMobile();
|
||||||
|
|
||||||
|
|
|
@ -296,6 +296,7 @@ function AppRouter(props: Props) {
|
||||||
|
|
||||||
<Route path={`/$/${PAGES.EMBED}/:claimName`} exact component={EmbedWrapperPage} />
|
<Route path={`/$/${PAGES.EMBED}/:claimName`} exact component={EmbedWrapperPage} />
|
||||||
<Route path={`/$/${PAGES.EMBED}/:claimName/:claimId`} exact component={EmbedWrapperPage} />
|
<Route path={`/$/${PAGES.EMBED}/:claimName/:claimId`} exact component={EmbedWrapperPage} />
|
||||||
|
|
||||||
{/* Below need to go at the end to make sure we don't match any of our pages first */}
|
{/* Below need to go at the end to make sure we don't match any of our pages first */}
|
||||||
<Route path="/:claimName" exact component={ShowPage} />
|
<Route path="/:claimName" exact component={ShowPage} />
|
||||||
<Route path="/:claimName/:streamName" exact component={ShowPage} />
|
<Route path="/:claimName/:streamName" exact component={ShowPage} />
|
||||||
|
|
|
@ -7,6 +7,7 @@ import { setSavedPassword } from 'util/saved-passwords';
|
||||||
import usePersistedState from 'effects/use-persisted-state';
|
import usePersistedState from 'effects/use-persisted-state';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
import { useHistory } from 'react-router';
|
import { useHistory } from 'react-router';
|
||||||
|
import { SITE_HELP_EMAIL } from 'config';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
getSync: ((any, boolean) => void, ?string) => void,
|
getSync: ((any, boolean) => void, ?string) => void,
|
||||||
|
@ -53,7 +54,7 @@ function SyncPassword(props: Props) {
|
||||||
error={passwordError && __('Wrong password for %email%', { email })}
|
error={passwordError && __('Wrong password for %email%', { email })}
|
||||||
label={__('Password for %email%', { email })}
|
label={__('Password for %email%', { email })}
|
||||||
value={password}
|
value={password}
|
||||||
onChange={e => setPassword(e.target.value)}
|
onChange={(e) => setPassword(e.target.value)}
|
||||||
/>
|
/>
|
||||||
<FormField
|
<FormField
|
||||||
name="remember-password"
|
name="remember-password"
|
||||||
|
@ -75,7 +76,7 @@ function SyncPassword(props: Props) {
|
||||||
<I18nMessage
|
<I18nMessage
|
||||||
tokens={{
|
tokens={{
|
||||||
help: <Button button="link" label={__('help guide')} href="https://lbry.com/faq/account-sync" />,
|
help: <Button button="link" label={__('help guide')} href="https://lbry.com/faq/account-sync" />,
|
||||||
email: <Button button="link" label={'help@lbry.com'} href="mailto:help@lbry.com" />,
|
email: <Button button="link" href={`mailto:${SITE_HELP_EMAIL}`} label={`${SITE_HELP_EMAIL}`} />,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
If you are having issues, checkout our %help% or email us at %email%.
|
If you are having issues, checkout our %help% or email us at %email%.
|
||||||
|
|
|
@ -4,14 +4,15 @@ import Button from 'component/button';
|
||||||
import UserSignOutButton from 'component/userSignOutButton';
|
import UserSignOutButton from 'component/userSignOutButton';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
|
import { SITE_HELP_EMAIL } from 'config';
|
||||||
const THIRTY_SECONDS_IN_MS = 30000;
|
const THIRTY_SECONDS_IN_MS = 30000;
|
||||||
type Props = {
|
type Props = {
|
||||||
email: string,
|
email: string,
|
||||||
isReturningUser: boolean,
|
isReturningUser: boolean,
|
||||||
resendVerificationEmail: string => void,
|
resendVerificationEmail: (string) => void,
|
||||||
resendingEmail: boolean,
|
resendingEmail: boolean,
|
||||||
checkEmailVerified: () => void,
|
checkEmailVerified: () => void,
|
||||||
toast: string => void,
|
toast: (string) => void,
|
||||||
user: {
|
user: {
|
||||||
has_verified_email: boolean,
|
has_verified_email: boolean,
|
||||||
},
|
},
|
||||||
|
@ -102,7 +103,7 @@ class UserEmailVerify extends React.PureComponent<Props, State> {
|
||||||
<p className="help--card-actions">
|
<p className="help--card-actions">
|
||||||
<I18nMessage
|
<I18nMessage
|
||||||
tokens={{
|
tokens={{
|
||||||
help_link: <Button button="link" href="mailto:help@lbry.com" label="help@lbry.com" />,
|
help_link: <Button button="link" href={`mailto:${SITE_HELP_EMAIL}`} label={`${SITE_HELP_EMAIL}`} />,
|
||||||
chat_link: <Button button="link" href="https://chat.lbry.com" label={__('chat')} />,
|
chat_link: <Button button="link" href="https://chat.lbry.com" label={__('chat')} />,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,9 +4,10 @@ import Button from 'component/button';
|
||||||
import { Form, FormField, Submit } from 'component/common/form';
|
import { Form, FormField, Submit } from 'component/common/form';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
|
import { SITE_HELP_EMAIL } from 'config';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
verifyUserPhone: string => void,
|
verifyUserPhone: (string) => void,
|
||||||
resetPhone: () => void,
|
resetPhone: () => void,
|
||||||
phoneErrorMessage: string,
|
phoneErrorMessage: string,
|
||||||
phone: string,
|
phone: string,
|
||||||
|
@ -61,7 +62,7 @@ class UserPhoneVerify extends React.PureComponent<Props, State> {
|
||||||
name="code"
|
name="code"
|
||||||
placeholder="1234"
|
placeholder="1234"
|
||||||
value={this.state.code}
|
value={this.state.code}
|
||||||
onChange={event => {
|
onChange={(event) => {
|
||||||
this.handleCodeChanged(event);
|
this.handleCodeChanged(event);
|
||||||
}}
|
}}
|
||||||
label={__('Verification Code')}
|
label={__('Verification Code')}
|
||||||
|
@ -72,7 +73,7 @@ class UserPhoneVerify extends React.PureComponent<Props, State> {
|
||||||
<p className="help">
|
<p className="help">
|
||||||
<I18nMessage
|
<I18nMessage
|
||||||
tokens={{
|
tokens={{
|
||||||
help_link: <Button button="link" href="mailto:help@lbry.com" label="help@lbry.com" />,
|
help_link: <Button button="link" href={`mailto:${SITE_HELP_EMAIL}`} label={`${SITE_HELP_EMAIL}`} />,
|
||||||
chat_link: <Button button="link" href="https://chat.lbry.com" label={__('chat')} />,
|
chat_link: <Button button="link" href="https://chat.lbry.com" label={__('chat')} />,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import { SITE_NAME } from 'config';
|
import { SITE_NAME, SITE_HELP_EMAIL } from 'config';
|
||||||
import * as ICONS from 'constants/icons';
|
import * as ICONS from 'constants/icons';
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
|
@ -117,9 +117,14 @@ export default function YoutubeTransferStatus(props: Props) {
|
||||||
{isYoutubeTransferComplete && !isNotElligible && __('View your channel or choose a new channel to sync.')}
|
{isYoutubeTransferComplete && !isNotElligible && __('View your channel or choose a new channel to sync.')}
|
||||||
{isNotElligible && (
|
{isNotElligible && (
|
||||||
<I18nMessage
|
<I18nMessage
|
||||||
tokens={{ here: <Button button="link" href="https://lbry.com/faq/youtube" label={__('here')} /> }}
|
tokens={{
|
||||||
|
here: (
|
||||||
|
<Button button="link" href="https://lbry.com/faq/youtube" label={__('here')} />
|
||||||
|
),
|
||||||
|
email: SITE_HELP_EMAIL,
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
Email help@lbry.com if you think there has been a mistake. Make sure your channel qualifies %here%.
|
Email %email% if you think there has been a mistake. Make sure your channel qualifies %here%.
|
||||||
</I18nMessage>
|
</I18nMessage>
|
||||||
)}
|
)}
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -109,7 +109,7 @@ export default function ChannelsPage(props: Props) {
|
||||||
subtitle={__("You haven't created a channel yet. All of your beautiful channels will be listed here!")}
|
subtitle={__("You haven't created a channel yet. All of your beautiful channels will be listed here!")}
|
||||||
actions={
|
actions={
|
||||||
<div className="section__actions">
|
<div className="section__actions">
|
||||||
<Button button="primary" label={__('New Channel')} navigate={`/$/${PAGES.CHANNEL_NEW}`} />
|
<Button button="primary" label={__('Create Channel')} navigate={`/$/${PAGES.CHANNEL_NEW}`} />
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
// @flow
|
// @flow
|
||||||
import * as PAGES from 'constants/pages';
|
import * as PAGES from 'constants/pages';
|
||||||
import * as ICONS from 'constants/icons';
|
import * as ICONS from 'constants/icons';
|
||||||
import { ORDER_BY_NEW } from 'constants/claim_search';
|
import * as CS from 'constants/claim_search';
|
||||||
|
import { SIMPLE_SITE } from 'config';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import ChannelsFollowingDiscoverPage from 'page/channelsFollowingDiscover';
|
import ChannelsFollowingDiscoverPage from 'page/channelsFollowingDiscover';
|
||||||
import ClaimListDiscover from 'component/claimListDiscover';
|
import ClaimListDiscover from 'component/claimListDiscover';
|
||||||
|
@ -23,6 +24,8 @@ function ChannelsFollowingPage(props: Props) {
|
||||||
) : (
|
) : (
|
||||||
<Page noFooter fullWidthPage={tileLayout}>
|
<Page noFooter fullWidthPage={tileLayout}>
|
||||||
<ClaimListDiscover
|
<ClaimListDiscover
|
||||||
|
hideAdvancedFilter={SIMPLE_SITE}
|
||||||
|
streamType={SIMPLE_SITE ? CS.CONTENT_ALL : undefined}
|
||||||
tileLayout={tileLayout}
|
tileLayout={tileLayout}
|
||||||
headerLabel={
|
headerLabel={
|
||||||
<span>
|
<span>
|
||||||
|
@ -30,8 +33,8 @@ function ChannelsFollowingPage(props: Props) {
|
||||||
{__('Following')}
|
{__('Following')}
|
||||||
</span>
|
</span>
|
||||||
}
|
}
|
||||||
defaultOrderBy={ORDER_BY_NEW}
|
defaultOrderBy={CS.ORDER_BY_NEW}
|
||||||
channelIds={subscribedChannels.map(sub => sub.uri.split('#')[1])}
|
channelIds={subscribedChannels.map((sub) => sub.uri.split('#')[1])}
|
||||||
meta={
|
meta={
|
||||||
<Button
|
<Button
|
||||||
icon={ICONS.SEARCH}
|
icon={ICONS.SEARCH}
|
||||||
|
|
|
@ -11,6 +11,7 @@ import REWARD_TYPES from 'rewards';
|
||||||
import RewardAuthIntro from 'component/rewardAuthIntro';
|
import RewardAuthIntro from 'component/rewardAuthIntro';
|
||||||
import Card from 'component/common/card';
|
import Card from 'component/common/card';
|
||||||
import I18nMessage from 'component/i18nMessage';
|
import I18nMessage from 'component/i18nMessage';
|
||||||
|
import { SITE_HELP_EMAIL, SITE_NAME } from 'config';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
doAuth: () => void,
|
doAuth: () => void,
|
||||||
|
@ -76,10 +77,12 @@ class RewardsPage extends PureComponent<Props> {
|
||||||
<I18nMessage
|
<I18nMessage
|
||||||
tokens={{
|
tokens={{
|
||||||
rewards_faq: <Button button="link" label={__('Rewards FAQ')} href="https://lbry.com/faq/support" />,
|
rewards_faq: <Button button="link" label={__('Rewards FAQ')} href="https://lbry.com/faq/support" />,
|
||||||
|
help_email: SITE_HELP_EMAIL,
|
||||||
|
site_name: SITE_NAME,
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Please review the %rewards_faq% for eligibility, and send us an email to help@lbry.com if you continue
|
Please review the %rewards_faq% for eligibility, and send us an email to %help_email% if you continue
|
||||||
to see this message. You can continue to use LBRY without this feature.
|
to see this message. You can continue to use %site_name% without this feature.
|
||||||
</I18nMessage>
|
</I18nMessage>
|
||||||
{`${__('Enjoy all the awesome free content in the meantime!')}`}
|
{`${__('Enjoy all the awesome free content in the meantime!')}`}
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -371,11 +371,6 @@ $metadata-z-index: 1;
|
||||||
.channel-staked__tooltip-text {
|
.channel-staked__tooltip-text {
|
||||||
margin-left: var(--spacing-xs);
|
margin-left: var(--spacing-xs);
|
||||||
font-size: var(--font-xsmall);
|
font-size: var(--font-xsmall);
|
||||||
// still needed ?
|
|
||||||
.icon--LBC {
|
|
||||||
opacity: 0.7;
|
|
||||||
margin-top: -2px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.channel-staked__wrapper {
|
.channel-staked__wrapper {
|
||||||
|
|
|
@ -357,7 +357,6 @@ fieldset-group {
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
//padding-right: var(--spacing-s);
|
|
||||||
height: var(--height-input);
|
height: var(--height-input);
|
||||||
border: 1px solid;
|
border: 1px solid;
|
||||||
border-top-left-radius: var(--border-radius);
|
border-top-left-radius: var(--border-radius);
|
||||||
|
|
|
@ -55,7 +55,7 @@ async function redirectMiddleware(ctx, next) {
|
||||||
} else {
|
} else {
|
||||||
redirectUrl += openQuery;
|
redirectUrl += openQuery;
|
||||||
}
|
}
|
||||||
|
ctx.status = 301;
|
||||||
ctx.redirect(redirectUrl);
|
ctx.redirect(redirectUrl);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue