mirror of
https://github.com/LBRYFoundation/lbry-desktop.git
synced 2025-08-23 17:47:24 +00:00
67 lines
1.5 KiB
JavaScript
67 lines
1.5 KiB
JavaScript
// @flow
|
|
import React from 'react';
|
|
import Page from 'component/page';
|
|
import Yrbl from 'component/yrbl';
|
|
import Button from 'component/button';
|
|
const { buildURI } = require('lbry-redux');
|
|
|
|
const DELAY_TIME = 1500;
|
|
|
|
// Landing page for opening lbry urls on external applications.
|
|
type Props = {
|
|
match: {
|
|
params: {
|
|
claimId: ?string,
|
|
claimName: ?string,
|
|
},
|
|
},
|
|
};
|
|
const OpenInDesktop = (props: Props) => {
|
|
const { match } = props;
|
|
const { params } = match;
|
|
const [title, setTitle] = React.useState('Loading...');
|
|
const [claimUrl, setClaimUrl] = React.useState(null);
|
|
|
|
// Get claim url
|
|
React.useEffect(() => {
|
|
if (params) {
|
|
try {
|
|
const url = buildURI(params);
|
|
if (url && claimUrl !== url) {
|
|
setClaimUrl(url);
|
|
}
|
|
} catch {}
|
|
}
|
|
}, [params, claimUrl, setClaimUrl]);
|
|
|
|
// Open url on external application
|
|
React.useEffect(() => {
|
|
if (claimUrl) {
|
|
setTimeout(() => {
|
|
setTitle('Ready!');
|
|
window.open(claimUrl, '_top');
|
|
}, DELAY_TIME);
|
|
}
|
|
}, [claimUrl]);
|
|
|
|
return (
|
|
<Page>
|
|
<div className="main main--empty">
|
|
<Yrbl
|
|
type="happy"
|
|
title={__(title)}
|
|
subtitle={
|
|
<p>
|
|
{__('You will need an external application.')}
|
|
<br />
|
|
{__('Get lbry desktop ')}
|
|
<Button button="link" label={__('here!')} href="https://lbry.com/get" />
|
|
</p>
|
|
}
|
|
/>
|
|
</div>
|
|
</Page>
|
|
);
|
|
};
|
|
|
|
export default OpenInDesktop;
|