Bluesky app fork with some witchin' additions 💫
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add tos, community guidelines, and copyright policy (#410)

* Add tos, community guidelines, and copyright policy

* Fix lint

authored by

Paul Frazee and committed by
GitHub
2f519bd6 a74919ef

+1167 -8
+9
src/Navigation.tsx
··· 37 37 import {LogScreen} from './view/screens/Log' 38 38 import {SupportScreen} from './view/screens/Support' 39 39 import {PrivacyPolicyScreen} from './view/screens/PrivacyPolicy' 40 + import {TermsOfServiceScreen} from './view/screens/TermsOfService' 41 + import {CommunityGuidelinesScreen} from './view/screens/CommunityGuidelines' 42 + import {CopyrightPolicyScreen} from './view/screens/CopyrightPolicy' 40 43 41 44 const navigationRef = createNavigationContainerRef<AllNavigatorParams>() 42 45 ··· 68 71 <Stack.Screen name="Log" component={LogScreen} /> 69 72 <Stack.Screen name="Support" component={SupportScreen} /> 70 73 <Stack.Screen name="PrivacyPolicy" component={PrivacyPolicyScreen} /> 74 + <Stack.Screen name="TermsOfService" component={TermsOfServiceScreen} /> 75 + <Stack.Screen 76 + name="CommunityGuidelines" 77 + component={CommunityGuidelinesScreen} 78 + /> 79 + <Stack.Screen name="CopyrightPolicy" component={CopyrightPolicyScreen} /> 71 80 </> 72 81 ) 73 82 }
+3
src/lib/routes/types.ts
··· 16 16 Log: undefined 17 17 Support: undefined 18 18 PrivacyPolicy: undefined 19 + TermsOfService: undefined 20 + CommunityGuidelines: undefined 21 + CopyrightPolicy: undefined 19 22 } 20 23 21 24 export type HomeTabNavigatorParams = CommonNavigatorParams & {
+154
src/locale/en/community-guidelines.tsx
··· 1 + import React from 'react' 2 + import {H3, H4, P, UL, LI, A, EM, OL} from 'view/com/util/Html' 3 + 4 + export default function () { 5 + return ( 6 + <> 7 + <H4>Last Updated:&nbsp;2023/04/06</H4> 8 + <P> 9 + The Bluesky app is built on a decentralized social networking protocol, 10 + the AT Protocol (atproto). Atproto is an open protocol that supports 11 + many different kinds of services. Our mission for the Bluesky app is to 12 + foster a vibrant and evolving community that respects individual 13 + preferences and adapts to the changing needs of our users. With this in 14 + mind, we have established the following goals for our community 15 + guidelines: 16 + </P> 17 + <OL> 18 + <LI> 19 + Empower user choice: We strive to provide users with the ability to 20 + select self-governing services on the AT protocol that align with 21 + their personal preferences and values. This includes making it easy 22 + for others to run their own services, and for users to migrate between 23 + services. 24 + </LI> 25 + <LI> 26 + Cultivate a welcoming environment: Our aim is to create a safe and 27 + friendly space on bsky.social, the server we run, where new users feel 28 + welcome and supported, and where we ourselves enjoy participating. To 29 + help achieve this vision, we have implemented moderation systems 30 + guided by the following policies. 31 + </LI> 32 + <LI> 33 + Maintain up-to-date guidelines: As our user base grows and changes, 34 + our community guidelines must evolve as well. We will regularly review 35 + and update these guidelines in response to feedback from our users, 36 + emerging trends, and changing circumstances, and will strive to 37 + maintain transparency about any changes to our policies. 38 + </LI> 39 + </OL> 40 + <P> 41 + In the following sections, we will dive into the specific policies that 42 + make up our server and community guidelines. 43 + </P> 44 + <H3>Server Guidelines</H3> 45 + <P> 46 + Our server guidelines outline the content policies we have established 47 + for the material hosted on our infrastructure at bsky.social. These 48 + policies have been selected to minimize potential risks and costs 49 + associated with hosting certain types of content, since we have limited 50 + developer resources and want to focus them on improving the AT Protocol. 51 + </P> 52 + <P> 53 + It is important to note that other servers within the atproto network 54 + may have different server-level rules. If you find that our policies do 55 + not align with your preferences, we encourage you to explore alternative 56 + servers or create your own. If you initially choose to use bsky.social 57 + but later decide that our policies do not suit your needs, you will soon 58 + be able to seamlessly migrate your account between servers. 59 + </P> 60 + <P> 61 + <EM>No illegal content or transactions</EM> 62 + </P> 63 + <UL> 64 + <LI> 65 + Don&rsquo;t share, promote, or engage in any illegal activities or 66 + transactions on our platform. This includes, but is not limited to, 67 + sharing copyrighted material without permission, distributing illicit 68 + substances, or participating in any form of illegal trade. 69 + </LI> 70 + </UL> 71 + <P> 72 + <EM>Don&rsquo;t break our infrastructure</EM> 73 + </P> 74 + <UL> 75 + <LI> 76 + If you find a vulnerability, please report it to us at 77 + support@bsky.app, and don&rsquo;t use it to exploit or take down our 78 + infrastructure. 79 + </LI> 80 + </UL> 81 + <H3>Community Guidelines</H3> 82 + <P> 83 + Our community guidelines are designed to promote a safe and enjoyable 84 + experience for all users on our server. These policies serve as an 85 + additional layer on top of our server-level guidelines and are intended 86 + to foster a positive and respectful environment. For some community 87 + guidelines, we plan to offer content filters that you can adjust 88 + according to your preferences, allowing you to view content that has 89 + been initially filtered out. Please be aware that these rules will 90 + evolve over time as we continually work to cultivate a healthy and 91 + thriving community. 92 + </P> 93 + <P> 94 + <EM>Be polite and respectful</EM> 95 + </P> 96 + <UL> 97 + <LI> 98 + Don&rsquo;t harass, use slurs, threaten violence, or attack people 99 + </LI> 100 + </UL> 101 + <P> 102 + <EM>Don&rsquo;t spam</EM> 103 + </P> 104 + <UL> 105 + <LI> 106 + Don&rsquo;t repeatedly post the same message, or excessively promote 107 + anything 108 + </LI> 109 + </UL> 110 + <P> 111 + <EM>Don&rsquo;t abuse the reporting system</EM> 112 + </P> 113 + <UL> 114 + <LI> 115 + Don&rsquo;t use the reporting tool to spam, harass users, or submit 116 + unfounded or trivial complaints. The reporting system is in place to 117 + address genuine concerns and maintain the safety and integrity of our 118 + community, so please use it responsibly. 119 + </LI> 120 + </UL> 121 + <H3>Enforcement</H3> 122 + <P> 123 + Our goal is to provide a flexible environment that balances the freedom 124 + and safety of our users. Violations of server or community guidelines 125 + may result in a flag, a warning, an account suspension until you migrate 126 + away from our service, or a permanent account suspension and ban from 127 + our services.{' '} 128 + </P> 129 + <P>References:</P> 130 + <P> 131 + Twitter:{' '} 132 + <A href="https://help.twitter.com/en/rules-and-policies/twitter-rules"> 133 + https://help.twitter.com/en/rules-and-policies/twitter-rules 134 + </A> 135 + </P> 136 + <P> 137 + Reddit:{' '} 138 + <A href="https://www.redditinc.com/policies/content-policy"> 139 + https://www.redditinc.com/policies/content-policy 140 + </A> 141 + </P> 142 + <P> 143 + Discord:{' '} 144 + <A href="https://discord.com/guidelines"> 145 + https://discord.com/guidelines 146 + </A> 147 + </P> 148 + <P> 149 + Discord TOS:{' '} 150 + <A href="https://discord.com/terms">https://discord.com/terms</A> 151 + </P> 152 + </> 153 + ) 154 + }
+88
src/locale/en/copyright-policy.tsx
··· 1 + import React from 'react' 2 + import {H3, H4, P, UL, LI, A} from 'view/com/util/Html' 3 + 4 + export default function () { 5 + return ( 6 + <> 7 + <H4>Last Updated:&nbsp;2023/04/06</H4> 8 + <P>Notification of Copyright Infringement</P> 9 + <P> 10 + Bluesky, PBLLC d.b.a. Bluesky (&ldquo;Bluesky&rdquo;) respects the 11 + intellectual property rights of others and expects its users to do the 12 + same. 13 + </P> 14 + <P> 15 + It is Bluesky&rsquo;s policy, in appropriate circumstances and at its 16 + discretion, to disable the accounts of users who repeatedly infringe the 17 + copyrights of others. 18 + </P> 19 + <P> 20 + In accordance with the Digital Millennium Copyright Act of 1998, the 21 + text of which may be found on the U.S. Copyright Office website at{' '} 22 + <A href="http://www.copyright.gov/legislation/dmca.pdf"> 23 + http://www.copyright.gov/legislation/dmca.pdf 24 + </A> 25 + , Bluesky will respond expeditiously to claims of copyright infringement 26 + committed using the Bluesky website, app, or other Bluesky owned or 27 + controlled online networ k services &nbsp;accessible through a mobile 28 + device or other type of device (the &ldquo;Sites&rdquo;) that are 29 + reported to Bluesky&rsquo;s Designated Copyright Agent, identified in 30 + the sample notice below. 31 + </P> 32 + <P> 33 + If you are a copyright owner, or are authorized to act on behalf of one, 34 + or authorized to act under any exclusive right under copyright, please 35 + report alleged copyright infringements taking place on or through the 36 + Sites by completing the following DMCA Notice of Alleged Infringement 37 + and delivering it to Bluesky&rsquo;s Designated Copyright Agent. Upon 38 + receipt of the Notice as described below, Bluesky will take whatever 39 + action, in its sole discretion, it deems appropriate, including removal 40 + of the challenged material from the Sites. 41 + </P> 42 + <H3>DMCA Notice of Alleged Infringement (&ldquo;Notice&rdquo;)</H3> 43 + <P> 44 + 1. Identify the copyrighted work that you claim has been infringed, or 45 + &ndash; if multiple copyrighted works are covered by this Notice &ndash; 46 + you may provide a representative list of the copyrighted works that you 47 + claim have been infringed. 48 + </P> 49 + <P> 50 + 2. Identify the material that you claim is infringing (or to be the 51 + subject of infringing activity) and that is to be removed or access to 52 + which is to be disabled, and information reasonably sufficient to permit 53 + us to locate the material, including at a minimum, if applicable, the 54 + URL of the link shown on the Site(s) where such material may be found. 55 + </P> 56 + <P> 57 + 3. Provide your mailing address, telephone number, and email address. 58 + </P> 59 + <P> 60 + 4. Include both of the following statements in the body of the Notice: 61 + </P> 62 + <UL> 63 + <LI> 64 + &ldquo;I hereby state that I have a good faith belief that the 65 + disputed use of the copyrighted material is not authorized by the 66 + copyright owner, its agent, or the law (e.g., as a fair use).&rdquo; 67 + </LI> 68 + <LI> 69 + &ldquo;I hereby state that the information in this Notice is accurate 70 + and, under penalty of perjury, that I am the owner, or authorized to 71 + act on behalf of the owner, of the copyright or of an exclusive right 72 + under the copyright that is allegedly infringed.&rdquo; 73 + </LI> 74 + </UL> 75 + <P> 76 + 5. Provide your full legal name and your electronic or physical 77 + signature. 78 + </P> 79 + <P> 80 + Deliver this Notice, with all items completed, to Bluesky&rsquo;s 81 + Designated Copyright Agent: 82 + </P> 83 + <P>Copyright Agent</P> 84 + <P>c/o Bluesky, PBLLC</P> 85 + <P>support@bsky.app</P> 86 + </> 87 + ) 88 + }
+723
src/locale/en/terms-of-service.tsx
··· 1 + import React from 'react' 2 + import {H4, P, OL, LI, A, STRONG, EM, UL} from 'view/com/util/Html' 3 + 4 + export default function () { 5 + return ( 6 + <> 7 + <H4>Last Updated:&nbsp;2023/04/06</H4> 8 + <P> 9 + Welcome to the Bluesky, PBLLC d.b.a. Bluesky (&ldquo;Bluesky&rdquo;, 10 + &ldquo;we&rdquo;, or &ldquo;us&rdquo;) website located at{' '} 11 + <A href="https://bsky.app/">bsky.social</A> (&ldquo;Site&rdquo;), the 12 + Authenticated Transfer social protocol (&ldquo;Protocol&rdquo;) and our 13 + mobile application (&ldquo;App&rdquo;). Please read these Terms of 14 + Service (the &ldquo;Terms&rdquo;) and our{' '} 15 + <A href="https://bsky.app/support/privacy">Privacy Policy</A>{' '} 16 + (&ldquo;Privacy Policy&rdquo;) carefully because they govern your use of 17 + our Site, Protocol, App, and our content accessible therein. In 18 + addition, please read the{' '} 19 + <A href="https://bsky.app/support/community-guidelines"> 20 + Bluesky Community Guidelines 21 + </A>{' '} 22 + (the &ldquo;Bluesky Community Guidelines&rdquo;), which are incorporated 23 + by reference and included in the Terms. To make these Terms easier to 24 + read, our Site, Protocol, and App, and our content and services provided 25 + therein, are collectively called the &ldquo;Services.&rdquo; The 26 + Services are not official products and have not been commercially or 27 + publicly released by Bluesky. 28 + </P> 29 + <P> 30 + IMPORTANT NOTICE REGARDING ARBITRATION: WHEN YOU AGREE TO THESE TERMS 31 + YOU ARE AGREEING (WITH LIMITED EXCEPTION) TO RESOLVE ANY DISPUTE BETWEEN 32 + YOU AND BLUESKY THROUGH BINDING, INDIVIDUAL ARBITRATION RATHER THAN IN 33 + COURT. PLEASE REVIEW CAREFULLY SECTION 18 &ldquo;DISPUTE 34 + RESOLUTION&rdquo; BELOW FOR DETAILS REGARDING ARBITRATION. HOWEVER, IF 35 + YOU ARE A RESIDENT OF A JURISDICTION WHERE APPLICABLE LAW PROHIBITS 36 + ARBITRATION OF DISPUTES, THE AGREEMENT TO ARBITRATE IN SECTION &lrm;18 37 + WILL NOT APPLY TO YOU BUT THE PROVISIONS OF SECTION &lrm;17 38 + &ldquo;GOVERNING LAW AND FORUM CHOICE&rdquo; WILL APPLY INSTEAD. 39 + </P> 40 + <OL> 41 + <LI> 42 + <STRONG>Agreement to Terms.</STRONG> By using our Services, you agree 43 + to be bound by these Terms. If you don&rsquo;t agree to be bound by 44 + these Terms, do not use the Services. If you are accessing and using 45 + the Services on behalf of a company (such as your employer) or other 46 + legal entity, you represent and warrant that you have the authority to 47 + bind that company or other legal entity to these Terms. In that case, 48 + &ldquo;you&rdquo; and &ldquo;your&rdquo; will refer to that company or 49 + other legal entity. 50 + </LI> 51 + <LI> 52 + <STRONG>Acknowledgment of Beta Services.</STRONG> You acknowledge and 53 + agree that: (a) the Services are not official products and have not 54 + been commercially or publicly released by Bluesky; (b) the Services 55 + may not operate properly, be in final form or be fully functional; (c) 56 + the Services may contain errors, design flaws or other problems; (d) 57 + it may not be possible to make the Services fully functional; (e) the 58 + information obtained using the Services may not be accurate; (f) use 59 + of the Services may result in unexpected results, loss of data or 60 + communications, project delays or other unpredictable damage or loss; 61 + (g) Bluesky is under no obligation to release a commercial or public 62 + version of the Services; and (h) Bluesky has the right to unilaterally 63 + to abandon development of the Services, at any time and without any 64 + obligation or liability to you. 65 + </LI> 66 + <LI> 67 + <STRONG>Privacy Policy.</STRONG> Please refer to our{' '} 68 + <A href="https://bsky.app/support/privacy">Privacy Policy</A> for 69 + information on how we collect, use and share your information. You 70 + acknowledge and agree that your use of the Services is subject to our 71 + Privacy Policy. 72 + </LI> 73 + <LI> 74 + <STRONG>Changes to these Terms or the Services.</STRONG> We may update 75 + these Terms from time to time at our &nbsp;sole discretion. If we do, 76 + we&rsquo;ll let you know by posting the updated Terms on the Site, 77 + Protocol or the App and may also send other communications. It&rsquo;s 78 + important that you review these Terms whenever we update them or you 79 + use the Services. If you continue to use the Services after we have 80 + posted updated Terms it means that you accept and agree to the 81 + changes. If you don&rsquo;t agree to be bound by the changes, you may 82 + not use the Services anymore. Because our Services are evolving over 83 + time we may change or discontinue all or any part of the Services, at 84 + any time and without notice, at our sole discretion. We may add, 85 + remove, suspend or alter access to any content available through or on 86 + the Services at any time and make no guarantee as to the availability 87 + or minimum amount of specific content.{' '} 88 + </LI> 89 + <LI> 90 + <STRONG>Who May Use the Services?</STRONG> 91 + <OL> 92 + <LI> 93 + <EM>Eligibility</EM>. To use the Services, you must be at least 13 94 + years of age and not otherwise barred from using the Services 95 + under applicable law. If you are over 13 years of age but under 96 + the age of majority in your respective jurisdiction, you hereby 97 + represent and warrant that your parent or legal guardian has read 98 + these Terms and accepts them on your behalf. Parents and legal 99 + guardians are responsible for the acts of their minor children 100 + when using the Services, whether or not the parent or guardian has 101 + authorized such acts. 102 + </LI> 103 + <LI> 104 + <EM>Registration and Your Information</EM>. If you want to use 105 + certain features of the Services you&rsquo;ll have to create an 106 + account (&ldquo;Account&rdquo;) via the Services. 107 + </LI> 108 + <LI> 109 + <EM>Accuracy of Account Information</EM>. It&rsquo;s important 110 + that you provide us with accurate, complete and current 111 + information for your Account and you agree to keep this 112 + information up-to-date. If you don&rsquo;t, we might have to 113 + suspend or terminate your Account. You agree that you won&rsquo;t 114 + disclose your Account password to anyone and you&rsquo;ll notify 115 + us immediately of any unauthorized use of your Account. 116 + You&rsquo;re responsible for all activities that occur under your 117 + Account, including, without limitation, the posting of User 118 + Content (as defined below), and any communications or other 119 + contact you have with other users of the Services, whether or not 120 + you know about them. We may take actions we deem reasonably 121 + necessary to prevent fraud and abuse, including placing 122 + restrictions on user accounts or on the amount of content that can 123 + be accessed from the Services at any one time. 124 + </LI> 125 + </OL> 126 + </LI> 127 + <LI> 128 + <STRONG>Feedback.</STRONG> We welcome feedback, comments and 129 + suggestions for improvements to the Services (&ldquo;Feedback&rdquo;). 130 + You can submit Feedback by posting in the App or emailing us at 131 + support@bsky.app. You grant us a non-exclusive, transferable, 132 + worldwide, perpetual, irrevocable, fully-paid, royalty-free license, 133 + with the right to sublicense, under any and all intellectual property 134 + rights that you own or control, to use, copy, modify, create 135 + derivative works based upon and otherwise exploit the Feedback for any 136 + purpose. 137 + </LI> 138 + <LI> 139 + <STRONG>Content Ownership, Responsibility and Removal.</STRONG> 140 + <OL> 141 + <LI> 142 + <EM>Definitions</EM>. For purposes of these Terms: (i){' '} 143 + <STRONG>&ldquo;Content&rdquo;</STRONG> means text, graphics, 144 + images, music, software, audio, video, works of authorship of any 145 + kind, and information or other materials that are posted, 146 + generated, provided or otherwise made available through the 147 + Services; and (ii) <STRONG>&ldquo;User Content&rdquo;</STRONG>{' '} 148 + means any Content that Account holders (including you) provide or 149 + make available through the Services. User Content also includes, 150 + without limitation, any communications or content that you share 151 + with another user of the Services such as comments on other 152 + users&rsquo; User Content or information you provide or make 153 + available through the Services. Content includes, without 154 + limitation, User Content. 155 + </LI> 156 + <LI> 157 + <EM>Our Content Ownership</EM>. Except for any licensed rights 158 + granted under these Terms, Bluesky does not claim any ownership 159 + rights in any User Content and nothing in these Terms will be 160 + deemed to restrict any rights that you may have to use and exploit 161 + your User Content. Subject to the foregoing, Bluesky and its 162 + licensors exclusively own all right, title and interest in and to 163 + the Services and Content, including all associated intellectual 164 + property rights and all features, trademarks, trade names, service 165 + marks, trade dress, and the look and feel of the Services. You 166 + acknowledge that the Services and Content are protected by 167 + copyright, trademark, and other laws of the United States and 168 + foreign countries. You agree not to remove, alter or obscure any 169 + copyright, trademark, service mark or other proprietary rights 170 + notices incorporated in or accompanying the Services or Content. 171 + </LI> 172 + <LI> 173 + <EM>Rights in Content Granted by Bluesky</EM>. Subject to your 174 + compliance with these Terms, Bluesky grants to you a limited, 175 + non-exclusive, non-transferable license, with no right to 176 + sublicense, to download, view, copy, display and print the Content 177 + solely in connection with your permitted use of the Services and 178 + solely for your personal and non-commercial purposes. Other than 179 + the right to use the Services as explicitly described in these 180 + Terms for your personal, limited use, no other rights are granted 181 + to you under these Terms.{' '} 182 + </LI> 183 + <LI> 184 + <EM>Rights in User Content Granted by You to Us</EM>. By making 185 + any User Content available through the Services, you hereby grant 186 + to Bluesky and its subsidiaries, affiliates, licensee, successors, 187 + and assigns (the &ldquo;Bluesky Parties&rdquo;) an irrevocable, 188 + non-exclusive, perpetual, transferable, worldwide, royalty-free 189 + license, with the right to sublicense (through multiple tiers of 190 + sub-licensing), to use, copy, modify, adapt, crop, edit, creative 191 + derivative works, distribute, publicly display, publicly perform 192 + and otherwise exploit in any media now known or hereafter devised, 193 + your User Content, in whole or in part, in connection with (i) 194 + providing the Services and Content to you and to others; (ii) 195 + promote and market Bluesky and our Services, including without 196 + limitation through Bluesky&rsquo;s owned, operated, and/or branded 197 + social media channels. For example, Bluesky may create 198 + compilations of Content made available by Account holders 199 + (including your User Content), and/or use User Content or such 200 + compilations to promote the App through Bluesky&rsquo;s operated, 201 + and/or branded social media channels, without further payment or 202 + consideration by Bluesky. However, without your prior consent, 203 + Bluesky will not use your User Content in any Content that is 204 + sponsored by a third party. 205 + </LI> 206 + <LI> 207 + <EM>Name, Likeness, Other Personal Rights</EM>. By submitting User 208 + Content in which you may appear, including without limitation your 209 + photograph, you hereby grant to (i) Bluesky and the Bluesky 210 + Parties and (ii) other Account holders, an irrevocable, 211 + non-exclusive, perpetual, transferable, worldwide, royalty-free, 212 + unlimited license to use your name, image, likeness, or other 213 + information or materials supplied by you, including any third 214 + party materials as they appear in such User Content, consistent 215 + with the rights granted by you in this Section 7. 216 + </LI> 217 + <LI> 218 + <EM>Your Responsibility for User Content</EM>. You are solely 219 + responsible for all of your User Content. You represent and 220 + warrant that your User Content is original, that you own your User 221 + Content or you have all rights that are necessary to grant us and 222 + the Bluesky Parties the license rights in your User Content under 223 + these Terms. This includes the rights to the name, likeness or 224 + other publicity rights of any other party appearing in your User 225 + Content. You also represent and warrant that neither your User 226 + Content, nor your use and provision of your User Content to be 227 + made available through the Services, nor any exercise of any 228 + rights granted by you in such User Content will (i) conflict with 229 + any rights or commitments granted by you to any other party; (ii) 230 + infringe, misappropriate or violate a third party&rsquo;s 231 + intellectual property rights, or rights of publicity or privacy, 232 + or (iii) result in the violation of any applicable law or 233 + regulation. You represent and warrant that all of your User 234 + Content and your activities in connection with the Services will, 235 + at all times, comply with (i) these Terms; (ii) all applicable 236 + laws, rules, and regulations; and (iii) any other guidelines or 237 + requirements that we may make available to you from time to time. 238 + </LI> 239 + <LI> 240 + <EM>Removal of User Content</EM>. We have the right, in our sole 241 + discretion, to remove any User Content. You can remove your User 242 + Content by specifically deleting it. However, in certain 243 + instances, some of your User Content (such as posts or comments 244 + you make) may not be completely removed and copies of your User 245 + Content may continue to exist on the Services. We are not 246 + responsible or liable for the removal or deletion of (or the 247 + failure to remove or delete) any of your User Content. Except as 248 + expressly stated herein, you acknowledge and agree that we have no 249 + obligation to provide, monitor, edit, upload, or remove any of 250 + your User Content, although we have the right to do so. 251 + </LI> 252 + </OL> 253 + </LI> 254 + <LI> 255 + <STRONG>Respecting Others&rsquo; User Content</STRONG>. Subject to our 256 + rights under Section 7, you acknowledge that all User Content and any 257 + content related thereto are the property of the respective user that 258 + makes the User Content available through the Services or, if made 259 + explicit on the Services, Bluesky. You acknowledge and agree that 260 + Bluesky is not responsible or liable for your User Content or any 261 + direct message through the Services between any user of the Services 262 + and another user of the Services (&ldquo;Communications&rdquo;), 263 + including you. 264 + </LI> 265 + <LI> 266 + <STRONG>Rights and Terms for Apps.</STRONG> 267 + <OL> 268 + <LI> 269 + <EM>Rights in App Granted by Bluesky</EM>. Subject to your 270 + compliance with these Terms, Bluesky grants to you a limited, 271 + non-exclusive, non-transferable license, with no right to 272 + sublicense, to download and install the App on a mobile device 273 + that you own or control and to run the App solely for your own 274 + personal non-commercial purposes. Except as expressly permitted in 275 + these Terms, you may not: (i)&nbsp;copy, modify or create 276 + derivative works based on the App; (ii)&nbsp;sublicense, lease, 277 + lend or rent the App to any third party; (iii)&nbsp;decompile or 278 + disassemble the App; or (iv)&nbsp;make the functionality of the 279 + App available to multiple users through any means. Bluesky 280 + reserves all rights in and to the App not expressly granted to you 281 + under these Terms. Certain portions of the App may be subject to 282 + an open source license agreement, as expressly designated within 283 + the App or on the Site. Such license will govern the use of such 284 + portions of the App to the extent that such license agreement 285 + conflicts with or is inconsistent with this Section 9(a) (for 286 + example, if the license grants broader use rights). 287 + </LI> 288 + <LI> 289 + <EM>Accessing App from App Store</EM>. The following terms apply 290 + to any App accessed through or downloaded from any app store or 291 + distribution platform (like the Apple App Store) where the App may 292 + now or in the future be made available (each, an &ldquo;App 293 + Provider&rdquo;). You acknowledge and agree that: 294 + <UL> 295 + <LI> 296 + These Terms are concluded between you and Bluesky, and not 297 + with the App Provider, and Bluesky (not the App Provider), is 298 + solely responsible for the App. 299 + </LI> 300 + <LI> 301 + The App Provider has no obligation to furnish any maintenance 302 + and support services with respect to the App. 303 + </LI> 304 + <LI> 305 + In the event of any failure of the App to conform to any 306 + applicable warranty, you may notify the App Provider and, to 307 + the maximum extent permitted by applicable law, the App 308 + Provider will have no other warranty obligation whatsoever 309 + with respect to the App. Any other claims, losses, 310 + liabilities, damages, costs or expenses attributable to any 311 + failure to conform to any warranty will be the sole 312 + responsibility of Bluesky. 313 + </LI> 314 + <LI> 315 + The App Provider is not responsible for addressing any claims 316 + you have or any claims of any third party relating to the App 317 + or your possession and use of the App, including, but not 318 + limited to: (i)&nbsp;product liability claims; (ii) any claim 319 + that the App fails to conform to any applicable legal or 320 + regulatory requirement; and (iii) claims arising under 321 + consumer protection or similar legislation. 322 + </LI> 323 + <LI> 324 + In the event of any third party claim that the App or your 325 + possession and use of that App infringes that third 326 + party&rsquo;s intellectual property rights, Bluesky will be 327 + solely responsible for the investigation, defense, settlement 328 + and discharge of any such intellectual property infringement 329 + claim to the extent required by these Terms. 330 + </LI> 331 + <LI> 332 + The App Provider, and its subsidiaries, are third-party 333 + beneficiaries of these Terms as related to your license to the 334 + App, and upon your acceptance of these Terms, the App Provider 335 + will have the right (and will be deemed to have accepted the 336 + right) to enforce these Terms against you as a third-party 337 + beneficiary thereof. 338 + </LI> 339 + <LI> 340 + You represent and warrant that (i) you are not located in a 341 + country that is subject to a U.S. Government embargo, or that 342 + has been designated by the U.S. Government as a 343 + terrorist-supporting country; and (ii) you are not listed on 344 + any U.S. Government list of prohibited or restricted parties. 345 + </LI> 346 + <LI> 347 + You must also comply with all applicable third-party terms of 348 + service when using the App. 349 + </LI> 350 + </UL> 351 + </LI> 352 + </OL> 353 + </LI> 354 + <LI> 355 + <STRONG> 356 + General Prohibitions and Bluesky&rsquo;s Enforcement Rights 357 + </STRONG> 358 + . You agree not to do any of the following: 359 + <OL> 360 + <LI> 361 + Post, upload, publish, submit or transmit any content that: 362 + (i)&nbsp;infringes, misappropriates or violates a third 363 + party&rsquo;s patent, copyright, trademark, trade secret, moral 364 + rights or other intellectual property rights, or rights of 365 + publicity or privacy; or (ii)&nbsp;violates any applicable law or 366 + regulation or would give rise to civil liability; 367 + </LI> 368 + <LI> 369 + Use, display, mirror or frame the Services, Bluesky&rsquo;s name, 370 + any Bluesky trademark, logo or other proprietary information, 371 + without Bluesky&rsquo;s express written consent; 372 + </LI> 373 + <LI> 374 + Access, tamper with, or use non-public areas of the Services; 375 + </LI> 376 + <LI> 377 + Attempt to probe, scan or test the vulnerability of any Bluesky 378 + system or network or breach any security or authentication 379 + measures without reporting such vulnerability or breach to 380 + support@bsky.app, except as part of community testing initiatives 381 + authorized by Bluesky; 382 + </LI> 383 + <LI> 384 + Avoid, bypass, remove, deactivate, impair, descramble or otherwise 385 + circumvent any technological measure implemented by Bluesky or any 386 + of Bluesky&rsquo;s providers or any other third party (including 387 + another user) to protect the Services, including any service 388 + protection or usage limits; 389 + </LI> 390 + <LI> 391 + Attempt to access or search the Services or download content from 392 + the Services using any engine, software, tool, agent, device or 393 + mechanism (including spiders, robots, crawlers, data mining tools 394 + or the like) that imposes unreasonable burdens on the Services or 395 + that we otherwise deem abusive or harmful; 396 + </LI> 397 + <LI>Send any junk mail or spam;</LI> 398 + <LI> 399 + Use any meta tags or other hidden text or metadata utilizing a 400 + Bluesky trademark, logo URL or product name without 401 + Bluesky&rsquo;s express written consent; 402 + </LI> 403 + <LI> 404 + Use the Services, or any portion thereof, in any manner not 405 + permitted by these Terms; 406 + </LI> 407 + <LI> 408 + Interfere with, or attempt to interfere with, the access of any 409 + user, host or network, including, without limitation, sending a 410 + virus, overloading, flooding, spamming, or mail-bombing the 411 + Services; 412 + </LI> 413 + <LI> 414 + Collect or store any personally identifiable information from the 415 + Services from other users of the Services&nbsp; without their 416 + express permission; 417 + </LI> 418 + <LI> 419 + Impersonate or misrepresent your affiliation with any person or 420 + entity, claim a false affiliation, or misrepresent the source or 421 + identity of content used through the Services; 422 + </LI> 423 + <LI> 424 + You agree not to provide any information that is intended to 425 + misinform, misdirect, mislead, or otherwise deceive any users of 426 + the Services or any other third party; 427 + </LI> 428 + <LI>Violate any applicable law or regulation;</LI> 429 + <LI> 430 + Commercialize any User Content not in accordance with these Terms; 431 + or 432 + </LI> 433 + <LI> 434 + Directly or indirectly induce others to do any of the above. 435 + </LI> 436 + </OL> 437 + <P> 438 + Bluesky is not obligated to monitor access to or use of the Services 439 + or to review or edit any content. However, we have the right to do 440 + so for the purpose of operating the Services, to ensure compliance 441 + with these Terms and to comply with applicable law or other legal 442 + requirements. We reserve the right, but are not obligated, to remove 443 + or disable access to any content, including User Content, at any 444 + time and without notice, including, but not limited to, if we, at 445 + our sole discretion, consider it objectionable or in violation of 446 + these Terms. We have the right to investigate violations of these 447 + Terms or conduct that affects the Services. We may also consult and 448 + cooperate with law enforcement authorities to prosecute users who 449 + violate the law. 450 + </P> 451 + </LI> 452 + <LI> 453 + <STRONG>DMCA/Copyright Policy.</STRONG> Bluesky respects copyright law 454 + and expects its users to do the same. It is Bluesky&rsquo;s policy to 455 + terminate in appropriate circumstances account holders who repeatedly 456 + infringe or are believed to be repeatedly infringing the rights of 457 + copyright holders. Please see Bluesky&rsquo;s Copyright Policy at{' '} 458 + <A href="/support/copyright">bsky.app/support/copyright</A> for 459 + further information. 460 + </LI> 461 + <LI> 462 + <STRONG>Links to Third Party Websites or Resources.</STRONG> The 463 + Services (including the Site, Protocol and App) may allow you to 464 + access third-party websites or other resources. To the extent provided 465 + by us, we provide access only as a convenience and are not responsible 466 + for the content, products or services on or available from those 467 + resources or links displayed on such websites. Users of the Services 468 + may provide access through User Content to third-party websites or 469 + other resources. To the extent provided by you, you hereby acknowledge 470 + and agree that, as between you and Bluesky, you bear full 471 + responsibility and liability in connection with such access by users 472 + of the Services. You acknowledge sole responsibility for and assume 473 + all risk arising from, your use of any third-party resources. You 474 + further acknowledge that we have no responsibility to remove, add, 475 + modify, or monitor User Content, including any access to third-party 476 + websites or other resources contained in User Content. 477 + </LI> 478 + <LI> 479 + <STRONG>Termination.</STRONG> We may terminate or suspend, in whole or 480 + in part, your access to and use of the Services, including suspending 481 + access to or terminating your account, at our sole discretion, at any 482 + time and without notice to you. You may request deletion of your 483 + account, which we will consider on a case-by-case basis, by emailing 484 + support@bsky.app. Upon any termination, discontinuation or 485 + cancellation of the Services or your account, the following Sections 486 + will survive: 2, 7(a), 7(b), 7(d), 7(e), 7(f), 8, 10, 13, 14, 15, 16, 487 + 17, 18 and 19. 488 + </LI> 489 + <LI> 490 + <P> 491 + <STRONG>Warranty Disclaimers.</STRONG> THE SERVICES ARE PROVIDED 492 + &ldquo;AS IS,&rdquo; WITHOUT WARRANTY OF ANY KIND. WITHOUT LIMITING 493 + THE FOREGOING, WE EXPLICITLY DISCLAIM ANY IMPLIED WARRANTIES OF 494 + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT 495 + AND NON-INFRINGEMENT, AND ANY WARRANTIES ARISING OUT OF COURSE OF 496 + DEALING OR USAGE OF TRADE. WE MAKE NO WARRANTY THAT THE SERVICES 497 + WILL MEET YOUR REQUIREMENTS OR BE AVAILABLE ON AN UNINTERRUPTED, 498 + SECURE, OR ERROR-FREE BASIS. WE MAKE NO WARRANTY REGARDING THE 499 + QUALITY, ACCURACY, TIMELINESS, TRUTHFULNESS, COMPLETENESS OR 500 + RELIABILITY OF ANY INFORMATION OR CONTENT ON THE SERVICES. &nbsp;WE 501 + ARE NOT RESPONSIBLE OR LIABLE FOR USER CONTENT, OR ANY 502 + COMMUNICATIONS, AND WE MAKE NO WARRANTY OR REPRESENTATION OF ANY 503 + KIND IN REGARD TO USER CONTENT. 504 + </P> 505 + <P> 506 + BLUESKY ASSUMES NO RESPONSIBILITY FOR ANY USER&rsquo;S OR THIRD 507 + PARTY&rsquo;S FAILURE TO COMPLY WITH ANY APPLICABLE LAWS AND 508 + REGULATIONS. WE EXPLICITLY DISCLAIM ALL LIABILITY FOR ANY ACT OR 509 + OMISSION OF ANY USER OR OTHER THIRD PARTY. WE DO NOT AND CANNOT 510 + CONTROL YOUR INTERACTION WITH ANY USER OR OTHER THIRD PARTY, AND WE 511 + EXPRESSLY DISCLAIM ANY LIABILITY ARISING FROM SUCH INTERACTION. 512 + </P> 513 + </LI> 514 + <LI> 515 + <STRONG>Indemnity.</STRONG> You will indemnify and hold harmless 516 + Bluesky and its officers, directors, employees and agents, from and 517 + against any claims, disputes, demands, liabilities, damages, losses, 518 + and costs and expenses, including, without limitation, reasonable 519 + legal and accounting fees arising out of or in any way connected with 520 + (a) your access to or use of the Services, (b) your User Content, or 521 + (c) your violation of these Terms. 522 + </LI> 523 + <LI> 524 + <STRONG>Limitation of Liability.</STRONG> 525 + <OL> 526 + <LI> 527 + For the purposes of this Section 16, &ldquo;Bluesky&rdquo;, 528 + &ldquo;we&rdquo;, or &ldquo;us&rdquo; shall include Bluesky, its 529 + subsidiaries, affiliates, investors, agents, and successors and 530 + assigns. 531 + </LI> 532 + <LI> 533 + TO THE MAXIMUM EXTENT PERMITTED BY LAW, NEITHER BLUESKY NOR ANY 534 + OTHER PARTY INVOLVED IN CREATING, PRODUCING, OR DELIVERING THE 535 + SERVICES WILL BE LIABLE FOR ANY INCIDENTAL, SPECIAL, EXEMPLARY OR 536 + CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOST PROFITS, LOST REVENUES, 537 + LOST SAVINGS, LOST BUSINESS OPPORTUNITY, LOSS OF DATA OR GOODWILL, 538 + SERVICE INTERRUPTION, COMPUTER DAMAGE OR SYSTEM FAILURE OR THE 539 + COST OF SUBSTITUTE SERVICES OF ANY KIND ARISING OUT OF OR IN 540 + CONNECTION WITH THESE TERMS OR FROM THE USE OF OR INABILITY TO USE 541 + THE SERVICES OR FOR ANY ERROR OR DEFECT IN THE SERVICES, WHETHER 542 + BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), PRODUCT 543 + LIABILITY OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT BLUESKY OR 544 + ANY OTHER PARTY HAS BEEN INFORMED OF THE POSSIBILITY OF SUCH 545 + DAMAGE, EVEN IF A LIMITED REMEDY SET FORTH HEREIN IS FOUND TO HAVE 546 + FAILED OF ITS ESSENTIAL PURPOSE. YOU ACKNOWLEDGE THAT BLUESKY 547 + SHALL NOT BE RESPONSIBLE OR LIABLE FOR CONTENT OR THE DEFAMATORY, 548 + OFFENSIVE, OR ILLEGAL CONDUCT OF ANY THIRD PARTY OR ANY THIRD 549 + PARTY&rsquo;S CONTENT (INCLUDING ANY USER CONTENT), WHETHER OR NOT 550 + SUCH CONTENT IS ACCESSED THROUGH THE SERVICES, AND THAT ANY RISK 551 + OF HARM OR DAMAGE FROM THE FOREGOING RESTS ENTIRELY WITH YOU. 552 + </LI> 553 + <LI> 554 + TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT 555 + WILL BLUESKY&rsquo;S TOTAL LIABILITY ARISING OUT OF OR IN 556 + CONNECTION WITH THESE TERMS OR FROM THE USE OF OR INABILITY TO USE 557 + THE SERVICES EXCEED TWENTY DOLLARS ($20). 558 + </LI> 559 + <LI> 560 + THE EXCLUSIONS AND LIMITATIONS OF DAMAGES SET FORTH ABOVE ARE 561 + FUNDAMENTAL ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN BLUESKY 562 + AND YOU. 563 + </LI> 564 + </OL> 565 + </LI> 566 + <LI> 567 + <STRONG>Governing Law and Forum Choice.</STRONG> These Terms and any 568 + action related thereto will be governed by the Federal Arbitration 569 + Act, federal arbitration law, and the laws of the State of Delaware, 570 + without regard to its conflict of laws provisions. Except as otherwise 571 + expressly set forth in Section 17 &ldquo;Dispute Resolution,&rdquo; 572 + the exclusive jurisdiction for all Disputes (defined below) that you 573 + and Bluesky are not required to arbitrate will be the state and 574 + federal courts located in Delaware, and you and Bluesky each waive any 575 + objection to jurisdiction and venue in such courts. 576 + </LI> 577 + <LI> 578 + <STRONG>Dispute Resolution.</STRONG> 579 + <OL> 580 + <LI> 581 + <EM>Mandatory Arbitration of Disputes</EM>. We each agree that any 582 + dispute, claim or controversy arising out of or relating to these 583 + Terms or the breach, termination, enforcement, interpretation or 584 + validity thereof or the use of the Services (collectively, 585 + &ldquo;Disputes&rdquo;) will be resolved solely by binding, 586 + individual arbitration and not in a class, representative or 587 + consolidated action or proceeding . You and Bluesky agree that the 588 + U.S. Federal Arbitration Act governs the interpretation and 589 + enforcement of these Terms, and that you and Bluesky are each 590 + waiving the right to a trial by jury or to participate in a class 591 + action. This arbitration provision shall survive termination of 592 + these Terms. 593 + </LI> 594 + <LI> 595 + <EM>Exceptions</EM>. As limited exceptions to Section 18 (a) 596 + above: (i)&nbsp;we both may seek to resolve a Dispute in small 597 + claims court if it qualifies; and (ii) we each retain the right to 598 + seek injunctive or other equitable relief from a court to prevent 599 + (or enjoin) the infringement or misappropriation of our 600 + intellectual property rights. 601 + </LI> 602 + <LI> 603 + <P> 604 + <EM>Conducting Arbitration and Arbitration Rules</EM>. The 605 + arbitration will be conducted by the American Arbitration 606 + Association (&ldquo;AAA&rdquo;) under its Consumer Arbitration 607 + Rules (the &ldquo;AAA Rules&rdquo;) then in effect, except as 608 + modified by these Terms. The AAA Rules are available at{' '} 609 + <A href="https://www.adr.org">www.adr.org</A> or by calling 610 + 1-800-778-7879. A party who wishes to start arbitration must 611 + submit a written Demand for Arbitration to AAA and give notice 612 + to the other party as specified in the AAA Rules. The AAA 613 + provides a form Demand for Arbitration at{' '} 614 + <A href="http://www.adr.org/aaa/ShowPDF?doc=ADRSTG_004175"> 615 + www.adr.org 616 + </A> 617 + . 618 + </P> 619 + <P> 620 + Any arbitration hearings will take place in the county (or 621 + parish) where you live, unless we both agree to a different 622 + location. The parties agree that the arbitrator shall have 623 + exclusive authority to decide all issues relating to the 624 + interpretation, applicability, enforceability and scope of this 625 + arbitration agreement. 626 + </P> 627 + </LI> 628 + <LI> 629 + <EM>Arbitration Costs</EM>. Payment of all filing, administration 630 + and arbitrator fees will be governed by the AAA Rules. If we 631 + prevail in arbitration we&rsquo;ll pay all of our attorneys&rsquo; 632 + fees and costs and won&rsquo;t seek to recover them from you. If 633 + you prevail in arbitration you will be entitled to an award of 634 + attorneys&rsquo; fees and expenses to the extent provided under 635 + applicable law. 636 + </LI> 637 + <LI> 638 + <EM>Injunctive and Declaratory Relief</EM>. Except as provided in 639 + Section 18(b) above, the arbitrator shall determine all issues of 640 + liability on the merits of any claim asserted by either party and 641 + may award declaratory or injunctive relief only in favor of the 642 + individual party seeking relief and only to the extent necessary 643 + to provide relief warranted by that party&rsquo;s individual 644 + claim. To the extent that you or we prevail on a claim and seek 645 + public injunctive relief (that is, injunctive relief that has the 646 + primary purpose and effect of prohibiting unlawful acts that 647 + threaten future injury to the public), the entitlement to and 648 + extent of such relief must be litigated in a civil court of 649 + competent jurisdiction and not in arbitration. The parties agree 650 + that litigation of any issues of public injunctive relief shall be 651 + stayed pending the outcome of the merits of any individual claims 652 + in arbitration. 653 + </LI> 654 + <LI> 655 + <EM>Class Action Waiver</EM>. YOU AND BLUESKY AGREE THAT EACH MAY 656 + BRING CLAIMS AGAINST THE OTHER ONLY IN YOUR OR ITS INDIVIDUAL 657 + CAPACITY, AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED 658 + CLASS OR REPRESENTATIVE PROCEEDING. Further, if the parties&rsquo; 659 + Dispute is resolved through arbitration, the arbitrator may not 660 + consolidate another person&rsquo;s claims with your claims, and 661 + may not otherwise preside over any form of a representative or 662 + class proceeding. If this specific provision is found to be 663 + unenforceable, then the entirety of this Dispute Resolution 664 + section shall be null and void. 665 + </LI> 666 + <LI> 667 + <EM>Severability</EM>. With the exception of any of the provisions 668 + in Section 18(f) of these Terms (&ldquo;Class Action 669 + Waiver&rdquo;), if an arbitrator or court of competent 670 + jurisdiction decides that any part of these Terms is invalid or 671 + unenforceable, the other parts of these Terms will still apply. 672 + </LI> 673 + </OL> 674 + </LI> 675 + <LI> 676 + <STRONG>General Terms.</STRONG> 677 + <OL> 678 + <LI> 679 + <EM>Entire Agreement</EM>. These Terms constitute the entire and 680 + exclusive understanding and agreement between Bluesky and you 681 + regarding the Services and Content, and these Terms supersede and 682 + replace all prior oral or written understandings or agreements 683 + between Bluesky and you regarding the Services and Content. If any 684 + provision of these Terms is held invalid or unenforceable by an 685 + arbitrator or a court of competent jurisdiction, that provision 686 + will be enforced to the maximum extent permissible and the other 687 + provisions of these Terms will remain in full force and effect. 688 + You may not assign or transfer these Terms, by operation of law or 689 + otherwise, without Bluesky&rsquo;s prior written consent. Any 690 + attempt by you to assign or transfer these Terms, without such 691 + consent, will be null. Bluesky may freely assign or transfer these 692 + Terms without restriction. Subject to the foregoing, these Terms 693 + will bind and inure to the benefit of the parties, their 694 + successors and permitted assigns. 695 + </LI> 696 + <LI> 697 + <EM>Notices</EM>. Any notices or other communications provided by 698 + Bluesky under these Terms will be given: (i)&nbsp;via email; or 699 + (ii)&nbsp;by posting to the Services. For notices made by email, 700 + the date of receipt will be deemed the date on which such notice 701 + is transmitted. 702 + </LI> 703 + <LI> 704 + <EM>Waiver of Rights</EM>. Bluesky&rsquo;s failure to enforce any 705 + right or provision of these Terms will not be considered a waiver 706 + of such right or provision. The waiver of any such right or 707 + provision will be effective only if in writing and signed by a 708 + duly authorized representative of Bluesky. Except as expressly set 709 + forth in these Terms, the exercise by either party of any of its 710 + remedies under these Terms will be without prejudice to its other 711 + remedies under these Terms or otherwise. 712 + </LI> 713 + </OL> 714 + </LI> 715 + <LI> 716 + <STRONG>Contact Information.</STRONG> If you have any questions about 717 + these Terms or the Services, please contact Bluesky at: 718 + support@bsky.app. 719 + </LI> 720 + </OL> 721 + </> 722 + ) 723 + }
+3
src/routes.ts
··· 15 15 Log: '/sys/log', 16 16 Support: '/support', 17 17 PrivacyPolicy: '/support/privacy', 18 + TermsOfService: '/support/tos', 19 + CommunityGuidelines: '/support/community-guidelines', 20 + CopyrightPolicy: '/support/copyright', 18 21 })
+61 -8
src/view/com/util/Html.tsx
··· 3 3 import {usePalette} from 'lib/hooks/usePalette' 4 4 import {Text} from './text/Text' 5 5 import {TextLink} from './Link' 6 + import {isDesktopWeb} from 'platform/detection' 6 7 7 8 /** 8 9 * These utilities are used to define long documents in an html-like ··· 54 55 ) 55 56 } 56 57 57 - export function UL({children}: React.PropsWithChildren<{}>) { 58 - return <View style={styles.ul}>{children}</View> 58 + export function UL({ 59 + children, 60 + isChild, 61 + }: React.PropsWithChildren<{isChild: boolean}>) { 62 + return ( 63 + <View style={[styles.ul, isChild && styles.ulChild]}> 64 + {markChildProps(children)} 65 + </View> 66 + ) 59 67 } 60 68 61 - export function OL({children}: React.PropsWithChildren<{}>) { 62 - return <View style={styles.ol}>{children}</View> 69 + export function OL({ 70 + children, 71 + isChild, 72 + }: React.PropsWithChildren<{isChild: boolean}>) { 73 + return ( 74 + <View style={[styles.ol, isChild && styles.olChild]}> 75 + {markChildProps(children)} 76 + </View> 77 + ) 63 78 } 64 79 65 80 export function LI({ ··· 71 86 <View style={styles.li}> 72 87 <Text style={[pal.text, styles.liBullet]}>{value || <>&bull;</>}</Text> 73 88 <Text type="md" style={[pal.text, styles.liText]}> 74 - {children} 89 + {markChildProps(children)} 75 90 </Text> 76 91 </View> 77 92 ) ··· 89 104 ) 90 105 } 91 106 107 + export function STRONG({children}: React.PropsWithChildren<{}>) { 108 + const pal = usePalette('default') 109 + return ( 110 + <Text type="md-medium" style={[pal.text]}> 111 + {children} 112 + </Text> 113 + ) 114 + } 115 + 116 + export function EM({children}: React.PropsWithChildren<{}>) { 117 + const pal = usePalette('default') 118 + return ( 119 + <Text type="md" style={[pal.text, styles.em]}> 120 + {children} 121 + </Text> 122 + ) 123 + } 124 + 125 + function markChildProps(children) { 126 + return React.Children.map(children, child => { 127 + if (React.isValidElement(child)) { 128 + return React.cloneElement(child, {isChild: true}) 129 + } 130 + return child 131 + }) 132 + } 133 + 92 134 const styles = StyleSheet.create({ 93 135 h1: { 94 136 marginTop: 20, ··· 112 154 }, 113 155 ul: { 114 156 marginBottom: 10, 115 - paddingLeft: 18, 157 + paddingLeft: isDesktopWeb ? 18 : 4, 158 + }, 159 + ulChild: { 160 + paddingTop: 10, 161 + marginBottom: 0, 116 162 }, 117 163 ol: { 118 164 marginBottom: 10, 119 - paddingLeft: 18, 165 + paddingLeft: isDesktopWeb ? 18 : 4, 166 + }, 167 + olChild: { 168 + paddingTop: 10, 169 + marginBottom: 0, 120 170 }, 121 171 li: { 122 172 flexDirection: 'row', 123 - paddingRight: 10, 173 + paddingRight: 20, 124 174 marginBottom: 10, 125 175 }, 126 176 liBullet: { ··· 129 179 liText: {}, 130 180 a: { 131 181 marginBottom: 10, 182 + }, 183 + em: { 184 + fontStyle: 'italic', 132 185 }, 133 186 })
+41
src/view/screens/CommunityGuidelines.tsx
··· 1 + import React from 'react' 2 + import {View} from 'react-native' 3 + import {useFocusEffect} from '@react-navigation/native' 4 + import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' 5 + import {ViewHeader} from '../com/util/ViewHeader' 6 + import {useStores} from 'state/index' 7 + import {ScrollView} from 'view/com/util/Views' 8 + import {Text} from 'view/com/util/text/Text' 9 + import {usePalette} from 'lib/hooks/usePalette' 10 + import {s} from 'lib/styles' 11 + import Html from '../../locale/en/community-guidelines' 12 + 13 + type Props = NativeStackScreenProps< 14 + CommonNavigatorParams, 15 + 'CommunityGuidelines' 16 + > 17 + export const CommunityGuidelinesScreen = (_props: Props) => { 18 + const pal = usePalette('default') 19 + const store = useStores() 20 + 21 + useFocusEffect( 22 + React.useCallback(() => { 23 + store.shell.setMinimalShellMode(false) 24 + }, [store]), 25 + ) 26 + 27 + return ( 28 + <View> 29 + <ViewHeader title="Community Guidelines" /> 30 + <ScrollView style={[s.hContentRegion, pal.view]}> 31 + <View style={[s.p20]}> 32 + <Text type="title-xl" style={[pal.text, s.bold, s.pb20]}> 33 + Community Guidelines 34 + </Text> 35 + <Html /> 36 + </View> 37 + <View style={s.footerSpacer} /> 38 + </ScrollView> 39 + </View> 40 + ) 41 + }
+38
src/view/screens/CopyrightPolicy.tsx
··· 1 + import React from 'react' 2 + import {View} from 'react-native' 3 + import {useFocusEffect} from '@react-navigation/native' 4 + import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' 5 + import {ViewHeader} from '../com/util/ViewHeader' 6 + import {useStores} from 'state/index' 7 + import {ScrollView} from 'view/com/util/Views' 8 + import {Text} from 'view/com/util/text/Text' 9 + import {usePalette} from 'lib/hooks/usePalette' 10 + import {s} from 'lib/styles' 11 + import Html from '../../locale/en/copyright-policy' 12 + 13 + type Props = NativeStackScreenProps<CommonNavigatorParams, 'CopyrightPolicy'> 14 + export const CopyrightPolicyScreen = (_props: Props) => { 15 + const pal = usePalette('default') 16 + const store = useStores() 17 + 18 + useFocusEffect( 19 + React.useCallback(() => { 20 + store.shell.setMinimalShellMode(false) 21 + }, [store]), 22 + ) 23 + 24 + return ( 25 + <View> 26 + <ViewHeader title="Copyright Policy" /> 27 + <ScrollView style={[s.hContentRegion, pal.view]}> 28 + <View style={[s.p20]}> 29 + <Text type="title-xl" style={[pal.text, s.bold, s.pb20]}> 30 + Copyright Policy 31 + </Text> 32 + <Html /> 33 + </View> 34 + <View style={s.footerSpacer} /> 35 + </ScrollView> 36 + </View> 37 + ) 38 + }
+38
src/view/screens/TermsOfService.tsx
··· 1 + import React from 'react' 2 + import {View} from 'react-native' 3 + import {useFocusEffect} from '@react-navigation/native' 4 + import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' 5 + import {ViewHeader} from '../com/util/ViewHeader' 6 + import {useStores} from 'state/index' 7 + import {ScrollView} from 'view/com/util/Views' 8 + import {Text} from 'view/com/util/text/Text' 9 + import {usePalette} from 'lib/hooks/usePalette' 10 + import {s} from 'lib/styles' 11 + import Html from '../../locale/en/terms-of-service' 12 + 13 + type Props = NativeStackScreenProps<CommonNavigatorParams, 'TermsOfService'> 14 + export const TermsOfServiceScreen = (_props: Props) => { 15 + const pal = usePalette('default') 16 + const store = useStores() 17 + 18 + useFocusEffect( 19 + React.useCallback(() => { 20 + store.shell.setMinimalShellMode(false) 21 + }, [store]), 22 + ) 23 + 24 + return ( 25 + <View> 26 + <ViewHeader title="Terms of Service" /> 27 + <ScrollView style={[s.hContentRegion, pal.view]}> 28 + <View style={[s.p20]}> 29 + <Text type="title-xl" style={[pal.text, s.bold, s.pb20]}> 30 + Terms of Service 31 + </Text> 32 + <Html /> 33 + </View> 34 + <View style={s.footerSpacer} /> 35 + </ScrollView> 36 + </View> 37 + ) 38 + }
+9
src/view/shell/desktop/RightNav.tsx
··· 38 38 href="/support/privacy" 39 39 text="Privacy Policy" 40 40 /> 41 + <Text type="md" style={pal.textLight}> 42 + &nbsp;&middot;&nbsp; 43 + </Text> 44 + <TextLink 45 + type="md" 46 + style={pal.link} 47 + href="/support/tos" 48 + text="Terms" 49 + /> 41 50 </View> 42 51 </View> 43 52 <InviteCodes />