aboutsummaryrefslogtreecommitdiffstats
path: root/old-ui/app/components/notice.js
diff options
context:
space:
mode:
authorDan <danjm.com@gmail.com>2017-11-15 00:04:23 +0800
committerDan <danjm.com@gmail.com>2017-12-05 10:36:26 +0800
commit6561e75aa2fb03c77544da3c090ad6ea2883d29a (patch)
treed2203d198a2c49049fa8eb3d566e2bb00ebcdb45 /old-ui/app/components/notice.js
parent2b1f2557c7dbd589724fd690ec72f789f9650e3c (diff)
downloadtangerine-wallet-browser-6561e75aa2fb03c77544da3c090ad6ea2883d29a.tar
tangerine-wallet-browser-6561e75aa2fb03c77544da3c090ad6ea2883d29a.tar.gz
tangerine-wallet-browser-6561e75aa2fb03c77544da3c090ad6ea2883d29a.tar.bz2
tangerine-wallet-browser-6561e75aa2fb03c77544da3c090ad6ea2883d29a.tar.lz
tangerine-wallet-browser-6561e75aa2fb03c77544da3c090ad6ea2883d29a.tar.xz
tangerine-wallet-browser-6561e75aa2fb03c77544da3c090ad6ea2883d29a.tar.zst
tangerine-wallet-browser-6561e75aa2fb03c77544da3c090ad6ea2883d29a.zip
Add old-ui directory
Diffstat (limited to 'old-ui/app/components/notice.js')
-rw-r--r--old-ui/app/components/notice.js132
1 files changed, 132 insertions, 0 deletions
diff --git a/old-ui/app/components/notice.js b/old-ui/app/components/notice.js
new file mode 100644
index 000000000..09d461c7b
--- /dev/null
+++ b/old-ui/app/components/notice.js
@@ -0,0 +1,132 @@
+const inherits = require('util').inherits
+const Component = require('react').Component
+const h = require('react-hyperscript')
+const ReactMarkdown = require('react-markdown')
+const linker = require('extension-link-enabler')
+const findDOMNode = require('react-dom').findDOMNode
+
+module.exports = Notice
+
+inherits(Notice, Component)
+function Notice () {
+ Component.call(this)
+}
+
+Notice.prototype.render = function () {
+ const { notice, onConfirm } = this.props
+ const { title, date, body } = notice
+ const state = this.state || { disclaimerDisabled: true }
+ const disabled = state.disclaimerDisabled
+
+ return (
+ h('.flex-column.flex-center.flex-grow', {
+ style: {
+ width: '100%',
+ },
+ }, [
+ h('h3.flex-center.text-transform-uppercase.terms-header', {
+ style: {
+ background: '#EBEBEB',
+ color: '#AEAEAE',
+ width: '100%',
+ fontSize: '20px',
+ textAlign: 'center',
+ padding: 6,
+ },
+ }, [
+ title,
+ ]),
+
+ h('h5.flex-center.text-transform-uppercase.terms-header', {
+ style: {
+ background: '#EBEBEB',
+ color: '#AEAEAE',
+ marginBottom: 24,
+ width: '100%',
+ fontSize: '20px',
+ textAlign: 'center',
+ padding: 6,
+ },
+ }, [
+ date,
+ ]),
+
+ h('style', `
+
+ .markdown {
+ overflow-x: hidden;
+ }
+
+ .markdown h1, .markdown h2, .markdown h3 {
+ margin: 10px 0;
+ font-weight: bold;
+ }
+
+ .markdown strong {
+ font-weight: bold;
+ }
+ .markdown em {
+ font-style: italic;
+ }
+
+ .markdown p {
+ margin: 10px 0;
+ }
+
+ .markdown a {
+ color: #df6b0e;
+ }
+
+ `),
+
+ h('div.markdown', {
+ onScroll: (e) => {
+ var object = e.currentTarget
+ if (object.offsetHeight + object.scrollTop + 100 >= object.scrollHeight) {
+ this.setState({disclaimerDisabled: false})
+ }
+ },
+ style: {
+ background: 'rgb(235, 235, 235)',
+ height: '310px',
+ padding: '6px',
+ width: '90%',
+ overflowY: 'scroll',
+ scroll: 'auto',
+ },
+ }, [
+ h(ReactMarkdown, {
+ className: 'notice-box',
+ source: body,
+ skipHtml: true,
+ }),
+ ]),
+
+ h('button', {
+ disabled,
+ onClick: () => {
+ this.setState({disclaimerDisabled: true})
+ onConfirm()
+ },
+ style: {
+ marginTop: '18px',
+ },
+ }, 'Accept'),
+ ])
+ )
+}
+
+Notice.prototype.componentDidMount = function () {
+ // eslint-disable-next-line react/no-find-dom-node
+ var node = findDOMNode(this)
+ linker.setupListener(node)
+ if (document.getElementsByClassName('notice-box')[0].clientHeight < 310) {
+ this.setState({disclaimerDisabled: false})
+ }
+}
+
+Notice.prototype.componentWillUnmount = function () {
+ // eslint-disable-next-line react/no-find-dom-node
+ var node = findDOMNode(this)
+ linker.teardownListener(node)
+}