From 25f4c427b8ba39b01889ad3bf9f5ab4092c569b1 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 01:02:18 -0500 Subject: [PATCH 01/17] Simplify GitLab CI for faster builds --- .gitlab-ci.yml | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d64f17a4a3..a9c43e5ce0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,15 +30,6 @@ jest: stage: test script: yarn test:jest -build-development: - stage: build - script: yarn build - variables: - NODE_ENV: development - artifacts: - paths: - - static - build-production: stage: build script: yarn build @@ -48,11 +39,13 @@ build-production: paths: - static -i18n: - stage: build - script: yarn manage:translations - variables: - NODE_ENV: development - before_script: - - yarn - - yarn build +# Supposed to fail when translations are outdated, instead always passes +# +# i18n: +# stage: build +# script: yarn manage:translations +# variables: +# NODE_ENV: development +# before_script: +# - yarn +# - yarn build From 9bf8b5d0fb913aec5c89588444eea443958601fc Mon Sep 17 00:00:00 2001 From: crockwave Date: Fri, 12 Jun 2020 10:07:17 -0500 Subject: [PATCH 02/17] Rationalize warning and explanation box styling. Fixes #188 --- app/styles/basics.scss | 4 ++-- app/styles/components/compose-form.scss | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/styles/basics.scss b/app/styles/basics.scss index d7f5313941..7f5b06e0e4 100644 --- a/app/styles/basics.scss +++ b/app/styles/basics.scss @@ -182,10 +182,10 @@ body { a { color: var(--brand-color--hicontrast); - text-decoration: none; + text-decoration: underline; &:hover { - text-decoration: underline; + text-decoration: none; } } } diff --git a/app/styles/components/compose-form.scss b/app/styles/components/compose-form.scss index 0c97823459..0b144c7000 100644 --- a/app/styles/components/compose-form.scss +++ b/app/styles/components/compose-form.scss @@ -31,7 +31,7 @@ .compose-form__warning { color: var(--primary-text-color); margin-bottom: 10px; - background: var(--brand-color--med); + background: var(--brand-color--faint); box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3); padding: 8px 10px; border-radius: 4px; @@ -49,7 +49,7 @@ } a { - color: var(--accent-color--bright); + color: var(--brand-color--hicontrast); font-weight: 500; text-decoration: underline; From cbdcccb8b2b2b8d03462810353c34bd6a8233433 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 10:48:04 -0500 Subject: [PATCH 03/17] Fix RGB->HSL precision issues Moved back to chromatism. Well worth it for the accuracy. --- app/soapbox/utils/theme.js | Bin 582 -> 588 bytes package.json | 2 +- yarn.lock | 23 +++++------------------ 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/app/soapbox/utils/theme.js b/app/soapbox/utils/theme.js index 4d0205c5688be2fb3180dc7cdd3fc0d2424ead9e..a4fb01c8c46b1c4d2a8b32444f55f8e865e12928 100644 GIT binary patch delta 81 zcmX@ca)xDsg-o?Va(-S}YEg+otwLH+ey)Ogat4q}EXgd+ofvpgwOS!VN1<3pAqOaL c3sb9+RFs&P;+&t8U!Kk>+MEMkYo8=e8L_ diff --git a/package.json b/package.json index 1477b30309..d365818ba3 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "babel-plugin-transform-react-remove-prop-types": "^0.4.24", "babel-runtime": "^6.26.0", "blurhash": "^1.0.0", + "chromatism": "^3.0.0", "classnames": "^2.2.5", "compression-webpack-plugin": "^3.0.0", "cross-env": "^6.0.0", @@ -71,7 +72,6 @@ "file-loader": "^4.0.0", "font-awesome": "^4.7.0", "glob": "^7.1.1", - "hex-to-hsl": "^1.0.2", "html-webpack-harddisk-plugin": "^1.0.1", "html-webpack-plugin": "^4.3.0", "http-link-header": "^1.0.2", diff --git a/yarn.lock b/yarn.lock index 69f21befbd..aee589968c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3055,6 +3055,11 @@ chownr@^1.1.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== +chromatism@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chromatism/-/chromatism-3.0.0.tgz#a7249d353c1e4f3577e444ac41171c4e2e624b12" + integrity sha1-pySdNTweTzV35ESsQRccTi5iSxI= + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -5607,19 +5612,6 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -hex-to-hsl@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hex-to-hsl/-/hex-to-hsl-1.0.2.tgz#d5c59ece00178444e821c8fc58a430afc09831c2" - integrity sha1-1cWezgAXhEToIcj8WKQwr8CYMcI= - dependencies: - hex-to-rgb "^1.0.1" - rgb-to-hsl "0.0.2" - -hex-to-rgb@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hex-to-rgb/-/hex-to-rgb-1.0.1.tgz#100b9df126b32f2762adf8486be68c65ef8ed2a4" - integrity sha1-EAud8SazLydirfhIa+aMZe+O0qQ= - history@^4.7.2: version "4.10.1" resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" @@ -10214,11 +10206,6 @@ rgb-regex@^1.0.1: resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= -rgb-to-hsl@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/rgb-to-hsl/-/rgb-to-hsl-0.0.2.tgz#36f9fc286376b90acc457e699005b4cb42d350ec" - integrity sha1-Nvn8KGN2uQrMRX5pkAW0y0LTUOw= - rgba-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" From 27925d274653e9d4b3edf6ab44ada4c9fe8d51d4 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 14:07:06 -0500 Subject: [PATCH 04/17] Account Timeline: Filter media from reposts --- app/soapbox/selectors/index.js | Bin 4553 -> 4592 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/soapbox/selectors/index.js b/app/soapbox/selectors/index.js index 7249927fc126cef060b672173f967e1103ba35ce..0ee8a7ca4318bc23613aa964ecad2bdc1ce0f204 100644 GIT binary patch delta 151 zcmX@9{6Trc4FO#)1%;y2lG36)h2oOLlG0+&lw!T2)RfZXR1J;X)RfG`VjZ}Q=44Sp zQ-{nn1r3N=z4X))4fUebq@4Wp^wbn}O$9|;TZOd5oZ?hXn5hsmtbx|RESel77$>2l Z;F+6ST9TNQlj@UMT%w_=Y0Xs&!~oSWGROb` delta 112 zcmeyMd{TMC4FOvPg`Ct9h1}GX%*0{^TLsVD+|rW7q?}Zr%;FLaO=~VL1%=|0#FElt t&y-@lwEQC1#N-SOn8;*SK~oNx-pN&hagq=nMX4pFMR`zDt+{G}q5z&+B@X}q From 1a07c3bac55555dc6da81ed5c3c4d365ff79ba60 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 14:11:53 -0500 Subject: [PATCH 05/17] Account Media Timeline: Fix key duplication error --- app/soapbox/features/account_gallery/index.js | Bin 7423 -> 7544 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/soapbox/features/account_gallery/index.js b/app/soapbox/features/account_gallery/index.js index c175c4c9f57213c39bcef9e71601d506c0db8ec9..caa361e3b832d73963bcba11abae8b5793ec8212 100644 GIT binary patch delta 183 zcmexw`NL|%B&kR)1vHSIT4`IIpi-S!Qj(aQk(-)VqL-dp;+dxrtzKM`SW;T7uA`uy znW7%6S*wk%N&_UJS({J`G&f?9@uz$rq%=Boq=$N)nSZa#Qn4Y^xFM+Q|yiqLW>vl{c43Gcf@G DVEq&Y From d3b31c8bcf31ae3e13de0f36de272894f6d08510 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 14:39:56 -0500 Subject: [PATCH 06/17] About page: restore functionality, fix tests --- app/soapbox/actions/__tests__/about-test.js | Bin 1200 -> 1288 bytes app/soapbox/actions/about.js | Bin 595 -> 676 bytes app/soapbox/features/about/index.js | Bin 1199 -> 1186 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/soapbox/actions/__tests__/about-test.js b/app/soapbox/actions/__tests__/about-test.js index 73c7b5d4f0b5891a4713c47acec3da8d67041580..19fa9bcade45b6c694c522e47ee071eacb02de2e 100644 GIT binary patch delta 100 zcmdnM*}=7;fQem4A)_QW$7=FHM)A!BOx28*Itr;pMfpWm3VEsJ3a%ighI&wHVQFe{ zi9%XpW=?8~LV0FMhC*>kVo7PSLUMjes)C7uiMr`ZzSYuT-I6pC|7({&UwN^*0o6kxJ?DTyVC3bmTn uTnb=Nlv+|+l!q!k`7@)Bo{mClQBi&olG2ilqWp4*C`32Jlv-=9S}p*iyeY{5 delta 50 zcmZ3&dYNUzW=19r&B=C5dJ}8eCx2jMV^*luoUFywQbyjQ)Z&8tyy8>^TRVm7$?{B!a1p(f#FE6#ml@A90RUW_58VI& From 64cb0f61ae7e949bb078d66383d54173bb51eca8 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 14:46:31 -0500 Subject: [PATCH 07/17] About: Improve formatting of about.example boilerplate --- static/instance/about.example/dmca.html | 41 ++++--- static/instance/about.example/index.html | 10 +- static/instance/about.example/privacy.html | 119 +++++++++++---------- static/instance/about.example/tos.html | 7 +- 4 files changed, 81 insertions(+), 96 deletions(-) diff --git a/static/instance/about.example/dmca.html b/static/instance/about.example/dmca.html index a95d21d13e..516748de83 100644 --- a/static/instance/about.example/dmca.html +++ b/static/instance/about.example/dmca.html @@ -1,42 +1,37 @@ - - -

