From 35c7ee178f84d6f2bb6a7959f933cf0545920e36 Mon Sep 17 00:00:00 2001 From: MartinBraquet Date: Fri, 24 Jul 2026 23:54:53 +0200 Subject: [PATCH] Encourage users to keep their account when deleting for lack of matches When someone picks a scarcity reason in the delete survey (not enough relevant people, community not active enough, messages unanswered), show a callout making the case for staying: keeping the account is free, saved-search alerts come to them, and staying keeps them findable by people who join later. Two compatible people who join at different times and both delete never meet. Also relabels the modal's cancel button to "Keep my account" in that case. Co-Authored-By: Claude Opus 5 --- common/messages/de.json | 9 +++ common/messages/fr.json | 9 +++ .../profile/delete-account-survey-modal.tsx | 17 ++++ .../profile/stay-instead-of-delete.tsx | 79 +++++++++++++++++++ 4 files changed, 114 insertions(+) create mode 100644 web/components/profile/stay-instead-of-delete.tsx diff --git a/common/messages/de.json b/common/messages/de.json index 0023d322..c6049097 100644 --- a/common/messages/de.json +++ b/common/messages/de.json @@ -265,6 +265,15 @@ "delete_survey.reasons.taking_a_break": "Ich mache eine Pause von Dating-Apps", "delete_survey.reasons.technical_issues": "Technische Probleme oder Fehler", "delete_survey.reasons.too_much_time_or_effort": "Die Nutzung der Plattform erforderte mehr Zeit oder Aufwand als ich geben kann", + "delete_survey.stay.alerts_body": "Speichern Sie eine Suche, und wir benachrichtigen Sie, sobald jemand Neues dazu passt. Sie müssen nie wieder selbst nachsehen.", + "delete_survey.stay.alerts_title": "Wir kommen zu Ihnen.", + "delete_survey.stay.intro": "Compass wächst weiter, und Ihr Konto zu behalten kostet Sie nichts: keine Gebühren, und Sie können alle E-Mails in den Einstellungen abschalten.", + "delete_survey.stay.keep_account": "Mein Konto behalten", + "delete_survey.stay.timing_body": "Zwei Menschen, die hervorragend zueinander gepasst hätten, verpassen sich aus einem einzigen Grund: Sie waren zu unterschiedlichen Zeiten hier. Zu bleiben macht die Überschneidung erst möglich.", + "delete_survey.stay.timing_title": "Es kommt auf den Zeitpunkt an.", + "delete_survey.stay.title": "Eines noch, bevor Sie gehen", + "delete_survey.stay.visible_body": "Die nächste Person, die beitritt, kann Sie finden. Ist Ihr Profil gelöscht, sind Sie für alle unsichtbar, die nach heute dazukommen.", + "delete_survey.stay.visible_title": "Sie bleiben auffindbar.", "delete_survey.title": "Schade, dass Sie gehen", "delete_yourself.confirm_phrase": "delete my account", "delete_yourself.description": "Das Löschen Ihres Kontos bedeutet, dass Sie es nicht mehr verwenden können. Sie verlieren den Zugriff auf alle Ihre Daten.", diff --git a/common/messages/fr.json b/common/messages/fr.json index ee031ceb..d49c992f 100644 --- a/common/messages/fr.json +++ b/common/messages/fr.json @@ -265,6 +265,15 @@ "delete_survey.reasons.taking_a_break": "Je fais une pause des applications de rencontre", "delete_survey.reasons.technical_issues": "Problèmes techniques ou bugs", "delete_survey.reasons.too_much_time_or_effort": "Utiliser la plateforme demandait plus de temps ou d'effort que je ne peux donner", + "delete_survey.stay.alerts_body": "Enregistrez une recherche et nous vous prévenons dès qu'une nouvelle personne y correspond. Vous n'avez jamais besoin de revenir vérifier.", + "delete_survey.stay.alerts_title": "Nous venons à vous.", + "delete_survey.stay.intro": "Compass continue de grandir, et garder votre compte ne vous coûte rien : aucun frais, et vous pouvez désactiver tous les e-mails dans les Paramètres.", + "delete_survey.stay.keep_account": "Garder mon compte", + "delete_survey.stay.timing_body": "Deux personnes qui auraient formé une belle rencontre se manquent pour une seule raison : elles étaient là à des moments différents. Rester, c'est ce qui rend le croisement possible.", + "delete_survey.stay.timing_title": "Tout est une question de moment.", + "delete_survey.stay.title": "Un mot avant votre départ", + "delete_survey.stay.visible_body": "La prochaine personne qui s'inscrit peut vous trouver. Si votre profil disparaît, vous êtes invisible pour tous ceux qui arriveront après aujourd'hui.", + "delete_survey.stay.visible_title": "Vous restez visible.", "delete_survey.title": "Désolé de vous voir partir", "delete_yourself.confirm_phrase": "delete my account", "delete_yourself.description": "Supprimer votre compte signifie que vous ne pourrez plus l'utiliser. Vous perdrez l'accès à toutes vos données.", diff --git a/web/components/profile/delete-account-survey-modal.tsx b/web/components/profile/delete-account-survey-modal.tsx index f0f26ea2..00899345 100644 --- a/web/components/profile/delete-account-survey-modal.tsx +++ b/web/components/profile/delete-account-survey-modal.tsx @@ -8,6 +8,7 @@ import {deleteAccount} from 'web/lib/util/delete' import {ConfirmationButton} from '../buttons/confirmation-button' import {Col} from '../layout/col' import {Title} from '../widgets/title' +import {SCARCITY_DELETION_REASONS, StayInsteadOfDelete} from './stay-instead-of-delete' export function DeleteAccountSurveyModal() { const [selectedReason, setSelectedReason] = useState(null) @@ -125,6 +126,8 @@ export function DeleteAccountSurveyModal() { } } + const showStayPitch = !!selectedReason && SCARCITY_DELETION_REASONS.includes(selectedReason) + return ( + {showStayPitch && ( +
+ +
+ )} + {