-
Notifications
You must be signed in to change notification settings - Fork 295
/
RedemptionUnavailableDialog.tsx
80 lines (75 loc) · 2.32 KB
/
RedemptionUnavailableDialog.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// @flow
import React, { Component } from 'react';
import { observer } from 'mobx-react';
import { defineMessages, intlShape, FormattedHTMLMessage } from 'react-intl';
import BigNumber from 'bignumber.js';
import globalMessages from '../../../i18n/global-messages';
import DialogCloseButton from '../../widgets/DialogCloseButton';
import Dialog from '../../widgets/Dialog';
import LoadingSpinner from '../../widgets/LoadingSpinner';
import styles from './RedemptionUnavailableDialog.scss';
import closeCrossThin from '../../../assets/images/close-cross-thin.inline.svg';
const messages = defineMessages({
title: {
id: 'staking.redeemItnRewards.redemptionUnavailable.title',
defaultMessage: '!!!Redeem Incentivized Testnet rewards',
description:
'Title for Redeem Incentivized Testnet - redemptionUnavailable',
},
closeButtonLabel: {
id: 'staking.redeemItnRewards.redemptionUnavailable.closeButton.label',
defaultMessage: '!!!Close',
description:
'closeButtonLabel for Redeem Incentivized Testnet - redemptionUnavailable',
},
});
type Props = {
onClose: Function,
syncPercentage: number,
};
@observer
export default class RedemptionUnavailableDialog extends Component<Props> {
static contextTypes = {
intl: intlShape.isRequired,
};
render() {
const { intl } = this.context;
const { onClose, syncPercentage } = this.props;
const closeButton = (
<DialogCloseButton
icon={closeCrossThin}
className={styles.closeButton}
onClose={onClose}
/>
);
return (
<Dialog
title={intl.formatMessage(messages.title)}
actions={[
{
className: 'primary',
primary: true,
label: intl.formatMessage(messages.closeButtonLabel),
onClick: onClose,
},
]}
closeButton={closeButton}
onClose={onClose}
closeOnOverlayClick={false}
fullSize
>
<div className={styles.component}>
<LoadingSpinner big />
<div className={styles.description}>
<FormattedHTMLMessage
{...globalMessages.featureUnavailableWhileSyncing}
values={{
syncPercentage: new BigNumber(syncPercentage).toFormat(2),
}}
/>
</div>
</div>
</Dialog>
);
}
}