COPYRIGHT POLICY

+

Reporting Claims of Copyright Infringement

We take claims of copyright infringement seriously. We will respond to notices of alleged copyright infringement that comply with applicable law. If you believe any materials accessible on or from this site (the "Website") infringe your copyright, you may request removal of those materials (or access to them) from the Website by submitting written notification to our copyright agent designated below. In accordance with the Online Copyright Infringement Liability Limitation Act of the Digital Millennium Copyright Act (17 U.S.C. § 512) ("DMCA"), the written notice (the "DMCA Notice") must include substantially the following:

    -
  • Your physical or electronic signature.
  • -
  • Identification of the copyrighted work you believe to have been infringed or, if the claim involves multiple works on the Website, a representative list of such works.
  • -
  • Identification of the material you believe to be infringing in a sufficiently precise manner to allow us to locate that material.
  • -
  • Adequate information by which we can contact you (including your name, postal address, telephone number, and, if available, email address).
  • -
  • A statement that you have a good faith belief that use of the copyrighted material is not authorized by the copyright owner, its agent, or the law.
  • -
  • A statement that the information in the written notice is accurate.
  • -
  • A statement, under penalty of perjury, that you are authorized to act on behalf of the copyright owner.
  • +
  • Your physical or electronic signature.
  • +
  • Identification of the copyrighted work you believe to have been infringed or, if the claim involves multiple works on the Website, a representative list of such works.
  • +
  • Identification of the material you believe to be infringing in a sufficiently precise manner to allow us to locate that material.
  • +
  • Adequate information by which we can contact you (including your name, postal address, telephone number, and, if available, email address).
  • +
  • A statement that you have a good faith belief that use of the copyrighted material is not authorized by the copyright owner, its agent, or the law.
  • +
  • A statement that the information in the written notice is accurate.
  • +
  • A statement, under penalty of perjury, that you are authorized to act on behalf of the copyright owner.

Please send copyright notices to

