99ab165a8f
Clearer display of takeover amounts Repost from empty search result, from top page, or from claim review changes final touches bump empty comment copy they emptier validation cleanup extra
77 lines
2 KiB
JavaScript
77 lines
2 KiB
JavaScript
// @flow
|
|
import React from 'react';
|
|
import Page from 'component/page';
|
|
import { useHistory } from 'react-router';
|
|
import RepostCreate from 'component/repostCreate';
|
|
import YrblWalletEmpty from 'component/yrblWalletEmpty';
|
|
import useThrottle from 'effects/use-throttle';
|
|
import classnames from 'classnames';
|
|
|
|
type Props = {
|
|
balance: number,
|
|
resolveUri: string => void,
|
|
};
|
|
function RepostPage(props: Props) {
|
|
const { balance, resolveUri } = props;
|
|
|
|
const REPOST_FROM = 'from';
|
|
const REPOST_TO = 'to';
|
|
const REDIRECT = 'redirect';
|
|
const {
|
|
location: { search },
|
|
} = useHistory();
|
|
|
|
const urlParams = new URLSearchParams(search);
|
|
const repostFrom = urlParams.get(REPOST_FROM);
|
|
const redirectUri = urlParams.get(REDIRECT);
|
|
const repostTo = urlParams.get(REPOST_TO);
|
|
const [contentUri, setContentUri] = React.useState('');
|
|
const [repostUri, setRepostUri] = React.useState('');
|
|
const throttledContentValue = useThrottle(contentUri, 500);
|
|
const throttledRepostValue = useThrottle(repostUri, 500);
|
|
|
|
React.useEffect(() => {
|
|
if (throttledContentValue) {
|
|
resolveUri(throttledContentValue);
|
|
}
|
|
}, [throttledContentValue, resolveUri]);
|
|
|
|
React.useEffect(() => {
|
|
if (throttledRepostValue) {
|
|
resolveUri(throttledRepostValue);
|
|
}
|
|
}, [throttledRepostValue, resolveUri]);
|
|
|
|
React.useEffect(() => {
|
|
if (repostTo) {
|
|
resolveUri(repostTo);
|
|
}
|
|
}, [repostTo, resolveUri]);
|
|
|
|
const decodedFrom = repostFrom && decodeURIComponent(repostFrom);
|
|
return (
|
|
<Page
|
|
noFooter
|
|
noSideNavigation
|
|
backout={{
|
|
title: __('Repost'),
|
|
backLabel: __('Back'),
|
|
}}
|
|
>
|
|
{balance === 0 && <YrblWalletEmpty />}
|
|
<div className={classnames({ 'card--disabled': balance === 0 })}>
|
|
<RepostCreate
|
|
uri={decodedFrom}
|
|
name={repostTo}
|
|
redirectUri={redirectUri}
|
|
repostUri={repostUri}
|
|
contentUri={contentUri}
|
|
setContentUri={setContentUri}
|
|
setRepostUri={setRepostUri}
|
|
/>
|
|
</div>
|
|
</Page>
|
|
);
|
|
}
|
|
|
|
export default RepostPage;
|