/ src / modules / Terms / Terms.jsx
Terms.jsx
  1  import React from 'react'
  2  import styles from './Terms.module.scss'
  3  
  4  const DEFAULT_HEIGHT = '108px'
  5  
  6  class Terms extends React.Component {
  7    constructor(props) {
  8      super(props)
  9      this.state = {
 10        termsAndConditionsHeight: DEFAULT_HEIGHT,
 11        responsibilitiesHeight: DEFAULT_HEIGHT,
 12        limitationsHeight: DEFAULT_HEIGHT,
 13      }
 14      this.nodes = {
 15        termsAndCoditions: React.createRef(),
 16        responsibilities: React.createRef(),
 17        limitations: React.createRef(),
 18      }
 19      this.onReadMoreTermsAndConditions = this.onReadMore.bind(
 20        this,
 21        this.nodes.termsAndCoditions,
 22        'termsAndConditionsHeight',
 23      )
 24      this.onReadMoreResponsibilities = this.onReadMore.bind(
 25        this,
 26        this.nodes.responsibilities,
 27        'responsibilitiesHeight',
 28      )
 29      this.onReadMoreLimitations = this.onReadMore.bind(
 30        this,
 31        this.nodes.limitations,
 32        'limitationsHeight',
 33      )
 34    }
 35  
 36    onReadMore(ref, propName) {
 37      const state = {}
 38      state[propName] = `${ref.current.offsetHeight + 16}px`
 39  
 40      this.setState(state, () => {
 41        setTimeout(() => {
 42          state[propName] = 'none'
 43          this.setState(state)
 44        }, 400)
 45      })
 46    }
 47  
 48    render() {
 49      const {
 50        termsAndConditionsHeight,
 51        responsibilitiesHeight,
 52        limitationsHeight,
 53      } = this.state
 54  
 55      return (
 56        <div className={styles.cnt}>
 57          <div className={styles.title}>Terms and conditions</div>
 58          <div className={styles.frame}>
 59            <div className={styles.frameTitle}>Terms and conditions</div>
 60            <div className={styles.frameImportant}>
 61              <p>
 62                You must be over 13, agree that using our service is legal in your
 63                jurisdiction, and that you won't do anything illegal with what we
 64                provide.
 65              </p>
 66              <p>
 67                We are not lawyers or financial advisors, and you use this
 68                software at your own risk.
 69              </p>
 70            </div>
 71  
 72            <div
 73              className={styles.frameContent}
 74              style={{ maxHeight: termsAndConditionsHeight }}
 75            >
 76              <div ref={this.nodes.termsAndCoditions}>
 77                <p>
 78                  You accept the Terms by either (1) clicking to agree or accept
 79                  where these options are presented to you, or (2) actually using
 80                  Discover (“Discover”) at https://dap.ps
 81                </p>
 82                <p>
 83                  In order to use Discover you must be 13 years of age or older.
 84                  If you are between 13 and 18 years of age, you must have your
 85                  parent or legal guardian’s permission to use Discover.
 86                </p>
 87                <p>
 88                  By accessing Discover you accept the terms of use as set out
 89                  herein. All information is provided of a mere general nature for
 90                  informational purposes only. By accessing Discover you warrant
 91                  to the operators, contributors and the host thereof that you may
 92                  freely, without limitation, access the DApp store and all of its
 93                  contents in your jurisdiction and shall not use Discover and its
 94                  contents in any way that infringes on laws or the rights of
 95                  others including those of the aforementioned persons (including
 96                  the entities they may represent).
 97                </p>
 98                <p>
 99                  Neither Discover nor any of the persons or entities involved in
100                  any way in respect of Discover, including its host and its
101                  contributors, provide for specific legal, fiscal, economical
102                  and/or any other kind of advice or recommendation that may be
103                  relied upon. A visitor to Discover will therefore act at their
104                  own risk in accessing or in any way relying on the content of
105                  the Discover and the visitor is therefore solely responsible for
106                  any consequences thereof.
107                </p>
108              </div>
109              {termsAndConditionsHeight === DEFAULT_HEIGHT && (
110                <div className={styles.readMoreCnt}>
111                  <div
112                    className={styles.readMore}
113                    onClick={this.onReadMoreTermsAndConditions}
114                  >
115                    Read more
116                  </div>
117                </div>
118              )}
119            </div>
120          </div>
121          <div className={styles.frame}>
122            <div className={styles.frameTitle}>Your Responsibilities</div>
123            <div className={styles.frameImportant}>
124              <p>You will protect your users' information, no matter what. </p>
125              <p>
126                You will not use information you do not have permission to use,
127                and you may not hack anyone by submitting malicious code or
128                otherwise manipulating our service.
129              </p>
130            </div>
131  
132            <div
133              className={styles.frameContent}
134              style={{ maxHeight: responsibilitiesHeight }}
135            >
136              <div ref={this.nodes.responsibilities}>
137                <p>
138                  You agree that if You make Your DApp available through Discover,
139                  You will protect the privacy and legal rights of users. If the
140                  users provide You with, or Your DApp accesses or uses,
141                  usernames, passwords, or other login information or personal
142                  information, You agree to make the users aware that the
143                  information will be available to Your DApp, and You agree to
144                  provide legally adequate privacy notice and protection for those
145                  users. Further, Your Dapp may only use that information for the
146                  limited purposes for which the user has given You permission to
147                  do so.
148                </p>
149                <p>
150                  If Your DApp stores personal or sensitive information provided
151                  by users, You agree to do so securely and only for as long as it
152                  is needed. However, if the user has opted into a separate
153                  agreement with You that allows You or Your DApp to store or use
154                  personal or sensitive information directly related to Your DApp
155                  (not including other products or applications), then the terms
156                  of that separate agreement will govern Your use of such
157                  information.
158                </p>
159                <p>
160                  You will not engage in any activity with Discover, including
161                  making Your Dapp available via Discover, that interferes with,
162                  disrupts, damages, or accesses in an unauthorized manner the
163                  devices, servers, networks, or other properties or services of
164                  any third party including, but not limited to, Status or any
165                  Authorized Provider. You may not use user information obtained
166                  via Discover to sell or distribute DApp outside of Discover.
167                </p>
168              </div>
169              {responsibilitiesHeight === DEFAULT_HEIGHT && (
170                <div className={styles.readMoreCnt}>
171                  <div
172                    className={styles.readMore}
173                    onClick={this.onReadMoreResponsibilities}
174                  >
175                    Read more
176                  </div>
177                </div>
178              )}
179            </div>
180          </div>
181          <div className={styles.frame}>
182            <div className={styles.frameTitle}>Limitation of liability</div>
183            <div className={styles.frameImportant}>
184              <p>
185                The people responsible for Discover are not liable for your
186                mistakes.
187              </p>
188            </div>
189  
190            <div
191              className={styles.frameContent}
192              style={{ maxHeight: limitationsHeight }}
193            >
194              <div ref={this.nodes.limitations}>
195                <p>
196                  The content, data, materials and/or other services on Discover
197                  are provided without any warranties of any kind regarding its
198                  title, ownership, accuracy, completeness and correctness.
199                </p>
200                <p>
201                  Specifically, unless otherwise required by law, in no event
202                  shall the operators, contributors to or hosts of Discover be
203                  liable for any damages of any kind, including, but not limited
204                  to, loss of use, loss of assets or rights or privileges, loss of
205                  profits, or loss of data arising out of or in any way connected
206                  with the use of the DApps and the information thereon from time
207                  to time.
208                </p>
209                <p>
210                  In no way are the operators, contributors to or host of Discover
211                  responsible for the actions, decisions, transactions, or other
212                  behavior taken or not taken by You or person relying on You in
213                  reliance upon Discover and its contents from time to time.
214                </p>
215              </div>
216              {limitationsHeight === DEFAULT_HEIGHT && (
217                <div className={styles.readMoreCnt}>
218                  <div
219                    className={styles.readMore}
220                    onClick={this.onReadMoreLimitations}
221                  >
222                    Read more
223                  </div>
224                </div>
225              )}
226            </div>
227          </div>
228          <div className={styles.frame}>
229            <div className={styles.frameTitle}>Limitation of liability</div>
230            <div className={styles.frameContent}>
231              <div ref={this.nodes.responsibilities}>
232                <p>
233                  Swiss law exclusively applies to the use of content, data,
234                  materials and/or other services provided for/on Discover. The
235                  court of the Canton of Zug, Switzerland, will be the sole and
236                  exclusive competent court regarding any dispute relating to or
237                  stemming from the use of Discover including, without limitation,
238                  in respect of any breach of or dispute in respect as referred
239                  above, irrespective of the jurisdiction applicable thereto.
240                </p>
241              </div>
242            </div>
243          </div>
244          <div className={styles.frame}>
245            <div className={styles.frameTitle}>Last Amendment</div>
246  
247            <div className={styles.frameContent}>
248              <div ref={this.nodes.responsibilities}>
249                <p>
250                  These terms of use were amended for the last time on 15th April
251                  2019 and may be altered at any time without prior notice.
252                </p>
253                <p>
254                  <strong>Good luck reaching the top of the rankings!</strong>
255                </p>
256              </div>
257            </div>
258          </div>
259        </div>
260      )
261    }
262  }
263  
264  export default Terms