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