From 31a2d440532e880016f36ab7010405178bf2ce13 Mon Sep 17 00:00:00 2001
From: Taico Aerts <t.v.aerts@tudelft.nl>
Date: Wed, 2 Aug 2023 16:31:37 +0200
Subject: [PATCH] Allow user profiles to be empty

When a user profile is effectively empty (when rendered, it does not
contain any actual visible text), also display the quiet enigma text.
---
 app/views/users/edit_profile.html.erb | 3 ++-
 app/views/users/show.html.erb         | 5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/app/views/users/edit_profile.html.erb b/app/views/users/edit_profile.html.erb
index 376665ed2..25f8c6a0c 100644
--- a/app/views/users/edit_profile.html.erb
+++ b/app/views/users/edit_profile.html.erb
@@ -37,7 +37,8 @@
     <%= f.text_field :username, class: 'form-element', autocomplete: 'off' %>
   </div>
 
-  <%= render 'shared/body_field', f: f, field_name: :profile_markdown, field_label: 'Profile', post: current_user %>
+  <%= render 'shared/body_field', f: f, field_name: :profile_markdown, field_label: 'Profile', post: current_user,
+             min_length: 0 %>
 
   <div class="post-preview"></div>
 
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index 4900e8052..925437b42 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -44,10 +44,11 @@
         <% end %>
       </p>
 
-      <% if @user.profile.nil? || @user.profile.blank? %>
+      <% effective_profile = raw(sanitize(@user.profile&.strip || '', scrubber: scrubber)) %>
+      <% if effective_profile.blank? %>
         <p class="is-lead">A quiet enigma. We don't know anything about <span dir="ltr"><%= rtl_safe_username(@user) %></span> yet.</p>
       <% else %>
-        <%= raw(sanitize(@user.profile, scrubber: scrubber)) %>
+        <%= effective_profile %>
       <% end %>
       </div>
 
-- 
GitLab