From 0766c9a631e45ff66603ff10fa69808b8452d0b3 Mon Sep 17 00:00:00 2001
From: Claire <claire.github-309c@sitedethib.com>
Date: Fri, 2 Jun 2023 18:35:37 +0200
Subject: [PATCH] Add card with who invited you to join when displaying rules
 on sign-up (#23475)

---
 app/javascript/styles/mastodon/accounts.scss | 14 ++------------
 app/javascript/styles/mastodon/forms.scss    |  4 ++++
 app/views/application/_card.html.haml        |  6 ++++--
 app/views/auth/registrations/rules.html.haml | 10 ++++++++--
 config/locales/en.yml                        |  3 +++
 5 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss
index 8b7b634071..b50306deda 100644
--- a/app/javascript/styles/mastodon/accounts.scss
+++ b/app/javascript/styles/mastodon/accounts.scss
@@ -3,11 +3,8 @@
     display: block;
     text-decoration: none;
     color: inherit;
-    box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
-
-    @media screen and (max-width: $no-gap-breakpoint) {
-      box-shadow: none;
-    }
+    overflow: hidden;
+    border-radius: 4px;
 
     &:hover,
     &:active,
@@ -22,7 +19,6 @@
     height: 130px;
     position: relative;
     background: darken($ui-base-color, 12%);
-    border-radius: 4px 4px 0 0;
 
     img {
       display: block;
@@ -30,7 +26,6 @@
       height: 100%;
       margin: 0;
       object-fit: cover;
-      border-radius: 4px 4px 0 0;
     }
 
     @media screen and (width <= 600px) {
@@ -45,11 +40,6 @@
     justify-content: flex-start;
     align-items: center;
     background: lighten($ui-base-color, 4%);
-    border-radius: 0 0 4px 4px;
-
-    @media screen and (max-width: $no-gap-breakpoint) {
-      border-radius: 0;
-    }
 
     .avatar {
       flex: 0 0 auto;
diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss
index 57f077c4e8..d63a42557f 100644
--- a/app/javascript/styles/mastodon/forms.scss
+++ b/app/javascript/styles/mastodon/forms.scss
@@ -137,6 +137,10 @@ code {
     color: $secondary-text-color;
     margin-bottom: 30px;
 
+    &.invited-by {
+      margin-bottom: 15px;
+    }
+
     a {
       color: $highlight-text-color;
     }
diff --git a/app/views/application/_card.html.haml b/app/views/application/_card.html.haml
index 719856d495..1b3dd889c1 100644
--- a/app/views/application/_card.html.haml
+++ b/app/views/application/_card.html.haml
@@ -1,9 +1,11 @@
 - account_url = local_assigns[:admin] ? admin_account_path(account.id) : ActivityPub::TagManager.instance.url_for(account)
+- compact ||= false
 
 .card.h-card
   = link_to account_url, target: '_blank', rel: 'noopener noreferrer' do
-    .card__img
-      = image_tag account.header.url, alt: ''
+    - unless compact
+      .card__img
+        = image_tag account.header.url, alt: ''
     .card__bar
       .avatar
         = image_tag account.avatar.url, alt: '', width: 48, height: 48, class: 'u-photo'
diff --git a/app/views/auth/registrations/rules.html.haml b/app/views/auth/registrations/rules.html.haml
index ab3fa864ab..234f4a601d 100644
--- a/app/views/auth/registrations/rules.html.haml
+++ b/app/views/auth/registrations/rules.html.haml
@@ -7,8 +7,14 @@
 .simple_form
   = render 'auth/shared/progress', stage: 'rules'
 
-  %h1.title= t('auth.rules.title')
-  %p.lead= t('auth.rules.preamble', domain: site_hostname)
+  - if @invite.present? && @invite.autofollow?
+    %h1.title= t('auth.rules.title_invited')
+    %p.lead.invited-by= t('auth.rules.invited_by', domain: site_hostname)
+    = render 'application/card', account: @invite.user.account, compact: true
+    %p.lead= t('auth.rules.preamble_invited', domain: site_hostname)
+  - else
+    %h1.title= t('auth.rules.title')
+    %p.lead= t('auth.rules.preamble', domain: site_hostname)
 
   %ol.rules-list
     - @rules.each do |rule|
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 6a8da6e60d..2c292c42d4 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1031,8 +1031,11 @@ en:
     rules:
       accept: Accept
       back: Back
+      invited_by: 'You can join %{domain} thanks to the invitation you have received from:'
       preamble: These are set and enforced by the %{domain} moderators.
+      preamble_invited: Before you proceed, please consider the ground rules set by the moderators of %{domain}.
       title: Some ground rules.
+      title_invited: You've been invited.
     security: Security
     set_new_password: Set new password
     setup:
-- 
GitLab