This commit is contained in:
seanyesmunt 2020-03-19 10:38:20 -04:00 committed by Sean Yesmunt
parent 2c0485a7c3
commit 4420983a79
7 changed files with 49 additions and 54 deletions

View file

@ -1,24 +1,9 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import SelectChannel from './view'; import SelectChannel from './view';
import { import { selectMyChannelClaims } from 'lbry-redux';
selectBalance,
selectMyChannelClaims,
selectFetchingMyChannels,
doFetchChannelListMine,
doCreateChannel,
} from 'lbry-redux';
import { selectUserVerifiedEmail } from 'lbryinc';
const select = state => ({ const select = state => ({
channels: selectMyChannelClaims(state), channels: selectMyChannelClaims(state),
fetchingChannels: selectFetchingMyChannels(state),
balance: selectBalance(state),
emailVerified: selectUserVerifiedEmail(state),
}); });
const perform = dispatch => ({ export default connect(select)(SelectChannel);
createChannel: (name, amount) => dispatch(doCreateChannel(name, amount)),
fetchChannelListMine: () => dispatch(doFetchChannelListMine()),
});
export default connect(select, perform)(SelectChannel);

View file

@ -1,11 +1,10 @@
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { makeSelectClaimForUri, makeSelectTitleForUri, makeSelectIsUriResolving } from 'lbry-redux'; import { makeSelectClaimForUri, makeSelectTitleForUri } from 'lbry-redux';
import ClaimPreviewTitle from './view'; import ClaimPreviewTitle from './view';
const select = (state, props) => ({ const select = (state, props) => ({
claim: makeSelectClaimForUri(props.uri)(state), claim: makeSelectClaimForUri(props.uri)(state),
title: makeSelectTitleForUri(props.uri)(state), title: makeSelectTitleForUri(props.uri)(state),
isResolvingUri: makeSelectIsUriResolving(props.uri)(state),
}); });
export default connect(select)(ClaimPreviewTitle); export default connect(select)(ClaimPreviewTitle);

View file