-Your_Entity_Name -
-Your_Street_Address -
-Your_City_State_Zip + Your_Entity_Name
+ Your_Street_Address
+ Your_City_State_Zip

Or via any contact form at the bottom of this page.

If you fail to comply with all of the requirements of Section 512(c)(3) of the DMCA, your DMCA Notice may not be effective.

Please be aware that if you knowingly materially misrepresent that material or activity on the Website is infringing your copyright, you may be held liable for damages (including costs and attorney's fees) under Section 512(f) of the DMCA.

+

Counter Notification Procedures

If you believe that material you posted on the Website was removed or access to it was disabled by mistake or misidentification, you may file a counter notification with us (a "Counter Notice") by submitting written notification to our DMCA address (above) Pursuant to the DMCA, the Counter Notice must include substantially the following:

    -
  • Your physical or electronic signature.
  • -
  • An identification of the material that has been removed or to which access has been disabled and the location at which the material appeared before it was removed or access disabled.
  • -
  • Adequate information by which we can contact you (including your name, postal address, telephone number, and, if available, email address).
  • -
  • A statement under penalty of perjury by you that you have a good faith belief that the material identified above was removed or disabled as a result of a mistake or misidentification of the material to be removed or disabled.
  • -
  • A statement that you will consent to the jurisdiction of the Federal District Court for the judicial district in which your address is located (or if you reside outside the United States for any judicial district in which the Website may be found) and that you will accept service from the person (or an agent of that person) who provided the Website with the complaint at issue.
  • +
  • Your physical or electronic signature.
  • +
  • An identification of the material that has been removed or to which access has been disabled and the location at which the material appeared before it was removed or access disabled.
  • +
  • Adequate information by which we can contact you (including your name, postal address, telephone number, and, if available, email address).
  • +
  • A statement under penalty of perjury by you that you have a good faith belief that the material identified above was removed or disabled as a result of a mistake or misidentification of the material to be removed or disabled.
  • +
  • A statement that you will consent to the jurisdiction of the Federal District Court for the judicial district in which your address is located (or if you reside outside the United States for any judicial district in which the Website may be found) and that you will accept service from the person (or an agent of that person) who provided the Website with the complaint at issue.

The DMCA allows us to restore the removed content if the party filing the original DMCA Notice does not file a court action against you within ten business days of receiving the copy of your Counter Notice.

Please be aware that if you knowingly materially misrepresent that material or activity on the Website was removed or disabled by mistake or misidentification, you may be held liable for damages (including costs and attorney's fees) under Section 512(f) of the DMCA.

+

Repeat Infringers

It is our policy in appropriate circumstances to disable and/or terminate the accounts of users who are repeat infringers.

-
- - diff --git a/static/instance/about.example/index.html b/static/instance/about.example/index.html index aee4a2e197..5efb11fc92 100644 --- a/static/instance/about.example/index.html +++ b/static/instance/about.example/index.html @@ -1,13 +1,8 @@ - - -

About Your_Instance

- +

About Your_Instance

Your_Instance description

-

Your_Instance is a way to join the Fediverse, to be part of a community, and to reclaim your freedom of speech in social media.

Site rules

-

Please refrain from:

  1. Posting anything illegal.
  2. @@ -31,6 +26,3 @@

    Soapbox is free and open source (FOSS) software that runs atop a Pleroma server

    The Soapbox repository can be found at Soapbox-fe

    The Pleroma server repository can be found at Pleroma-be

    -
- - diff --git a/static/instance/about.example/privacy.html b/static/instance/about.example/privacy.html index 231ff77dcc..2b9869ba26 100644 --- a/static/instance/about.example/privacy.html +++ b/static/instance/about.example/privacy.html @@ -1,13 +1,11 @@ - - -

PRIVACY POLICY

Last Updated: Your_Update_Date

+

Your_Entity_Name ("Company" or "We") respect your privacy and are committed to protecting it through our compliance with this policy.

-This policy describes the types of information we may collect from you or that you may provide when you visit the website -Your_Instance_Name -and our practices for collecting, using, maintaining, protecting, and disclosing that information. + This policy describes the types of information we may collect from you or that you may provide when you visit the website + Your_Instance_Name + and our practices for collecting, using, maintaining, protecting, and disclosing that information.

This policy applies to information we collect:

On the Website.

@@ -16,106 +14,111 @@ and our practices for collecting, using, maintaining, protecting, and disclosing

When you interact with our advertising and applications on third-party websites and services, if those applications or advertising include links to this policy.

It does not apply to information collected by:

    -
  • Us offline or through any other means, including on any other website operated by Company or any third party (including our affiliates and subsidiaries); or
  • -
  • Any third party (including our affiliates and subsidiaries), including through any application or content (including advertising) that may link to or be accessible from from the Website.
  • -
  • Please read this policy carefully to understand our policies and practices regarding your information and how we will treat it. If you do not agree with our policies and practices, your choice is not to use our Website. By accessing or using this Website, you agree to this privacy policy. This policy may change from time to time (see Changes to our Privacy Policy, below). Your continued use of this Website after we make changes is deemed to be acceptance of those changes, so please check the policy periodically for updates.
  • +
  • Us offline or through any other means, including on any other website operated by Company or any third party (including our affiliates and subsidiaries); or
  • +
  • Any third party (including our affiliates and subsidiaries), including through any application or content (including advertising) that may link to or be accessible from from the Website.
  • +
  • Please read this policy carefully to understand our policies and practices regarding your information and how we will treat it. If you do not agree with our policies and practices, your choice is not to use our Website. By accessing or using this Website, you agree to this privacy policy. This policy may change from time to time (see Changes to our Privacy Policy, below). Your continued use of this Website after we make changes is deemed to be acceptance of those changes, so please check the policy periodically for updates.
+

Children Under the Age of 18

Our Website is not intended for children under 18 years of age. No one under age 18 may provide any information to or on the Website. We do not knowingly collect personal information from children under 18. If you are under 18, do not use or provide any information on this Website, register on the Website, make any purchases through the Website, use any of the interactive or public comment features of this Website, or provide any information about yourself to us, including your name, address, telephone number, email address, or any screen name or user name you may use. If we learn we have collected or received personal information from a child under 18 without verification of parental consent, we will delete that information and any associated accounts. If you believe we might have any information from or about a child under 18, please contact us at support [at] Your_Instance [dot] com.

+

Information We Collect About You and How We Collect It

We collect several types of information from and about users of our Website, including information:

    -
  • By which you may be personally identified, such as an e-mail address ("personal information");
  • -
  • That is about you but individually does not identify you, such as the content of your user profile; and/or
  • -
  • About your internet connection, the equipment you use to access our Website, and usage details.
  • +
  • By which you may be personally identified, such as an e-mail address ("personal information");
  • +
  • That is about you but individually does not identify you, such as the content of your user profile; and/or
  • +
  • About your internet connection, the equipment you use to access our Website, and usage details.
    -
  • We collect this information:
  • -
  • Directly from you when you provide it to us.
  • -
  • Automatically as you navigate through the site. Information collected automatically may include usage details and IP addresses.
  • -
  • From third parties, for example, our business partners.
  • +
  • We collect this information:
  • +
  • Directly from you when you provide it to us.
  • +
  • Automatically as you navigate through the site. Information collected automatically may include usage details and IP addresses.
  • +
  • From third parties, for example, our business partners.
+

Information You Provide to Us

The information we collect on or through our Website may include:

Information that you provide by filling in forms on our Website. This includes information provided at the time of registering to use our Website, subscribing to our service, posting material, or requesting further services. We may also ask you for information when you report a problem with our Website.

Records and copies of your correspondence (including email addresses), if you contact us.

Details of transactions you carry out through our Website and of the fulfillment of your orders. You may be required to provide financial information before placing an order through our Website.

You also may provide information to be published or displayed (hereinafter, "posted") on public areas of the Website, or transmitted to other users of the Website or third parties (collectively, "User Contributions"). The overwhelming majority of User Contributions are public and may be seen by any person who navigates to them. Your User Contributions are posted on and transmitted to others at your own risk. Although you may set certain privacy settings for such information by logging into your account profile, please be aware that no security measures are perfect or impenetrable. Additionally, we cannot control the actions of other users of the Website with whom you may choose to share your User Contributions. Therefore, we cannot and do not guarantee that your User Contributions will not be viewed by unauthorized persons.

+

Information We Collect Through Automatic Data Collection

As you navigate through and interact with our Website, we may use automatic data collection technologies to collect certain information about your equipment, browsing actions, and patterns, including:

    -
  • Details of your visits to our Website, including traffic data, logs, and other communication data and the resources that you access and use on the Website.
  • -
  • Information about your computer and internet connection, including your IP address, operating system, and browser type.
  • +
  • Details of your visits to our Website, including traffic data, logs, and other communication data and the resources that you access and use on the Website.
  • +
  • Information about your computer and internet connection, including your IP address, operating system, and browser type.

The information we collect automatically may be only statistical data and may not include personal information. It helps us to improve our Website and to deliver a better and more personalized service, including by enabling us to:

    -
  • Estimate our audience size and usage patterns.
  • -
  • Store information about your preferences, allowing us to customize our Website according to your individual interests.
  • -
  • Speed up your searches.
  • -
  • Recognize you when you return to our Website.
  • +
  • Estimate our audience size and usage patterns.
  • +
  • Store information about your preferences, allowing us to customize our Website according to your individual interests.
  • +
  • Speed up your searches.
  • +
  • Recognize you when you return to our Website.

The technologies we use for this automatic data collection may include:

-
    -
  • Cookies (or browser cookies). A cookie is a small file placed on the hard drive of your computer. You may refuse to accept browser cookies by activating the appropriate setting on your browser. However, if you select this setting you may be unable to access certain parts of our Website. Unless you have adjusted your browser setting so that it will refuse cookies, our system will issue cookies when you direct your browser to our Website.
  • -
  • We do not collect personal information automatically, but we may tie this information to personal information about you that we collect from other sources or you provide to us.
  • +
      +
    • Cookies (or browser cookies). A cookie is a small file placed on the hard drive of your computer. You may refuse to accept browser cookies by activating the appropriate setting on your browser. However, if you select this setting you may be unable to access certain parts of our Website. Unless you have adjusted your browser setting so that it will refuse cookies, our system will issue cookies when you direct your browser to our Website.
    • +
    • We do not collect personal information automatically, but we may tie this information to personal information about you that we collect from other sources or you provide to us.
    +

    How We Use Your Information

    We use information that we collect about you or that you provide to us, including any personal information:

      -
    • To present our Website and its contents to you.
    • -
    • To provide you with information about our products or services.
    • -
    • To fulfill any other purpose for which you provide it.
    • -
    • To provide you with notices about your account, including expiration and renewal notices.
    • -
    • To carry out our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing and collection.
    • -
    • To notify you about changes to our Website or any products or services we offer or provide though it.
    • -
    • To allow you to participate in interactive features on our Website.
    • -
    • In any other way we may describe when you provide the information.
    • -
    • For any other purpose with your consent.
    • +
    • To present our Website and its contents to you.
    • +
    • To provide you with information about our products or services.
    • +
    • To fulfill any other purpose for which you provide it.
    • +
    • To provide you with notices about your account, including expiration and renewal notices.
    • +
    • To carry out our obligations and enforce our rights arising from any contracts entered into between you and us, including for billing and collection.
    • +
    • To notify you about changes to our Website or any products or services we offer or provide though it.
    • +
    • To allow you to participate in interactive features on our Website.
    • +
    • In any other way we may describe when you provide the information.
    • +
    • For any other purpose with your consent.

    We may also use your information to contact you about our own and third-parties' goods and services that may be of interest to you.

    +

    Disclosure of Your Information

    We may disclose aggregated information about our users, and information that does not identify any individual, without restriction.

    It is the policy of the Company to not provide any user data to any person unless compelled by a court order issued by a U.S. court, except in cases of life-threatening emergency. The Company reserves the right to change or deviate from this policy at any time, in its sole and absolute discretion, with or without notice to you.

    We may disclose personal information that we collect or you provide as described in this privacy policy:

      -
    • To our subsidiaries and affiliates.
    • -
    • To contractors, service providers, and other third parties we use to support our business and who are bound by contractual obligations to keep personal information confidential and use it only for the purposes for which we disclose it to them.
    • -
    • To a buyer or other successor in the event of a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Your_Entity_Name's assets, whether as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which personal information held by Your_Entity_Name about our Website users is among the assets transferred.
    • -
    • To fulfill the purpose for which you provide it.
    • -
    • For any other purpose disclosed by us when you provide the information.
    • -
    • With your consent.
    • -
    • We may also disclose your personal information:
    • -
    • To comply with any court order, law, or legal process, including to respond to any government or regulatory request.
    • -
    • -To enforce or apply our -Terms of Service -and other agreements, including for billing and collection purposes. -
    • -
    • If we believe disclosure is necessary or appropriate to protect the rights, property, or safety of Your_Entity_Name, our employees, our customers, or any other person.
    • +
    • To our subsidiaries and affiliates.
    • +
    • To contractors, service providers, and other third parties we use to support our business and who are bound by contractual obligations to keep personal information confidential and use it only for the purposes for which we disclose it to them.
    • +
    • To a buyer or other successor in the event of a merger, divestiture, restructuring, reorganization, dissolution, or other sale or transfer of some or all of Your_Entity_Name's assets, whether as a going concern or as part of bankruptcy, liquidation, or similar proceeding, in which personal information held by Your_Entity_Name about our Website users is among the assets transferred.
    • +
    • To fulfill the purpose for which you provide it.
    • +
    • For any other purpose disclosed by us when you provide the information.
    • +
    • With your consent.
    • +
    • We may also disclose your personal information:
    • +
    • To comply with any court order, law, or legal process, including to respond to any government or regulatory request.
    • +
    • + To enforce or apply our + Terms of Service + and other agreements, including for billing and collection purposes. +
    • +
    • If we believe disclosure is necessary or appropriate to protect the rights, property, or safety of Your_Entity_Name, our employees, our customers, or any other person.
    +

    Accessing, Correcting and Deleting Your Information

    You can review and change your personal information by logging into the Website and visiting your account profile page.

    You may also send us an email at support [at] Your_Instance_URL [dot] Your_Instance_TLD to request access to, correct or delete any personal information that you have provided to us. We cannot delete your personal information except by also deleting your user account. We may not accommodate a request to change information if we believe the change would violate any law or legal requirement or cause the information to be incorrect.

    -If you delete your User Contributions from the Website, copies of your User Contributions may remain viewable in cached and archived pages, or might have been copied or stored by other Website users. Proper access and use of information provided on the Website, including User Contributions, is governed by our -Terms of Service. + If you delete your User Contributions from the Website, copies of your User Contributions may remain viewable in cached and archived pages, or might have been copied or stored by other Website users. Proper access and use of information provided on the Website, including User Contributions, is governed by our + Terms of Service.

    +

    Data Security

    We have implemented measures designed to secure your personal information from accidental loss and from unauthorized access, use, alteration, and disclosure. All information you provide to us is stored on our secure servers behind firewalls. Any payment transactions will be encrypted using SSL.

    The safety and security of your information also depends on you. Most information on the Website is public. Where we have given you (or where you have chosen) a password for access to certain parts of our Website, you are responsible for keeping this password confidential. We ask you not to share your password with anyone. We urge you to be careful about giving out information in public areas of the Website like message boards. The information you share in public areas may be viewed by any user of the Website, whether that user is registered on the site or not.

    Unfortunately, the transmission of information via the internet is not completely secure. Although we do our best to protect your personal information, we cannot guarantee the security of your personal information transmitted to our Website. Any transmission of personal information is at your own risk. We are not responsible for circumvention of any privacy settings or security measures contained on the Website.

    +

    Changes to Our Privacy Policy

    It is our policy to post any changes we make to our privacy policy on this page with a notice that the privacy policy has been updated on the Website home page. If we make material changes to how we treat our users’ personal information, we will notify you through a notice on the Website home page. The date the privacy policy was last revised is identified at the top of the page. You are responsible for ensuring we have an up-to-date active and deliverable email address for you, and for periodically visiting our Website and this privacy policy to check for any changes.

    +

    Contact Information

    To ask questions or comment about this privacy policy and our privacy practices, contact us at

    -Your_Entity_Name -
    -Your_Street_Address -
    -Your_City_State_Zip + Your_Entity_Name
    + Your_Street_Address
    + Your_City_State_Zip

    Or by any contact form at the bottom of this page.

    -
- - diff --git a/static/instance/about.example/tos.html b/static/instance/about.example/tos.html index 0cf38c355e..85464c2828 100644 --- a/static/instance/about.example/tos.html +++ b/static/instance/about.example/tos.html @@ -1,11 +1,9 @@ - - -

Terms of Service

By using this web site, you agree to these Terms of Use, to our Copyright Policy, and to our Privacy Policy.

+

Our Terms of Use are simple:

  • @@ -28,6 +26,3 @@ You are liable for what you post, and we are not liable for it.
-
- - From 1629b52cfc9d3ce5976323da5716d8ee10476adc Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 14:54:00 -0500 Subject: [PATCH 08/17] Fix styles: disabled toggle --- app/styles/components/react-toggle.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/styles/components/react-toggle.scss b/app/styles/components/react-toggle.scss index e6bd7db7bc..699b6e86d3 100644 --- a/app/styles/components/react-toggle.scss +++ b/app/styles/components/react-toggle.scss @@ -32,7 +32,7 @@ height: 24px; padding: 0; border-radius: 30px; - background-color: var(--brand-color); + background-color: var(--foreground-color); transition: background-color 0.2s ease; } From 4a878d49dc1b54975cbe04e2db09453a3c8bf778 Mon Sep 17 00:00:00 2001 From: Sean King Date: Fri, 12 Jun 2020 20:58:20 +0000 Subject: [PATCH 09/17] Fix customization.md soapbox example typo --- docs/customization.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/customization.md b/docs/customization.md index 85c372165c..41903834ad 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -37,7 +37,7 @@ After editing your HTML files and folder names, re-create the webpack and restar Following is an example of the contents of `soapbox.example.json`: ``` { - "logo": ""/instance/images/soapbox-logo.svg", + "logo": "/instance/images/soapbox-logo.svg", "brandColor": "#0482d8", "promoPanel": { "items": [{ From 77d02b790d941f5006a3bfc0505d35ca2e8ccd68 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 16:31:38 -0500 Subject: [PATCH 10/17] Update customization docs --- docs/customization.md | 96 ++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/docs/customization.md b/docs/customization.md index 41903834ad..57a4c83451 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -1,41 +1,17 @@ # Customizing Soapbox -First [Install Soapbox](https://soapbox.pub/) +If you haven't already, [install Soapbox](https://soapbox.pub/). -Soapbox supports customization of the user interface, to allow per instance branding and other features. Current customization features include: -* Instance name -* Site logo -* Promo panel list items, e.g. blog site link -* Favicon -* About page -* Terms of Service page -* Privacy Policy page -* Copyright Policy page -* Soapbox extensions -* Default settings +There are two main places Soapbox gets its configuration: -## Instance Name -Instance name is edited during the Pleroma installation step or via admin configuration +- `/opt/pleroma/config/prod.secret.exs` -## Instance Description -Instance description is edited during the Pleroma installation step or via admin configuration +- `/opt/pleroma/instance/static/instance/soapbox.json` -## Captcha on Registration Page -Use of the Captcha feature on the registration page is configured during the Pleroma installation step or via admin configuration +Logos, branding, etc. take place in the `soapbox.json` file. +For example: -## Site Logo, Brand Color, and Promo Panel List Items -The site logo, brand color, and promo panel list items are customized by copying `soapbox.example.json` in the `static/instance` folder to `soapbox.json` and editing that file. It is recommended that you test your edited soapbox.json file in a JSON validator, such as [JSONLint](https://jsonlint.com/), before using it. -The site logo, in SVG format, is rendered to be able to allow the site theme colors to appear in the less than 100% opaque sections of the logo. -The logo colors are rendered in a color that provides contrast for the site theme. - -The `navlinks` section of the `soapbox.json` file references the links that are displayed at the bottom of the Registration/Login, About, Terms of Service, Privacy Policy and Copyright Policy (DMCA) pages. - -The `brandColor` in `soapbox.json` refers to the main color upon which the look of soapbox-fe is defined. - -After editing your HTML files and folder names, re-create the webpack and restart the soapbox-fe service to effect the changes. - -Following is an example of the contents of `soapbox.example.json`: -``` +```json { "logo": "/instance/images/soapbox-logo.svg", "brandColor": "#0482d8", @@ -55,9 +31,9 @@ Following is an example of the contents of `soapbox.example.json`: }, "defaultSettings": { "autoPlayGif": false, - "theme": "light" + "themeMode": "light" }, - "copyright": "?2020. Copying is an act of love. Please copy and share.", + "copyright": "♡2020. Copying is an act of love. Please copy and share.", "navlinks": { "homeFooter": [ { "title": "About", "url": "/about" }, @@ -70,24 +46,52 @@ Following is an example of the contents of `soapbox.example.json`: } ``` +Customizable features include: + +* Instance name +* Site logo +* Promo panel list items, e.g. blog site link +* Favicon +* About pages +* Default user settings + +## Instance Name +Instance name is edited during the Pleroma installation step or via AdminFE. + +## Instance Description +Instance description is edited during the Pleroma installation step or via AdminFE. + +## Captcha on Registration Page +Use of the Captcha feature on the registration page is configured during the Pleroma installation step or via AdminFE. + +## Site Logo, Brand Color, and Promo Panel List Items +The site logo, brand color, and promo panel list items are customized by copying `soapbox.example.json` in the `static/instance` folder to `soapbox.json` and editing that file. It is recommended that you test your edited soapbox.json file in a JSON validator, such as [JSONLint](https://jsonlint.com/), before using it. +The site logo, in SVG format, is rendered to be able to allow the site theme colors to appear in the less than 100% opaque sections of the logo. +The logo colors are rendered in a color that provides contrast for the site theme. + +The `navlinks` section of the `soapbox.json` file references the links that are displayed at the bottom of the Registration/Login, About, Terms of Service, Privacy Policy and Copyright Policy (DMCA) pages. + +The `brandColor` in `soapbox.json` refers to the main color upon which the look of soapbox-fe is defined. + +After editing your HTML files and folder names, re-create the webpack and restart the soapbox-fe service to effect the changes. + ## Favicon -The favicon is customized by dropping a favicon.png file into the `/static` folder. +The favicon is customized by dropping a favicon.png file into the `/static` folder. Re-create the webpack and start the soapbox-fe service to effect the changes. -## About Page, Terms of Service Page, Privacy Policy Page and Copyright Policy (DMCA) Page -These pages are all available for editing in the `static/instance/about.example` folder, as template files, named as: +## About Pages +Soapbox supports any number of custom HTML pages under `yoursite.com/about/:slug`. + +The finder will search `/opt/pleroma/instance/static/instance/about/:slug.html` to find your page. +Use the name `index.html` for the root page. + +Example templates are available for editing in the `static/instance/about.example` folder, such as: * index.html * tos.html * privacy.html * dmca.html - -The `soapbox.json` file navlinks section's default URL valuess are pointing to the above file location, when the `about.example` folder is renamed to `about` + +Simply rename `about.example` to `about`, or create your own. + +The `soapbox.json` file navlinks section's default URL values are pointing to the above file location, when the `about.example` folder is renamed to `about` These four template files have placeholders in them, e.g. "Your_Instance", that should be edited to match your Soapbox instance configuration, and will be meaningless to your users until you edit them. - -These pages will not become available resources on your instance until you rename the `static/instance/about.example` folder to `static/instance/about`, re-create the webpack and start the soapbox-fe service. - -## Source Code Link -The Source Code link in the `soapbox.json` file, if used, references a bookmark in the `index.html` file in the `about` folder. The template index.html file has a default bookmark and URL defined in it that you can edit. - - - From 8c10afad3e80fc4e202562fe6a6bbbd17c9e4b50 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 16:46:46 -0500 Subject: [PATCH 11/17] Fix empty column display --- app/soapbox/components/scrollable_list.js | Bin 8720 -> 8731 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/soapbox/components/scrollable_list.js b/app/soapbox/components/scrollable_list.js index d5e4975a14026dd91770e270b626d7ad2479617a..cce6bd6dfb44d8654f685b25b72367b9f883a76f 100644 GIT binary patch delta 37 qcmbQ>GTUXtdPPZ_l*}@_>eSqVl1ksy;^M^g)LI*Tkl5tCiopOH7Y?QX delta 28 kcmbR3GQnlTdPSb<)ZBuSO5fDt;>7gHyA%v3e^*oi0IVhpw*UYD From 06ea73b363d97ee75dc1174a4595cde8a7c5f971 Mon Sep 17 00:00:00 2001 From: Curtis Date: Fri, 12 Jun 2020 22:23:51 +0000 Subject: [PATCH 12/17] Update customization.md to include fork awesome font reference and refresh browser reference --- docs/customization.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/customization.md b/docs/customization.md index 57a4c83451..194da8ae2c 100644 --- a/docs/customization.md +++ b/docs/customization.md @@ -66,6 +66,9 @@ Use of the Captcha feature on the registration page is configured during the Ple ## Site Logo, Brand Color, and Promo Panel List Items The site logo, brand color, and promo panel list items are customized by copying `soapbox.example.json` in the `static/instance` folder to `soapbox.json` and editing that file. It is recommended that you test your edited soapbox.json file in a JSON validator, such as [JSONLint](https://jsonlint.com/), before using it. + +The icon names for the promo panel list items can be source from [Fork Awesome](https://forkaweso.me/Fork-Awesome/icons/). Note that you should hover over or click a selected icon to see what the icon's real name is, e.g. `world` + The site logo, in SVG format, is rendered to be able to allow the site theme colors to appear in the less than 100% opaque sections of the logo. The logo colors are rendered in a color that provides contrast for the site theme. @@ -73,11 +76,10 @@ The `navlinks` section of the `soapbox.json` file references the links that are The `brandColor` in `soapbox.json` refers to the main color upon which the look of soapbox-fe is defined. -After editing your HTML files and folder names, re-create the webpack and restart the soapbox-fe service to effect the changes. +After editing your HTML files and folder names, save the file and refresh your browser. ## Favicon -The favicon is customized by dropping a favicon.png file into the `/static` folder. -Re-create the webpack and start the soapbox-fe service to effect the changes. +The favicon is customized by dropping a favicon.png file into the `/static` folder and refreshing your browser. ## About Pages Soapbox supports any number of custom HTML pages under `yoursite.com/about/:slug`. From aa0a4e49bed933773fc0cb63339a273926724158 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 18:43:48 -0500 Subject: [PATCH 13/17] Disable "Embed" button for now, fixes #192 --- app/soapbox/components/status_action_bar.js | Bin 14827 -> 14829 bytes .../features/status/components/action_bar.js | Bin 12048 -> 12051 bytes .../features/ui/components/embed_modal.js | Bin 2306 -> 2301 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/soapbox/components/status_action_bar.js b/app/soapbox/components/status_action_bar.js index 39d09d91b6ca92366f149b50e21b27ad3c713fd2..807c8f3cf281328def99fdb4c09c37d1798be308 100644 GIT binary patch delta 20 ccmaD|{I+-_<2HFFef`M?RrNPNm1mOz0Aj@mB>(^b delta 18 acmaD`{JNNtYr{7A$>yqho1e?GNdW**JO@Pp diff --git a/app/soapbox/features/status/components/action_bar.js b/app/soapbox/features/status/components/action_bar.js index a06349c0d9a801a24db853ff934a91742831fe7c..c5db0cab59634958d435ea76368df4a6c7ce230c 100644 GIT binary patch delta 15 WcmbObH#u&@1Q{lM{muO{jY0r1L*d#RJxM)G9LRwLNu7bLro<0O67G!R`zJigZAX7tgb2C#F8vr?J4fOy3 From 741b27195e87cc399dc72fa1dd3e7cd04afa5602 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 20:10:07 -0500 Subject: [PATCH 14/17] Account Gallery: Fix "view context" button, fixes #193 --- app/soapbox/features/account_gallery/index.js | Bin 7544 -> 7580 bytes .../features/ui/components/media_modal.js | Bin 7588 -> 7693 bytes app/soapbox/selectors/index.js | Bin 4592 -> 4711 bytes app/styles/components/modal.scss | 2 +- 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/soapbox/features/account_gallery/index.js b/app/soapbox/features/account_gallery/index.js index caa361e3b832d73963bcba11abae8b5793ec8212..de2213b0777598bc1ad9b2c8f6a20b93bd83b623 100644 GIT binary patch delta 47 xcmexiHOG2`u#l3DLSk}qeraBbl|o`kNn&zFZfahMUV3VYhB{PYv!GBqHvpSY5U&6L delta 20 bcmbPZ{ljX5u+U^~LGHcAxwzU%oK#e$!a`mVj#V> V`UUyLCB^zG)i7O~=kl-%0szAMIg$VX delta 103 zcmeCRSz^7xfn{?l%QN=Lr+Cx?OENNx^$Lpe3ySrMOA<>;i}lh|OFZ*5qSX_Vlk-dS mO4M}}K+F>LSj}4fg8br=VttirthzMRGgH(xH?#4w3jzSdyd-A; diff --git a/app/soapbox/selectors/index.js b/app/soapbox/selectors/index.js index 0ee8a7ca4318bc23613aa964ecad2bdc1ce0f204..0353cd177077107216d6ff0a39985e31560f8770 100644 GIT binary patch delta 172 zcmeyM{9I+jE`iCD1Y~p)laupH^Gb@;i#=0{brc}XR3HngXz~St zETiQ7yy6m=h=MJQRjikuS_0J#W~xIqscTL)7A!U4QUC+J+{6Nn+|-oJLnK1Nlih_B02G!N0{{R3 diff --git a/app/styles/components/modal.scss b/app/styles/components/modal.scss index c0d22c5ce5..6d1cf7c5c1 100644 --- a/app/styles/components/modal.scss +++ b/app/styles/components/modal.scss @@ -143,7 +143,7 @@ a { text-decoration: none; font-weight: 500; - color: var(--background-color); + color: #fff; &:hover, &:focus, From 3179eacadd6bb30c6e3e67294393256fccccb166 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 20:47:43 -0500 Subject: [PATCH 15/17] Account Media: Filter non-owned media for other users --- app/soapbox/selectors/index.js | Bin 4711 -> 4698 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/app/soapbox/selectors/index.js b/app/soapbox/selectors/index.js index 0353cd177077107216d6ff0a39985e31560f8770..c8bc224242de72919d9728bde8d4af4acc655922 100644 GIT binary patch delta 14 WcmaE^a!X~yZb2q>&B><(=K=sPaRuW5 delta 27 jcmcbm@?2%ZZbAO^)D(411w~t1g|x(+;?&7|1?K_)j|2(% From b4532ccb4096ef3983847c7ea02ce6a221d35291 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Fri, 12 Jun 2020 22:04:20 -0500 Subject: [PATCH 16/17] Conversations: Change the way otherAccounts is handled Fixes #191 --- app/soapbox/components/display_name.js | Bin 1499 -> 1364 bytes app/soapbox/components/status.js | Bin 15914 -> 15914 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/soapbox/components/display_name.js b/app/soapbox/components/display_name.js index a376dc761cfd9227900ad7d9fe4d3c594027b3db..1016c9f5a89eaef7c92a25f63e31da2bf4f20f40 100644 GIT binary patch delta 38 ucmcc3eT8d7J0nM8a&mrYUWv}+HbxU>Yc8(Ioy-cGpD`|H+$_R!oDl#BbPUn} delta 136 zcmcb@b(?!bJLBXDjK-Wg3W>?d`K5U!n-4RdVw`-6Q6|MeQ=ytm0Sch93bqRQB^jwj u#d>L(Ma3l=n$}PiwF;>@#i>{|lw@QU>lGB`7ZmG3O@V9T+T6x`ju8NF^eKP< diff --git a/app/soapbox/components/status.js b/app/soapbox/components/status.js index 848082da62193325ea88c765b6df0a286bdf9069..bc0dc1cbc2e12a3ca242a3cfbcf9183eec458618 100644 GIT binary patch delta 19 bcmZ2gv#Mr;gdvlm=H%ao@|!IUKk@(oP*n$- delta 19 bcmZ2gv#Mr;gdvlG=H%ao@|!IUKk@(oP)Y}x From 5ea6aaf48e9d8001f4644c147d9202e208a0a32d Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sat, 13 Jun 2020 10:16:43 -0500 Subject: [PATCH 17/17] EditProfile: Remove display name limits, redirect /user-settings --- app/soapbox/features/edit_profile/index.js | Bin 9049 -> 8992 bytes app/soapbox/features/ui/index.js | Bin 20388 -> 20465 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/soapbox/features/edit_profile/index.js b/app/soapbox/features/edit_profile/index.js index a37cb87c295ad9d0ace4c5c58d39abb39e8921fa..bd908afd4da7bd902bab943bbe3c7f01ef0848f0 100644 GIT binary patch delta 16 XcmccVw!m$JgYe`88PUys!l(HGI>-iF delta 52 scmZ4BcGGQxgRpvTVuep?UV2G}ZMCsMEtdisD9)@(1<7pI6aK^x0J8)SMF0Q* diff --git a/app/soapbox/features/ui/index.js b/app/soapbox/features/ui/index.js index 001f55cfc7117f3e93fb6a001261daadebf8882f..f98d090887a6ac47aeecbd148bfab3e815dd0828 100644 GIT binary patch delta 89 zcmZ27pYh{-#tkwux<&c93IRE(Kq^te%~eMswIo?jp(I}+Ewe%)KPN>YDL+3uH?b(Y sSV2p_cJe}5smT#CmnN^46=Bq!{83$sEk7+YCslp&1v$mdcCu+k0F#CvTmS$7 delta 65 zcmex3pK-~2#tkwuO8G?!dHH#|#U+U)naK(PIjKeYxrqvHt_sQdd1;yHTKct<-^of% Vejvj-IYZ{`