// @flow import * as PAGES from 'constants/pages'; import React, { PureComponent } from 'react'; import BusyIndicator from 'component/common/busy-indicator'; import RewardListClaimed from 'component/rewardListClaimed'; import RewardTile from 'component/rewardTile'; import Button from 'component/button'; import Page from 'component/page'; import classnames from 'classnames'; import { rewards as REWARD_TYPES } from 'lbryinc'; import RewardAuthIntro from 'component/rewardAuthIntro'; import Card from 'component/common/card'; import I18nMessage from 'component/i18nMessage'; type Props = { doAuth: () => void, fetchRewards: () => void, fetchUser: () => void, fetching: boolean, rewards: Array, claimed: Array, user: ?{ is_identity_verified: boolean, is_reward_approved: boolean, primary_email: string, has_verified_email: boolean, }, daemonSettings: { share_usage_data: boolean, }, }; class RewardsPage extends PureComponent { componentDidMount() { this.props.fetchRewards(); } renderPageHeader() { const { user, daemonSettings, fetchUser } = this.props; const rewardsEnabled = IS_WEB || (daemonSettings && daemonSettings.share_usage_data); if (user && !user.is_reward_approved && rewardsEnabled) { if (!user.primary_email || !user.has_verified_email || !user.is_identity_verified) { return ; } return (

{__('This account must undergo review before you can participate in the rewards program.')}{' '} {__('This can take anywhere from several minutes to several days.')}

{__('We apologize for this inconvenience, but have added this additional step to prevent fraud.')}

{`${__('If you continue to see this message, send us an email to help@lbry.com.')} ${__( 'Please enjoy free content in the meantime!' )}`}

); } return null; } renderCustomRewardCode() { return ( ); } renderUnclaimedRewards() { const { fetching, rewards, user, daemonSettings, claimed } = this.props; if (!IS_WEB && daemonSettings && !daemonSettings.share_usage_data) { return (

{__('Rewards Disabled')}

}}> Rewards are currently disabled for your account. Turn on diagnostic data sharing, in %settings%, to re-enable them.

); } else if (fetching) { return ; } else if (user === null) { return (

{__('This application is unable to earn rewards due to an authentication failure.')}

); } else if (!rewards || rewards.length <= 0) { return ( } /> ); } const isNotEligible = !user || !user.primary_email || !user.has_verified_email || !user.is_reward_approved; return (
{rewards.map(reward => ( ))} {this.renderCustomRewardCode()}
); } render() { return ( {this.renderPageHeader()} {this.renderUnclaimedRewards()} {} ); } } export default RewardsPage;