@ -10,6 +10,7 @@ type Props = {
function ClaimPreviewTitle(props: Props) { function ClaimPreviewTitle(props: Props) {
const { title, claim } = props; const { title, claim } = props;
return ( return (
<div className="claim-preview__title"> <div className="claim-preview__title">
{claim ? <TruncatedText text={title || claim.name} lines={2} /> : <span>{__('Nothing here')}</span>} {claim ? <TruncatedText text={title || claim.name} lines={2} /> : <span>{__('Nothing here')}</span>}

View file

@ -19,7 +19,7 @@ type Props = {
prepareEdit: string => void, prepareEdit: string => void,
}; };
export default function CreatorDashboardPage(props: Props) { export default function CreatorAnalytics(props: Props) {
const { channels, prepareEdit } = props; const { channels, prepareEdit } = props;
const history = useHistory(); const history = useHistory();
const [stats, setStats] = React.useState(); const [stats, setStats] = React.useState();
@ -104,7 +104,10 @@ export default function CreatorDashboardPage(props: Props) {
subtitle={ subtitle={
<div className="card__data-subtitle"> <div className="card__data-subtitle">
<span> <span>
{stats.ChannelSubChange > 0 ? '+' : '-'} {stats.ChannelSubChange || 0} this week {stats.ChannelSubChange > 0 ? '+' : '-'}{' '}
{__('%follower_count_weekly_change% this week', {
follower_count_weekly_change: stats.ChannelSubChange || 0,
})}
</span> </span>
{stats.ChannelSubChange > 0 && <Icon icon={ICONS.SUPPORT} iconColor="green" size={18} />} {stats.ChannelSubChange > 0 && <Icon icon={ICONS.SUPPORT} iconColor="green" size={18} />}
</div> </div>
@ -112,33 +115,36 @@ export default function CreatorDashboardPage(props: Props) {
/> />
<Card <Card
icon={ICONS.EYE} icon={ICONS.EYE}
title={<span>{stats.AllContentViews} views</span>} title={<span>{__('%all_content_views% views', { all_content_views: stats.AllContentViews })}</span>}
subtitle={<span>{stats.AllContentViewsChange || 0} this week</span>} subtitle={
<span>
{__('%all_content_views_weekly_change% this week', {
all_content_views_weekly_change: stats.AllContentViewsChange || 0,
})}
</span>
}
/> />
</div> </div>
<Card <Card
title={ title={
<div className="card__data-subtitle"> <div className="card__data-subtitle">
<span>Most Viewed Claim</span> <span>{__('Most Viewed Claim')}</span>
</div> </div>
} }
body={ body={
<React.Fragment> <React.Fragment>
<div className="card--inline"> <div className="card--inline">
<ClaimPreview <ClaimPreview uri={stats.VideoURITopAllTime} />
uri={stats.VideoURITopAllTime} </div>
properties={
<div className="section__subtitle card__data-subtitle"> <div className="section__subtitle card__data-subtitle">
<span> <span>
{stats.VideoViewsTopAllTime} views - {stats.VideoViewChangeTopAllTime} this week {__('%all_time_top_views% views - %all_time_views_weekly_change% this week', {
all_time_top_views: stats.VideoViewsTopAllTime,
all_time_views_weekly_change: stats.VideoViewChangeTopAllTime,
})}
</span> </span>
{stats.VideoViewChangeTopAllTime > 0 && ( {stats.VideoViewChangeTopAllTime > 0 && <Icon icon={ICONS.SUPPORT} iconColor="green" size={18} />}
<Icon icon={ICONS.SUPPORT} iconColor="green" size={18} />
)}
</div>
}
/>
</div> </div>
</React.Fragment> </React.Fragment>
} }

View file

@ -160,10 +160,9 @@ $metadata-z-index: 1;
.channel__list-item { .channel__list-item {
display: flex; display: flex;
align-items: center;
background-color: var(--color-card-background); background-color: var(--color-card-background);
padding: var(--spacing-small); padding: var(--spacing-small);
align-items: center;
border-bottom: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border);
.channel-thumbnail { .channel-thumbnail {

View file

@ -1,4 +1,4 @@
Pmenu// Extends reach-ui menu button base stylesheet // Extends reach-ui menu button base stylesheet
/* Used to detect in JavaScript if apps have loaded styles or not. */ /* Used to detect in JavaScript if apps have loaded styles or not. */
:root { :root {
--reach-menu-button: 1; --reach-menu-button: 1;
@ -76,7 +76,6 @@ Pmenu// Extends reach-ui menu button base stylesheet
.badge { .badge {
margin-left: var(--spacing-small); margin-left: var(--spacing-small);
margin-bottom: 5px;
} }
} }

View file

@ -928,9 +928,9 @@
version "0.1.3" version "0.1.3"
resolved "https://registry.yarnpkg.com/@reach/component-component/-/component-component-0.1.3.tgz#5d156319572dc38995b246f81878bc2577c517e5" resolved "https://registry.yarnpkg.com/@reach/component-component/-/component-component-0.1.3.tgz#5d156319572dc38995b246f81878bc2577c517e5"
"@reach/menu-button@^0.1.18": "@reach/menu-button@0.7.4":
version "0.1.18" version "0.7.4"
resolved "https://registry.yarnpkg.com/@reach/menu-button/-/menu-button-0.1.18.tgz#cb9e3bf1c2a2bdb5d618697b87ad353dfbca123e" resolved "https://registry.yarnpkg.com/@reach/menu-button/-/menu-button-0.7.4.tgz#6b2cb91e5471dfc67aa10380c2779eb3d21d98bf"
dependencies: dependencies:
"@reach/auto-id" "^0.7.4" "@reach/auto-id" "^0.7.4"
"@reach/popover" "^0.7.4" "@reach/popover" "^0.7.4"
@ -942,9 +942,13 @@
version "1.0.5" version "1.0.5"
resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.0.5.tgz#28bf3c5c35da7fef72cd124af4ac32308d0c3f15" resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.0.5.tgz#28bf3c5c35da7fef72cd124af4ac32308d0c3f15"
"@reach/portal@^0.2.1": "@reach/observe-rect@^1.0.5":
version "0.2.1" version "1.1.0"
resolved "https://registry.yarnpkg.com/@reach/portal/-/portal-0.2.1.tgz#07720b999e0063a9e179c14dbdc60fd991cfc9fa" resolved "https://registry.yarnpkg.com/@reach/observe-rect/-/observe-rect-1.1.0.tgz#4e967a93852b6004c3895d9ed8d4e5b41895afde"
"@reach/popover@^0.7.4":
version "0.7.4"
resolved "https://registry.yarnpkg.com/@reach/popover/-/popover-0.7.4.tgz#def055c588a76ef4a48ac81f0b4e7373e2781b28"
dependencies: dependencies:
"@reach/portal" "^0.7.4" "@reach/portal" "^0.7.4"
"@reach/rect" "^0.7.4" "@reach/rect" "^0.7.4"
@ -981,11 +985,9 @@
version "0.2.3" version "0.2.3"
resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.2.3.tgz#820f6a6af4301b4c5065cfc04bb89e6a3d1d723f" resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.2.3.tgz#820f6a6af4301b4c5065cfc04bb89e6a3d1d723f"
"@reach/window-size@^0.1.4": "@reach/utils@^0.7.4":
version "0.1.4" version "0.7.4"
resolved "https://registry.yarnpkg.com/@reach/window-size/-/window-size-0.1.4.tgz#3257b646548f61c2708a661a683620fbe0a706cb" resolved "https://registry.yarnpkg.com/@reach/utils/-/utils-0.7.4.tgz#cdd0cff8c57445ce9c2b11204e6a62868f1093a1"
dependencies:
"@reach/component-component" "^0.1.3"
"@samverschueren/stream-to-observable@^0.3.0": "@samverschueren/stream-to-observable@^0.3.0":
version "0.3.0" version "0.3.0"
@ -6136,9 +6138,9 @@ lazy-val@^1.0.4:
yargs "^13.2.2" yargs "^13.2.2"
zstd-codec "^0.1.1" zstd-codec "^0.1.1"
lbry-redux@lbryio/lbry-redux#2f896bac53a2424a6820e1a63aa81d6f755dd4f2: lbry-redux@lbryio/lbry-redux#6ed0dde5cbd7c25aa02631d5fa31fb6a4de76876:
version "0.0.1" version "0.0.1"
resolved "https://codeload.github.com/lbryio/lbry-redux/tar.gz/2f896bac53a2424a6820e1a63aa81d6f755dd4f2" resolved "https://codeload.github.com/lbryio/lbry-redux/tar.gz/6ed0dde5cbd7c25aa02631d5fa31fb6a4de76876"
dependencies: dependencies:
proxy-polyfill "0.1.6" proxy-polyfill "0.1.6"
reselect "^3.0.0" reselect "^3.0.0"
@ -10107,6 +10109,10 @@ symbol-observable@^1.0.3, symbol-observable@^1.1.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
tabbable@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-4.0.0.tgz#5bff1d1135df1482cf0f0206434f15eadbeb9261"
table@^5.0.2, table@^5.2.3: table@^5.0.2, table@^5.2.3:
version "5.4.6" version "5.4.6"
resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"