lbry-desktop/ui/js/page/rewards/view.jsx

65 lines
1.6 KiB
React
Raw Normal View History

2017-05-26 10:53:32 +02:00
import React from 'react';
import lbryio from 'lbryio';
2017-06-03 01:09:52 +02:00
import {BusyMessage, CreditAmount, Icon} from 'component/common';
2017-05-26 10:53:32 +02:00
import SubHeader from 'component/subHeader'
2017-06-03 01:09:52 +02:00
import Link from 'component/link'
2017-05-26 10:53:32 +02:00
import RewardLink from 'component/rewardLink';
const RewardTile = (props) => {
const {
reward,
} = props
const claimed = !!reward.transaction_id
return (
<section className="card">
<div className="card__inner">
<div className="card__title-primary">
<CreditAmount amount={reward.reward_amount} />
<h3>{reward.reward_title}</h3>
2017-05-26 10:53:32 +02:00
</div>
<div className="card__actions">
{claimed
? <span><Icon icon="icon-check" /> Reward claimed.</span>
: <RewardLink reward={reward} />}
</div>
<div className="card__content">{reward.reward_description}</div>
</div>
</section>
)
}
const RewardsPage = (props) => {
const {
fetching,
2017-06-03 01:09:52 +02:00
isEligible,
navigateToAuth,
2017-05-26 10:53:32 +02:00
rewards,
} = props
let content
2017-06-03 01:09:52 +02:00
if (!isEligible) {
content = <div className="empty">
You are not eligible to claim rewards. { ' ' }
<Link onClick={navigateToAuth} label="Become eligible" />.
</div>
} else if (fetching) {
content = <BusyMessage message="Fetching rewards" />
} else if (rewards.length > 0) {
2017-05-26 10:53:32 +02:00
content = rewards.map(reward => <RewardTile key={reward.reward_type} reward={reward} />)
2017-06-03 01:09:52 +02:00
} else {
content = <div className="empty">Failed to load rewards.</div>
2017-05-26 10:53:32 +02:00
}
return (
<main className="main--single-column">
<SubHeader />
{content}
</main>
)
}
export default RewardsPage;