diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Navigation.tsx | 9 | ||||
-rw-r--r-- | src/lib/routes/types.ts | 3 | ||||
-rw-r--r-- | src/locale/en/community-guidelines.tsx | 154 | ||||
-rw-r--r-- | src/locale/en/copyright-policy.tsx | 88 | ||||
-rw-r--r-- | src/locale/en/terms-of-service.tsx | 723 | ||||
-rw-r--r-- | src/routes.ts | 3 | ||||
-rw-r--r-- | src/view/com/util/Html.tsx | 69 | ||||
-rw-r--r-- | src/view/screens/CommunityGuidelines.tsx | 41 | ||||
-rw-r--r-- | src/view/screens/CopyrightPolicy.tsx | 38 | ||||
-rw-r--r-- | src/view/screens/TermsOfService.tsx | 38 | ||||
-rw-r--r-- | src/view/shell/desktop/RightNav.tsx | 9 |
11 files changed, 1167 insertions, 8 deletions
diff --git a/src/Navigation.tsx b/src/Navigation.tsx index a1dbc4af1..c10a9c249 100644 --- a/src/Navigation.tsx +++ b/src/Navigation.tsx @@ -37,6 +37,9 @@ import {DebugScreen} from './view/screens/Debug' import {LogScreen} from './view/screens/Log' import {SupportScreen} from './view/screens/Support' import {PrivacyPolicyScreen} from './view/screens/PrivacyPolicy' +import {TermsOfServiceScreen} from './view/screens/TermsOfService' +import {CommunityGuidelinesScreen} from './view/screens/CommunityGuidelines' +import {CopyrightPolicyScreen} from './view/screens/CopyrightPolicy' const navigationRef = createNavigationContainerRef<AllNavigatorParams>() @@ -68,6 +71,12 @@ function commonScreens(Stack: typeof HomeTab) { <Stack.Screen name="Log" component={LogScreen} /> <Stack.Screen name="Support" component={SupportScreen} /> <Stack.Screen name="PrivacyPolicy" component={PrivacyPolicyScreen} /> + <Stack.Screen name="TermsOfService" component={TermsOfServiceScreen} /> + <Stack.Screen + name="CommunityGuidelines" + component={CommunityGuidelinesScreen} + /> + <Stack.Screen name="CopyrightPolicy" component={CopyrightPolicyScreen} /> </> ) } diff --git a/src/lib/routes/types.ts b/src/lib/routes/types.ts index 59d94efa8..48edcc956 100644 --- a/src/lib/routes/types.ts +++ b/src/lib/routes/types.ts @@ -16,6 +16,9 @@ export type CommonNavigatorParams = { Log: undefined Support: undefined PrivacyPolicy: undefined + TermsOfService: undefined + CommunityGuidelines: undefined + CopyrightPolicy: undefined } export type HomeTabNavigatorParams = CommonNavigatorParams & { diff --git a/src/locale/en/community-guidelines.tsx b/src/locale/en/community-guidelines.tsx new file mode 100644 index 000000000..5a8069998 --- /dev/null +++ b/src/locale/en/community-guidelines.tsx @@ -0,0 +1,154 @@ +import React from 'react' +import {H3, H4, P, UL, LI, A, EM, OL} from 'view/com/util/Html' + +export default function () { + return ( + <> + <H4>Last Updated: 2023/04/06</H4> + <P> + The Bluesky app is built on a decentralized social networking protocol, + the AT Protocol (atproto). Atproto is an open protocol that supports + many different kinds of services. Our mission for the Bluesky app is to + foster a vibrant and evolving community that respects individual + preferences and adapts to the changing needs of our users. With this in + mind, we have established the following goals for our community + guidelines: + </P> + <OL> + <LI> + Empower user choice: We strive to provide users with the ability to + select self-governing services on the AT protocol that align with + their personal preferences and values. This includes making it easy + for others to run their own services, and for users to migrate between + services. + </LI> + <LI> + Cultivate a welcoming environment: Our aim is to create a safe and + friendly space on bsky.social, the server we run, where new users feel + welcome and supported, and where we ourselves enjoy participating. To + help achieve this vision, we have implemented moderation systems + guided by the following policies. + </LI> + <LI> + Maintain up-to-date guidelines: As our user base grows and changes, + our community guidelines must evolve as well. We will regularly review + and update these guidelines in response to feedback from our users, + emerging trends, and changing circumstances, and will strive to + maintain transparency about any changes to our policies. + </LI> + </OL> + <P> + In the following sections, we will dive into the specific policies that + make up our server and community guidelines. + </P> + <H3>Server Guidelines</H3> + <P> + Our server guidelines outline the content policies we have established + for the material hosted on our infrastructure at bsky.social. These + policies have been selected to minimize potential risks and costs + associated with hosting certain types of content, since we have limited + developer resources and want to focus them on improving the AT Protocol. + </P> + <P> + It is important to note that other servers within the atproto network + may have different server-level rules. If you find that our policies do + not align with your preferences, we encourage you to explore alternative + servers or create your own. If you initially choose to use bsky.social + but later decide that our policies do not suit your needs, you will soon + be able to seamlessly migrate your account between servers. + </P> + <P> + <EM>No illegal content or transactions</EM> + </P> + <UL> + <LI> + Don’t share, promote, or engage in any illegal activities or + transactions on our platform. This includes, but is not limited to, + sharing copyrighted material without permission, distributing illicit + substances, or participating in any form of illegal trade. + </LI> + </UL> + <P> + <EM>Don’t break our infrastructure</EM> + </P> + <UL> + <LI> + If you find a vulnerability, please report it to us at + support@bsky.app, and don’t use it to exploit or take down our + infrastructure. + </LI> + </UL> + <H3>Community Guidelines</H3> + <P> + Our community guidelines are designed to promote a safe and enjoyable + experience for all users on our server. These policies serve as an + additional layer on top of our server-level guidelines and are intended + to foster a positive and respectful environment. For some community + guidelines, we plan to offer content filters that you can adjust + according to your preferences, allowing you to view content that has + been initially filtered out. Please be aware that these rules will + evolve over time as we continually work to cultivate a healthy and + thriving community. + </P> + <P> + <EM>Be polite and respectful</EM> + </P> + <UL> + <LI> + Don’t harass, use slurs, threaten violence, or attack people + </LI> + </UL> + <P> + <EM>Don’t spam</EM> + </P> + <UL> + <LI> + Don’t repeatedly post the same message, or excessively promote + anything + </LI> + </UL> + <P> + <EM>Don’t abuse the reporting system</EM> + </P> + <UL> + <LI> + Don’t use the reporting tool to spam, harass users, or submit + unfounded or trivial complaints. The reporting system is in place to + address genuine concerns and maintain the safety and integrity of our + community, so please use it responsibly. + </LI> + </UL> + <H3>Enforcement</H3> + <P> + Our goal is to provide a flexible environment that balances the freedom + and safety of our users. Violations of server or community guidelines + may result in a flag, a warning, an account suspension until you migrate + away from our service, or a permanent account suspension and ban from + our services.{' '} + </P> + <P>References:</P> + <P> + Twitter:{' '} + <A href="https://help.twitter.com/en/rules-and-policies/twitter-rules"> + https://help.twitter.com/en/rules-and-policies/twitter-rules + </A> + </P> + <P> + Reddit:{' '} + <A href="https://www.redditinc.com/policies/content-policy"> + https://www.redditinc.com/policies/content-policy + </A> + </P> + <P> + Discord:{' '} + <A href="https://discord.com/guidelines"> + https://discord.com/guidelines + </A> + </P> + <P> + Discord TOS:{' '} + <A href="https://discord.com/terms">https://discord.com/terms</A> + </P> + </> + ) +} diff --git a/src/locale/en/copyright-policy.tsx b/src/locale/en/copyright-policy.tsx new file mode 100644 index 000000000..3e995b5d0 --- /dev/null +++ b/src/locale/en/copyright-policy.tsx @@ -0,0 +1,88 @@ +import React from 'react' +import {H3, H4, P, UL, LI, A} from 'view/com/util/Html' + +export default function () { + return ( + <> + <H4>Last Updated: 2023/04/06</H4> + <P>Notification of Copyright Infringement</P> + <P> + Bluesky, PBLLC d.b.a. Bluesky (“Bluesky”) respects the + intellectual property rights of others and expects its users to do the + same. + </P> + <P> + It is Bluesky’s policy, in appropriate circumstances and at its + discretion, to disable the accounts of users who repeatedly infringe the + copyrights of others. + </P> + <P> + In accordance with the Digital Millennium Copyright Act of 1998, the + text of which may be found on the U.S. Copyright Office website at{' '} + <A href="http://www.copyright.gov/legislation/dmca.pdf"> + http://www.copyright.gov/legislation/dmca.pdf + </A> + , Bluesky will respond expeditiously to claims of copyright infringement + committed using the Bluesky website, app, or other Bluesky owned or + controlled online networ k services accessible through a mobile + device or other type of device (the “Sites”) that are + reported to Bluesky’s Designated Copyright Agent, identified in + the sample notice below. + </P> + <P> + If you are a copyright owner, or are authorized to act on behalf of one, + or authorized to act under any exclusive right under copyright, please + report alleged copyright infringements taking place on or through the + Sites by completing the following DMCA Notice of Alleged Infringement + and delivering it to Bluesky’s Designated Copyright Agent. Upon + receipt of the Notice as described below, Bluesky will take whatever + action, in its sole discretion, it deems appropriate, including removal + of the challenged material from the Sites. + </P> + <H3>DMCA Notice of Alleged Infringement (“Notice”)</H3> + <P> + 1. Identify the copyrighted work that you claim has been infringed, or + – if multiple copyrighted works are covered by this Notice – + you may provide a representative list of the copyrighted works that you + claim have been infringed. + </P> + <P> + 2. Identify the material that you claim is infringing (or to be the + subject of infringing activity) and that is to be removed or access to + which is to be disabled, and information reasonably sufficient to permit + us to locate the material, including at a minimum, if applicable, the + URL of the link shown on the Site(s) where such material may be found. + </P> + <P> + 3. Provide your mailing address, telephone number, and email address. + </P> + <P> + 4. Include both of the following statements in the body of the Notice: + </P> + <UL> + <LI> + “I hereby state that I have a good faith belief that the + disputed use of the copyrighted material is not authorized by the + copyright owner, its agent, or the law (e.g., as a fair use).” + </LI> + <LI> + “I hereby state that the information in this Notice is accurate + and, under penalty of perjury, that I am the owner, or authorized to + act on behalf of the owner, of the copyright or of an exclusive right + under the copyright that is allegedly infringed.” + </LI> + </UL> + <P> + 5. Provide your full legal name and your electronic or physical + signature. + </P> + <P> + Deliver this Notice, with all items completed, to Bluesky’s + Designated Copyright Agent: + </P> + <P>Copyright Agent</P> + <P>c/o Bluesky, PBLLC</P> + <P>support@bsky.app</P> + </> + ) +} diff --git a/src/locale/en/terms-of-service.tsx b/src/locale/en/terms-of-service.tsx new file mode 100644 index 000000000..8219cae21 --- /dev/null +++ b/src/locale/en/terms-of-service.tsx @@ -0,0 +1,723 @@ +import React from 'react' +import {H4, P, OL, LI, A, STRONG, EM, UL} from 'view/com/util/Html' + +export default function () { + return ( + <> + <H4>Last Updated: 2023/04/06</H4> + <P> + Welcome to the Bluesky, PBLLC d.b.a. Bluesky (“Bluesky”, + “we”, or “us”) website located at{' '} + <A href="https://bsky.app/">bsky.social</A> (“Site”), the + Authenticated Transfer social protocol (“Protocol”) and our + mobile application (“App”). Please read these Terms of + Service (the “Terms”) and our{' '} + <A href="https://bsky.app/support/privacy">Privacy Policy</A>{' '} + (“Privacy Policy”) carefully because they govern your use of + our Site, Protocol, App, and our content accessible therein. In + addition, please read the{' '} + <A href="https://bsky.app/support/community-guidelines"> + Bluesky Community Guidelines + </A>{' '} + (the “Bluesky Community Guidelines”), which are incorporated + by reference and included in the Terms. To make these Terms easier to + read, our Site, Protocol, and App, and our content and services provided + therein, are collectively called the “Services.” The + Services are not official products and have not been commercially or + publicly released by Bluesky. + </P> + <P> + IMPORTANT NOTICE REGARDING ARBITRATION: WHEN YOU AGREE TO THESE TERMS + YOU ARE AGREEING (WITH LIMITED EXCEPTION) TO RESOLVE ANY DISPUTE BETWEEN + YOU AND BLUESKY THROUGH BINDING, INDIVIDUAL ARBITRATION RATHER THAN IN + COURT. PLEASE REVIEW CAREFULLY SECTION 18 “DISPUTE + RESOLUTION” BELOW FOR DETAILS REGARDING ARBITRATION. HOWEVER, IF + YOU ARE A RESIDENT OF A JURISDICTION WHERE APPLICABLE LAW PROHIBITS + ARBITRATION OF DISPUTES, THE AGREEMENT TO ARBITRATE IN SECTION ‎18 + WILL NOT APPLY TO YOU BUT THE PROVISIONS OF SECTION ‎17 + “GOVERNING LAW AND FORUM CHOICE” WILL APPLY INSTEAD. + </P> + <OL> + <LI> + <STRONG>Agreement to Terms.</STRONG> By using our Services, you agree + to be bound by these Terms. If you don’t agree to be bound by + these Terms, do not use the Services. If you are accessing and using + the Services on behalf of a company (such as your employer) or other + legal entity, you represent and warrant that you have the authority to + bind that company or other legal entity to these Terms. In that case, + “you” and “your” will refer to that company or + other legal entity. + </LI> + <LI> + <STRONG>Acknowledgment of Beta Services.</STRONG> You acknowledge and + agree that: (a) the Services are not official products and have not + been commercially or publicly released by Bluesky; (b) the Services + may not operate properly, be in final form or be fully functional; (c) + the Services may contain errors, design flaws or other problems; (d) + it may not be possible to make the Services fully functional; (e) the + information obtained using the Services may not be accurate; (f) use + of the Services may result in unexpected results, loss of data or + communications, project delays or other unpredictable damage or loss; + (g) Bluesky is under no obligation to release a commercial or public + version of the Services; and (h) Bluesky has the right to unilaterally + to abandon development of the Services, at any time and without any + obligation or liability to you. + </LI> + <LI> + <STRONG>Privacy Policy.</STRONG> Please refer to our{' '} + <A href="https://bsky.app/support/privacy">Privacy Policy</A> for + information on how we collect, use and share your information. You + acknowledge and agree that your use of the Services is subject to our + Privacy Policy. + </LI> + <LI> + <STRONG>Changes to these Terms or the Services.</STRONG> We may update + these Terms from time to time at our sole discretion. If we do, + we’ll let you know by posting the updated Terms on the Site, + Protocol or the App and may also send other communications. It’s + important that you review these Terms whenever we update them or you + use the Services. If you continue to use the Services after we have + posted updated Terms it means that you accept and agree to the + changes. If you don’t agree to be bound by the changes, you may + not use the Services anymore. Because our Services are evolving over + time we may change or discontinue all or any part of the Services, at + any time and without notice, at our sole discretion. We may add, + remove, suspend or alter access to any content available through or on + the Services at any time and make no guarantee as to the availability + or minimum amount of specific content.{' '} + </LI> + <LI> + <STRONG>Who May Use the Services?</STRONG> + <OL> + <LI> + <EM>Eligibility</EM>. To use the Services, you must be at least 13 + years of age and not otherwise barred from using the Services + under applicable law. If you are over 13 years of age but under + the age of majority in your respective jurisdiction, you hereby + represent and warrant that your parent or legal guardian has read + these Terms and accepts them on your behalf. Parents and legal + guardians are responsible for the acts of their minor children + when using the Services, whether or not the parent or guardian has + authorized such acts. + </LI> + <LI> + <EM>Registration and Your Information</EM>. If you want to use + certain features of the Services you’ll have to create an + account (“Account”) via the Services. + </LI> + <LI> + <EM>Accuracy of Account Information</EM>. It’s important + that you provide us with accurate, complete and current + information for your Account and you agree to keep this + information up-to-date. If you don’t, we might have to + suspend or terminate your Account. You agree that you won’t + disclose your Account password to anyone and you’ll notify + us immediately of any unauthorized use of your Account. + You’re responsible for all activities that occur under your + Account, including, without limitation, the posting of User + Content (as defined below), and any communications or other + contact you have with other users of the Services, whether or not + you know about them. We may take actions we deem reasonably + necessary to prevent fraud and abuse, including placing + restrictions on user accounts or on the amount of content that can + be accessed from the Services at any one time. + </LI> + </OL> + </LI> + <LI> + <STRONG>Feedback.</STRONG> We welcome feedback, comments and + suggestions for improvements to the Services (“Feedback”). + You can submit Feedback by posting in the App or emailing us at + support@bsky.app. You grant us a non-exclusive, transferable, + worldwide, perpetual, irrevocable, fully-paid, royalty-free license, + with the right to sublicense, under any and all intellectual property + rights that you own or control, to use, copy, modify, create + derivative works based upon and otherwise exploit the Feedback for any + purpose. + </LI> + <LI> + <STRONG>Content Ownership, Responsibility and Removal.</STRONG> + <OL> + <LI> + <EM>Definitions</EM>. For purposes of these Terms: (i){' '} + <STRONG>“Content”</STRONG> means text, graphics, + images, music, software, audio, video, works of authorship of any + kind, and information or other materials that are posted, + generated, provided or otherwise made available through the + Services; and (ii) <STRONG>“User Content”</STRONG>{' '} + means any Content that Account holders (including you) provide or + make available through the Services. User Content also includes, + without limitation, any communications or content that you share + with another user of the Services such as comments on other + users’ User Content or information you provide or make + available through the Services. Content includes, without + limitation, User Content. + </LI> + <LI> + <EM>Our Content Ownership</EM>. Except for any licensed rights + granted under these Terms, Bluesky does not claim any ownership + rights in any User Content and nothing in these Terms will be + deemed to restrict any rights that you may have to use and exploit + your User Content. Subject to the foregoing, Bluesky and its + licensors exclusively own all right, title and interest in and to + the Services and Content, including all associated intellectual + property rights and all features, trademarks, trade names, service + marks, trade dress, and the look and feel of the Services. You + acknowledge that the Services and Content are protected by + copyright, trademark, and other laws of the United States and + foreign countries. You agree not to remove, alter or obscure any + copyright, trademark, service mark or other proprietary rights + notices incorporated in or accompanying the Services or Content. + </LI> + <LI> + <EM>Rights in Content Granted by Bluesky</EM>. Subject to your + compliance with these Terms, Bluesky grants to you a limited, + non-exclusive, non-transferable license, with no right to + sublicense, to download, view, copy, display and print the Content + solely in connection with your permitted use of the Services and + solely for your personal and non-commercial purposes. Other than + the right to use the Services as explicitly described in these + Terms for your personal, limited use, no other rights are granted + to you under these Terms.{' '} + </LI> + <LI> + <EM>Rights in User Content Granted by You to Us</EM>. By making + any User Content available through the Services, you hereby grant + to Bluesky and its subsidiaries, affiliates, licensee, successors, + and assigns (the “Bluesky Parties”) an irrevocable, + non-exclusive, perpetual, transferable, worldwide, royalty-free + license, with the right to sublicense (through multiple tiers of + sub-licensing), to use, copy, modify, adapt, crop, edit, creative + derivative works, distribute, publicly display, publicly perform + and otherwise exploit in any media now known or hereafter devised, + your User Content, in whole or in part, in connection with (i) + providing the Services and Content to you and to others; (ii) + promote and market Bluesky and our Services, including without + limitation through Bluesky’s owned, operated, and/or branded + social media channels. For example, Bluesky may create + compilations of Content made available by Account holders + (including your User Content), and/or use User Content or such + compilations to promote the App through Bluesky’s operated, + and/or branded social media channels, without further payment or + consideration by Bluesky. However, without your prior consent, + Bluesky will not use your User Content in any Content that is + sponsored by a third party. + </LI> + <LI> + <EM>Name, Likeness, Other Personal Rights</EM>. By submitting User + Content in which you may appear, including without limitation your + photograph, you hereby grant to (i) Bluesky and the Bluesky + Parties and (ii) other Account holders, an irrevocable, + non-exclusive, perpetual, transferable, worldwide, royalty-free, + unlimited license to use your name, image, likeness, or other + information or materials supplied by you, including any third + party materials as they appear in such User Content, consistent + with the rights granted by you in this Section 7. + </LI> + <LI> + <EM>Your Responsibility for User Content</EM>. You are solely + responsible for all of your User Content. You represent and + warrant that your User Content is original, that you own your User + Content or you have all rights that are necessary to grant us and + the Bluesky Parties the license rights in your User Content under + these Terms. This includes the rights to the name, likeness or + other publicity rights of any other party appearing in your User + Content. You also represent and warrant that neither your User + Content, nor your use and provision of your User Content to be + made available through the Services, nor any exercise of any + rights granted by you in such User Content will (i) conflict with + any rights or commitments granted by you to any other party; (ii) + infringe, misappropriate or violate a third party’s + intellectual property rights, or rights of publicity or privacy, + or (iii) result in the violation of any applicable law or + regulation. You represent and warrant that all of your User + Content and your activities in connection with the Services will, + at all times, comply with (i) these Terms; (ii) all applicable + laws, rules, and regulations; and (iii) any other guidelines or + requirements that we may make available to you from time to time. + </LI> + <LI> + <EM>Removal of User Content</EM>. We have the right, in our sole + discretion, to remove any User Content. You can remove your User + Content by specifically deleting it. However, in certain + instances, some of your User Content (such as posts or comments + you make) may not be completely removed and copies of your User + Content may continue to exist on the Services. We are not + responsible or liable for the removal or deletion of (or the + failure to remove or delete) any of your User Content. Except as + expressly stated herein, you acknowledge and agree that we have no + obligation to provide, monitor, edit, upload, or remove any of + your User Content, although we have the right to do so. + </LI> + </OL> + </LI> + <LI> + <STRONG>Respecting Others’ User Content</STRONG>. Subject to our + rights under Section 7, you acknowledge that all User Content and any + content related thereto are the property of the respective user that + makes the User Content available through the Services or, if made + explicit on the Services, Bluesky. You acknowledge and agree that + Bluesky is not responsible or liable for your User Content or any + direct message through the Services between any user of the Services + and another user of the Services (“Communications”), + including you. + </LI> + <LI> + <STRONG>Rights and Terms for Apps.</STRONG> + <OL> + <LI> + <EM>Rights in App Granted by Bluesky</EM>. Subject to your + compliance with these Terms, Bluesky grants to you a limited, + non-exclusive, non-transferable license, with no right to + sublicense, to download and install the App on a mobile device + that you own or control and to run the App solely for your own + personal non-commercial purposes. Except as expressly permitted in + these Terms, you may not: (i) copy, modify or create + derivative works based on the App; (ii) sublicense, lease, + lend or rent the App to any third party; (iii) decompile or + disassemble the App; or (iv) make the functionality of the + App available to multiple users through any means. Bluesky + reserves all rights in and to the App not expressly granted to you + under these Terms. Certain portions of the App may be subject to + an open source license agreement, as expressly designated within + the App or on the Site. Such license will govern the use of such + portions of the App to the extent that such license agreement + conflicts with or is inconsistent with this Section 9(a) (for + example, if the license grants broader use rights). + </LI> + <LI> + <EM>Accessing App from App Store</EM>. The following terms apply + to any App accessed through or downloaded from any app store or + distribution platform (like the Apple App Store) where the App may + now or in the future be made available (each, an “App + Provider”). You acknowledge and agree that: + <UL> + <LI> + These Terms are concluded between you and Bluesky, and not + with the App Provider, and Bluesky (not the App Provider), is + solely responsible for the App. + </LI> + <LI> + The App Provider has no obligation to furnish any maintenance + and support services with respect to the App. + </LI> + <LI> + In the event of any failure of the App to conform to any + applicable warranty, you may notify the App Provider and, to + the maximum extent permitted by applicable law, the App + Provider will have no other warranty obligation whatsoever + with respect to the App. Any other claims, losses, + liabilities, damages, costs or expenses attributable to any + failure to conform to any warranty will be the sole + responsibility of Bluesky. + </LI> + <LI> + The App Provider is not responsible for addressing any claims + you have or any claims of any third party relating to the App + or your possession and use of the App, including, but not + limited to: (i) product liability claims; (ii) any claim + that the App fails to conform to any applicable legal or + regulatory requirement; and (iii) claims arising under + consumer protection or similar legislation. + </LI> + <LI> + In the event of any third party claim that the App or your + possession and use of that App infringes that third + party’s intellectual property rights, Bluesky will be + solely responsible for the investigation, defense, settlement + and discharge of any such intellectual property infringement + claim to the extent required by these Terms. + </LI> + <LI> + The App Provider, and its subsidiaries, are third-party + beneficiaries of these Terms as related to your license to the + App, and upon your acceptance of these Terms, the App Provider + will have the right (and will be deemed to have accepted the + right) to enforce these Terms against you as a third-party + beneficiary thereof. + </LI> + <LI> + You represent and warrant that (i) you are not located in a + country that is subject to a U.S. Government embargo, or that + has been designated by the U.S. Government as a + terrorist-supporting country; and (ii) you are not listed on + any U.S. Government list of prohibited or restricted parties. + </LI> + <LI> + You must also comply with all applicable third-party terms of + service when using the App. + </LI> + </UL> + </LI> + </OL> + </LI> + <LI> + <STRONG> + General Prohibitions and Bluesky’s Enforcement Rights + </STRONG> + . You agree not to do any of the following: + <OL> + <LI> + Post, upload, publish, submit or transmit any content that: + (i) infringes, misappropriates or violates a third + party’s patent, copyright, trademark, trade secret, moral + rights or other intellectual property rights, or rights of + publicity or privacy; or (ii) violates any applicable law or + regulation or would give rise to civil liability; + </LI> + <LI> + Use, display, mirror or frame the Services, Bluesky’s name, + any Bluesky trademark, logo or other proprietary information, + without Bluesky’s express written consent; + </LI> + <LI> + Access, tamper with, or use non-public areas of the Services; + </LI> + <LI> + Attempt to probe, scan or test the vulnerability of any Bluesky + system or network or breach any security or authentication + measures without reporting such vulnerability or breach to + support@bsky.app, except as part of community testing initiatives + authorized by Bluesky; + </LI> + <LI> + Avoid, bypass, remove, deactivate, impair, descramble or otherwise + circumvent any technological measure implemented by Bluesky or any + of Bluesky’s providers or any other third party (including + another user) to protect the Services, including any service + protection or usage limits; + </LI> + <LI> + Attempt to access or search the Services or download content from + the Services using any engine, software, tool, agent, device or + mechanism (including spiders, robots, crawlers, data mining tools + or the like) that imposes unreasonable burdens on the Services or + that we otherwise deem abusive or harmful; + </LI> + <LI>Send any junk mail or spam;</LI> + <LI> + Use any meta tags or other hidden text or metadata utilizing a + Bluesky trademark, logo URL or product name without + Bluesky’s express written consent; + </LI> + <LI> + Use the Services, or any portion thereof, in any manner not + permitted by these Terms; + </LI> + <LI> + Interfere with, or attempt to interfere with, the access of any + user, host or network, including, without limitation, sending a + virus, overloading, flooding, spamming, or mail-bombing the + Services; + </LI> + <LI> + Collect or store any personally identifiable information from the + Services from other users of the Services without their + express permission; + </LI> + <LI> + Impersonate or misrepresent your affiliation with any person or + entity, claim a false affiliation, or misrepresent the source or + identity of content used through the Services; + </LI> + <LI> + You agree not to provide any information that is intended to + misinform, misdirect, mislead, or otherwise deceive any users of + the Services or any other third party; + </LI> + <LI>Violate any applicable law or regulation;</LI> + <LI> + Commercialize any User Content not in accordance with these Terms; + or + </LI> + <LI> + Directly or indirectly induce others to do any of the above. + </LI> + </OL> + <P> + Bluesky is not obligated to monitor access to or use of the Services + or to review or edit any content. However, we have the right to do + so for the purpose of operating the Services, to ensure compliance + with these Terms and to comply with applicable law or other legal + requirements. We reserve the right, but are not obligated, to remove + or disable access to any content, including User Content, at any + time and without notice, including, but not limited to, if we, at + our sole discretion, consider it objectionable or in violation of + these Terms. We have the right to investigate violations of these + Terms or conduct that affects the Services. We may also consult and + cooperate with law enforcement authorities to prosecute users who + violate the law. + </P> + </LI> + <LI> + <STRONG>DMCA/Copyright Policy.</STRONG> Bluesky respects copyright law + and expects its users to do the same. It is Bluesky’s policy to + terminate in appropriate circumstances account holders who repeatedly + infringe or are believed to be repeatedly infringing the rights of + copyright holders. Please see Bluesky’s Copyright Policy at{' '} + <A href="/support/copyright">bsky.app/support/copyright</A> for + further information. + </LI> + <LI> + <STRONG>Links to Third Party Websites or Resources.</STRONG> The + Services (including the Site, Protocol and App) may allow you to + access third-party websites or other resources. To the extent provided + by us, we provide access only as a convenience and are not responsible + for the content, products or services on or available from those + resources or links displayed on such websites. Users of the Services + may provide access through User Content to third-party websites or + other resources. To the extent provided by you, you hereby acknowledge + and agree that, as between you and Bluesky, you bear full + responsibility and liability in connection with such access by users + of the Services. You acknowledge sole responsibility for and assume + all risk arising from, your use of any third-party resources. You + further acknowledge that we have no responsibility to remove, add, + modify, or monitor User Content, including any access to third-party + websites or other resources contained in User Content. + </LI> + <LI> + <STRONG>Termination.</STRONG> We may terminate or suspend, in whole or + in part, your access to and use of the Services, including suspending + access to or terminating your account, at our sole discretion, at any + time and without notice to you. You may request deletion of your + account, which we will consider on a case-by-case basis, by emailing + support@bsky.app. Upon any termination, discontinuation or + cancellation of the Services or your account, the following Sections + will survive: 2, 7(a), 7(b), 7(d), 7(e), 7(f), 8, 10, 13, 14, 15, 16, + 17, 18 and 19. + </LI> + <LI> + <P> + <STRONG>Warranty Disclaimers.</STRONG> THE SERVICES ARE PROVIDED + “AS IS,” WITHOUT WARRANTY OF ANY KIND. WITHOUT LIMITING + THE FOREGOING, WE EXPLICITLY DISCLAIM ANY IMPLIED WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT + AND NON-INFRINGEMENT, AND ANY WARRANTIES ARISING OUT OF COURSE OF + DEALING OR USAGE OF TRADE. WE MAKE NO WARRANTY THAT THE SERVICES + WILL MEET YOUR REQUIREMENTS OR BE AVAILABLE ON AN UNINTERRUPTED, + SECURE, OR ERROR-FREE BASIS. WE MAKE NO WARRANTY REGARDING THE + QUALITY, ACCURACY, TIMELINESS, TRUTHFULNESS, COMPLETENESS OR + RELIABILITY OF ANY INFORMATION OR CONTENT ON THE SERVICES. WE + ARE NOT RESPONSIBLE OR LIABLE FOR USER CONTENT, OR ANY + COMMUNICATIONS, AND WE MAKE NO WARRANTY OR REPRESENTATION OF ANY + KIND IN REGARD TO USER CONTENT. + </P> + <P> + BLUESKY ASSUMES NO RESPONSIBILITY FOR ANY USER’S OR THIRD + PARTY’S FAILURE TO COMPLY WITH ANY APPLICABLE LAWS AND + REGULATIONS. WE EXPLICITLY DISCLAIM ALL LIABILITY FOR ANY ACT OR + OMISSION OF ANY USER OR OTHER THIRD PARTY. WE DO NOT AND CANNOT + CONTROL YOUR INTERACTION WITH ANY USER OR OTHER THIRD PARTY, AND WE + EXPRESSLY DISCLAIM ANY LIABILITY ARISING FROM SUCH INTERACTION. + </P> + </LI> + <LI> + <STRONG>Indemnity.</STRONG> You will indemnify and hold harmless + Bluesky and its officers, directors, employees and agents, from and + against any claims, disputes, demands, liabilities, damages, losses, + and costs and expenses, including, without limitation, reasonable + legal and accounting fees arising out of or in any way connected with + (a) your access to or use of the Services, (b) your User Content, or + (c) your violation of these Terms. + </LI> + <LI> + <STRONG>Limitation of Liability.</STRONG> + <OL> + <LI> + For the purposes of this Section 16, “Bluesky”, + “we”, or “us” shall include Bluesky, its + subsidiaries, affiliates, investors, agents, and successors and + assigns. + </LI> + <LI> + TO THE MAXIMUM EXTENT PERMITTED BY LAW, NEITHER BLUESKY NOR ANY + OTHER PARTY INVOLVED IN CREATING, PRODUCING, OR DELIVERING THE + SERVICES WILL BE LIABLE FOR ANY INCIDENTAL, SPECIAL, EXEMPLARY OR + CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOST PROFITS, LOST REVENUES, + LOST SAVINGS, LOST BUSINESS OPPORTUNITY, LOSS OF DATA OR GOODWILL, + SERVICE INTERRUPTION, COMPUTER DAMAGE OR SYSTEM FAILURE OR THE + COST OF SUBSTITUTE SERVICES OF ANY KIND ARISING OUT OF OR IN + CONNECTION WITH THESE TERMS OR FROM THE USE OF OR INABILITY TO USE + THE SERVICES OR FOR ANY ERROR OR DEFECT IN THE SERVICES, WHETHER + BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), PRODUCT + LIABILITY OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT BLUESKY OR + ANY OTHER PARTY HAS BEEN INFORMED OF THE POSSIBILITY OF SUCH + DAMAGE, EVEN IF A LIMITED REMEDY SET FORTH HEREIN IS FOUND TO HAVE + FAILED OF ITS ESSENTIAL PURPOSE. YOU ACKNOWLEDGE THAT BLUESKY + SHALL NOT BE RESPONSIBLE OR LIABLE FOR CONTENT OR THE DEFAMATORY, + OFFENSIVE, OR ILLEGAL CONDUCT OF ANY THIRD PARTY OR ANY THIRD + PARTY’S CONTENT (INCLUDING ANY USER CONTENT), WHETHER OR NOT + SUCH CONTENT IS ACCESSED THROUGH THE SERVICES, AND THAT ANY RISK + OF HARM OR DAMAGE FROM THE FOREGOING RESTS ENTIRELY WITH YOU. + </LI> + <LI> + TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT + WILL BLUESKY’S TOTAL LIABILITY ARISING OUT OF OR IN + CONNECTION WITH THESE TERMS OR FROM THE USE OF OR INABILITY TO USE + THE SERVICES EXCEED TWENTY DOLLARS ($20). + </LI> + <LI> + THE EXCLUSIONS AND LIMITATIONS OF DAMAGES SET FORTH ABOVE ARE + FUNDAMENTAL ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN BLUESKY + AND YOU. + </LI> + </OL> + </LI> + <LI> + <STRONG>Governing Law and Forum Choice.</STRONG> These Terms and any + action related thereto will be governed by the Federal Arbitration + Act, federal arbitration law, and the laws of the State of Delaware, + without regard to its conflict of laws provisions. Except as otherwise + expressly set forth in Section 17 “Dispute Resolution,” + the exclusive jurisdiction for all Disputes (defined below) that you + and Bluesky are not required to arbitrate will be the state and + federal courts located in Delaware, and you and Bluesky each waive any + objection to jurisdiction and venue in such courts. + </LI> + <LI> + <STRONG>Dispute Resolution.</STRONG> + <OL> + <LI> + <EM>Mandatory Arbitration of Disputes</EM>. We each agree that any + dispute, claim or controversy arising out of or relating to these + Terms or the breach, termination, enforcement, interpretation or + validity thereof or the use of the Services (collectively, + “Disputes”) will be resolved solely by binding, + individual arbitration and not in a class, representative or + consolidated action or proceeding . You and Bluesky agree that the + U.S. Federal Arbitration Act governs the interpretation and + enforcement of these Terms, and that you and Bluesky are each + waiving the right to a trial by jury or to participate in a class + action. This arbitration provision shall survive termination of + these Terms. + </LI> + <LI> + <EM>Exceptions</EM>. As limited exceptions to Section 18 (a) + above: (i) we both may seek to resolve a Dispute in small + claims court if it qualifies; and (ii) we each retain the right to + seek injunctive or other equitable relief from a court to prevent + (or enjoin) the infringement or misappropriation of our + intellectual property rights. + </LI> + <LI> + <P> + <EM>Conducting Arbitration and Arbitration Rules</EM>. The + arbitration will be conducted by the American Arbitration + Association (“AAA”) under its Consumer Arbitration + Rules (the “AAA Rules”) then in effect, except as + modified by these Terms. The AAA Rules are available at{' '} + <A href="https://www.adr.org">www.adr.org</A> or by calling + 1-800-778-7879. A party who wishes to start arbitration must + submit a written Demand for Arbitration to AAA and give notice + to the other party as specified in the AAA Rules. The AAA + provides a form Demand for Arbitration at{' '} + <A href="http://www.adr.org/aaa/ShowPDF?doc=ADRSTG_004175"> + www.adr.org + </A> + . + </P> + <P> + Any arbitration hearings will take place in the county (or + parish) where you live, unless we both agree to a different + location. The parties agree that the arbitrator shall have + exclusive authority to decide all issues relating to the + interpretation, applicability, enforceability and scope of this + arbitration agreement. + </P> + </LI> + <LI> + <EM>Arbitration Costs</EM>. Payment of all filing, administration + and arbitrator fees will be governed by the AAA Rules. If we + prevail in arbitration we’ll pay all of our attorneys’ + fees and costs and won’t seek to recover them from you. If + you prevail in arbitration you will be entitled to an award of + attorneys’ fees and expenses to the extent provided under + applicable law. + </LI> + <LI> + <EM>Injunctive and Declaratory Relief</EM>. Except as provided in + Section 18(b) above, the arbitrator shall determine all issues of + liability on the merits of any claim asserted by either party and + may award declaratory or injunctive relief only in favor of the + individual party seeking relief and only to the extent necessary + to provide relief warranted by that party’s individual + claim. To the extent that you or we prevail on a claim and seek + public injunctive relief (that is, injunctive relief that has the + primary purpose and effect of prohibiting unlawful acts that + threaten future injury to the public), the entitlement to and + extent of such relief must be litigated in a civil court of + competent jurisdiction and not in arbitration. The parties agree + that litigation of any issues of public injunctive relief shall be + stayed pending the outcome of the merits of any individual claims + in arbitration. + </LI> + <LI> + <EM>Class Action Waiver</EM>. YOU AND BLUESKY AGREE THAT EACH MAY + BRING CLAIMS AGAINST THE OTHER ONLY IN YOUR OR ITS INDIVIDUAL + CAPACITY, AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED + CLASS OR REPRESENTATIVE PROCEEDING. Further, if the parties’ + Dispute is resolved through arbitration, the arbitrator may not + consolidate another person’s claims with your claims, and + may not otherwise preside over any form of a representative or + class proceeding. If this specific provision is found to be + unenforceable, then the entirety of this Dispute Resolution + section shall be null and void. + </LI> + <LI> + <EM>Severability</EM>. With the exception of any of the provisions + in Section 18(f) of these Terms (“Class Action + Waiver”), if an arbitrator or court of competent + jurisdiction decides that any part of these Terms is invalid or + unenforceable, the other parts of these Terms will still apply. + </LI> + </OL> + </LI> + <LI> + <STRONG>General Terms.</STRONG> + <OL> + <LI> + <EM>Entire Agreement</EM>. These Terms constitute the entire and + exclusive understanding and agreement between Bluesky and you + regarding the Services and Content, and these Terms supersede and + replace all prior oral or written understandings or agreements + between Bluesky and you regarding the Services and Content. If any + provision of these Terms is held invalid or unenforceable by an + arbitrator or a court of competent jurisdiction, that provision + will be enforced to the maximum extent permissible and the other + provisions of these Terms will remain in full force and effect. + You may not assign or transfer these Terms, by operation of law or + otherwise, without Bluesky’s prior written consent. Any + attempt by you to assign or transfer these Terms, without such + consent, will be null. Bluesky may freely assign or transfer these + Terms without restriction. Subject to the foregoing, these Terms + will bind and inure to the benefit of the parties, their + successors and permitted assigns. + </LI> + <LI> + <EM>Notices</EM>. Any notices or other communications provided by + Bluesky under these Terms will be given: (i) via email; or + (ii) by posting to the Services. For notices made by email, + the date of receipt will be deemed the date on which such notice + is transmitted. + </LI> + <LI> + <EM>Waiver of Rights</EM>. Bluesky’s failure to enforce any + right or provision of these Terms will not be considered a waiver + of such right or provision. The waiver of any such right or + provision will be effective only if in writing and signed by a + duly authorized representative of Bluesky. Except as expressly set + forth in these Terms, the exercise by either party of any of its + remedies under these Terms will be without prejudice to its other + remedies under these Terms or otherwise. + </LI> + </OL> + </LI> + <LI> + <STRONG>Contact Information.</STRONG> If you have any questions about + these Terms or the Services, please contact Bluesky at: + support@bsky.app. + </LI> + </OL> + </> + ) +} diff --git a/src/routes.ts b/src/routes.ts index 167efcfb7..7ae281424 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -15,4 +15,7 @@ export const router = new Router({ Log: '/sys/log', Support: '/support', PrivacyPolicy: '/support/privacy', + TermsOfService: '/support/tos', + CommunityGuidelines: '/support/community-guidelines', + CopyrightPolicy: '/support/copyright', }) diff --git a/src/view/com/util/Html.tsx b/src/view/com/util/Html.tsx index 245952e40..dbf24a83a 100644 --- a/src/view/com/util/Html.tsx +++ b/src/view/com/util/Html.tsx @@ -3,6 +3,7 @@ import {StyleSheet, View} from 'react-native' import {usePalette} from 'lib/hooks/usePalette' import {Text} from './text/Text' import {TextLink} from './Link' +import {isDesktopWeb} from 'platform/detection' /** * These utilities are used to define long documents in an html-like @@ -54,12 +55,26 @@ export function P({children}: React.PropsWithChildren<{}>) { ) } -export function UL({children}: React.PropsWithChildren<{}>) { - return <View style={styles.ul}>{children}</View> +export function UL({ + children, + isChild, +}: React.PropsWithChildren<{isChild: boolean}>) { + return ( + <View style={[styles.ul, isChild && styles.ulChild]}> + {markChildProps(children)} + </View> + ) } -export function OL({children}: React.PropsWithChildren<{}>) { - return <View style={styles.ol}>{children}</View> +export function OL({ + children, + isChild, +}: React.PropsWithChildren<{isChild: boolean}>) { + return ( + <View style={[styles.ol, isChild && styles.olChild]}> + {markChildProps(children)} + </View> + ) } export function LI({ @@ -71,7 +86,7 @@ export function LI({ <View style={styles.li}> <Text style={[pal.text, styles.liBullet]}>{value || <>•</>}</Text> <Text type="md" style={[pal.text, styles.liText]}> - {children} + {markChildProps(children)} </Text> </View> ) @@ -89,6 +104,33 @@ export function A({children, href}: React.PropsWithChildren<{href: string}>) { ) } +export function STRONG({children}: React.PropsWithChildren<{}>) { + const pal = usePalette('default') + return ( + <Text type="md-medium" style={[pal.text]}> + {children} + </Text> + ) +} + +export function EM({children}: React.PropsWithChildren<{}>) { + const pal = usePalette('default') + return ( + <Text type="md" style={[pal.text, styles.em]}> + {children} + </Text> + ) +} + +function markChildProps(children) { + return React.Children.map(children, child => { + if (React.isValidElement(child)) { + return React.cloneElement(child, {isChild: true}) + } + return child + }) +} + const styles = StyleSheet.create({ h1: { marginTop: 20, @@ -112,15 +154,23 @@ const styles = StyleSheet.create({ }, ul: { marginBottom: 10, - paddingLeft: 18, + paddingLeft: isDesktopWeb ? 18 : 4, + }, + ulChild: { + paddingTop: 10, + marginBottom: 0, }, ol: { marginBottom: 10, - paddingLeft: 18, + paddingLeft: isDesktopWeb ? 18 : 4, + }, + olChild: { + paddingTop: 10, + marginBottom: 0, }, li: { flexDirection: 'row', - paddingRight: 10, + paddingRight: 20, marginBottom: 10, }, liBullet: { @@ -130,4 +180,7 @@ const styles = StyleSheet.create({ a: { marginBottom: 10, }, + em: { + fontStyle: 'italic', + }, }) diff --git a/src/view/screens/CommunityGuidelines.tsx b/src/view/screens/CommunityGuidelines.tsx new file mode 100644 index 000000000..5d00786da --- /dev/null +++ b/src/view/screens/CommunityGuidelines.tsx @@ -0,0 +1,41 @@ +import React from 'react' +import {View} from 'react-native' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ViewHeader} from '../com/util/ViewHeader' +import {useStores} from 'state/index' +import {ScrollView} from 'view/com/util/Views' +import {Text} from 'view/com/util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' +import Html from '../../locale/en/community-guidelines' + +type Props = NativeStackScreenProps< + CommonNavigatorParams, + 'CommunityGuidelines' +> +export const CommunityGuidelinesScreen = (_props: Props) => { + const pal = usePalette('default') + const store = useStores() + + useFocusEffect( + React.useCallback(() => { + store.shell.setMinimalShellMode(false) + }, [store]), + ) + + return ( + <View> + <ViewHeader title="Community Guidelines" /> + <ScrollView style={[s.hContentRegion, pal.view]}> + <View style={[s.p20]}> + <Text type="title-xl" style={[pal.text, s.bold, s.pb20]}> + Community Guidelines + </Text> + <Html /> + </View> + <View style={s.footerSpacer} /> + </ScrollView> + </View> + ) +} diff --git a/src/view/screens/CopyrightPolicy.tsx b/src/view/screens/CopyrightPolicy.tsx new file mode 100644 index 000000000..756a79c03 --- /dev/null +++ b/src/view/screens/CopyrightPolicy.tsx @@ -0,0 +1,38 @@ +import React from 'react' +import {View} from 'react-native' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ViewHeader} from '../com/util/ViewHeader' +import {useStores} from 'state/index' +import {ScrollView} from 'view/com/util/Views' +import {Text} from 'view/com/util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' +import Html from '../../locale/en/copyright-policy' + +type Props = NativeStackScreenProps<CommonNavigatorParams, 'CopyrightPolicy'> +export const CopyrightPolicyScreen = (_props: Props) => { + const pal = usePalette('default') + const store = useStores() + + useFocusEffect( + React.useCallback(() => { + store.shell.setMinimalShellMode(false) + }, [store]), + ) + + return ( + <View> + <ViewHeader title="Copyright Policy" /> + <ScrollView style={[s.hContentRegion, pal.view]}> + <View style={[s.p20]}> + <Text type="title-xl" style={[pal.text, s.bold, s.pb20]}> + Copyright Policy + </Text> + <Html /> + </View> + <View style={s.footerSpacer} /> + </ScrollView> + </View> + ) +} diff --git a/src/view/screens/TermsOfService.tsx b/src/view/screens/TermsOfService.tsx new file mode 100644 index 000000000..804200e07 --- /dev/null +++ b/src/view/screens/TermsOfService.tsx @@ -0,0 +1,38 @@ +import React from 'react' +import {View} from 'react-native' +import {useFocusEffect} from '@react-navigation/native' +import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types' +import {ViewHeader} from '../com/util/ViewHeader' +import {useStores} from 'state/index' +import {ScrollView} from 'view/com/util/Views' +import {Text} from 'view/com/util/text/Text' +import {usePalette} from 'lib/hooks/usePalette' +import {s} from 'lib/styles' +import Html from '../../locale/en/terms-of-service' + +type Props = NativeStackScreenProps<CommonNavigatorParams, 'TermsOfService'> +export const TermsOfServiceScreen = (_props: Props) => { + const pal = usePalette('default') + const store = useStores() + + useFocusEffect( + React.useCallback(() => { + store.shell.setMinimalShellMode(false) + }, [store]), + ) + + return ( + <View> + <ViewHeader title="Terms of Service" /> + <ScrollView style={[s.hContentRegion, pal.view]}> + <View style={[s.p20]}> + <Text type="title-xl" style={[pal.text, s.bold, s.pb20]}> + Terms of Service + </Text> + <Html /> + </View> + <View style={s.footerSpacer} /> + </ScrollView> + </View> + ) +} diff --git a/src/view/shell/desktop/RightNav.tsx b/src/view/shell/desktop/RightNav.tsx index 354257a52..84a7593ca 100644 --- a/src/view/shell/desktop/RightNav.tsx +++ b/src/view/shell/desktop/RightNav.tsx @@ -38,6 +38,15 @@ export const DesktopRightNav = observer(function DesktopRightNav() { href="/support/privacy" text="Privacy Policy" /> + <Text type="md" style={pal.textLight}> + · + </Text> + <TextLink + type="md" + style={pal.link} + href="/support/tos" + text="Terms" + /> </View> </View> <InviteCodes /> |