Show LoginArea on the create-campaign logged-out gate

The gate previously offered only a 'Go home' link, leaving visitors
to find the login flow themselves. Render the existing LoginArea CTA
in its place so the 'Join' / 'Log in' modal opens directly from the
gate, and drop the now-unused campaignsCreate.goHome string from all
sixteen locales.
This commit is contained in:
mkfain
2026-05-25 11:04:56 -05:00
parent 2424c96fb9
commit 2870d7a641
17 changed files with 13 additions and 26 deletions
-1
View File
@@ -406,7 +406,6 @@
"seoDescriptionEdit": "حدّث حملتك التمويلية على {{appName}}.",
"loginGateTitle": "سجّل الدخول لبدء حملة",
"loginGateBody": "الحملات أحداث Nostr موقّعة. تحتاج إلى تسجيل دخول Nostr لنشر حملة.",
"goHome": "العودة للصفحة الرئيسية",
"invalidEditTitle": "رابط تعديل غير صالح",
"invalidEditBody": "رابط تعديل الحملة هذا لا يحمل عنوان حملة صالحًا.",
"startNewCampaign": "بدء حملة جديدة",
-1
View File
@@ -841,7 +841,6 @@
"seoDescriptionEdit": "Update your fundraising campaign on {{appName}}.",
"loginGateTitle": "Log in to start a campaign",
"loginGateBody": "Campaigns are signed Nostr events. You need a Nostr login to publish one.",
"goHome": "Go home",
"invalidEditTitle": "Invalid edit link",
"invalidEditBody": "This campaign edit link is missing a valid campaign address.",
"startNewCampaign": "Start a new campaign",
-1
View File
@@ -418,7 +418,6 @@
"seoDescriptionEdit": "Actualiza tu campaña de recaudación en {{appName}}.",
"loginGateTitle": "Inicia sesión para iniciar una campaña",
"loginGateBody": "Las campañas son eventos firmados de Nostr. Necesitas una sesión de Nostr para publicar una.",
"goHome": "Ir al inicio",
"invalidEditTitle": "Enlace de edición inválido",
"invalidEditBody": "Este enlace de edición de campaña no incluye una dirección válida.",
"startNewCampaign": "Iniciar una campaña nueva",
-1
View File
@@ -418,7 +418,6 @@
"seoDescriptionEdit": "کمپین جمع‌آوری مالی‌ات را روی {{appName}} به‌روز کن.",
"loginGateTitle": "برای شروع کمپین وارد شو",
"loginGateBody": "کمپین‌ها رویدادهای امضاشدهٔ Nostr هستند. برای انتشار به ورود Nostr نیاز داری.",
"goHome": "رفتن به خانه",
"invalidEditTitle": "پیوند ویرایش نامعتبر",
"invalidEditBody": "این پیوند ویرایش کمپین نشانی معتبر کمپین را ندارد.",
"startNewCampaign": "شروع کمپین تازه",
-1
View File
@@ -840,7 +840,6 @@
"seoDescriptionEdit": "Mettez à jour votre campagne de collecte de fonds sur {{appName}}.",
"loginGateTitle": "Connectez-vous pour démarrer une campagne",
"loginGateBody": "Les campagnes sont des événements Nostr signés. Vous avez besoin d'une connexion Nostr pour en publier une.",
"goHome": "Accueil",
"invalidEditTitle": "Lien d'édition invalide",
"invalidEditBody": "Ce lien d'édition de campagne ne contient pas d'adresse de campagne valide.",
"startNewCampaign": "Démarrer une nouvelle campagne",
-1
View File
@@ -850,7 +850,6 @@
"seoDescriptionEdit": "{{appName}} पर अपना फंडरेज़िंग कैंपेन अपडेट करें।",
"loginGateTitle": "कैंपेन शुरू करने के लिए लॉग इन करें",
"loginGateBody": "कैंपेन साइन किए गए Nostr events हैं। एक पब्लिश करने के लिए Nostr लॉगिन चाहिए।",
"goHome": "होम जाएँ",
"invalidEditTitle": "अमान्य एडिट लिंक",
"invalidEditBody": "इस कैंपेन एडिट लिंक में मान्य कैंपेन एड्रेस नहीं है।",
"startNewCampaign": "नया कैंपेन शुरू करें",
-1
View File
@@ -850,7 +850,6 @@
"seoDescriptionEdit": "Perbarui kampanye penggalangan dana Anda di {{appName}}.",
"loginGateTitle": "Masuk untuk memulai kampanye",
"loginGateBody": "Kampanye adalah event Nostr yang ditandatangani. Anda perlu masuk Nostr untuk memublikasikannya.",
"goHome": "Ke beranda",
"invalidEditTitle": "Tautan edit tidak valid",
"invalidEditBody": "Tautan edit kampanye ini kehilangan alamat kampanye yang valid.",
"startNewCampaign": "Mulai kampanye baru",
-1
View File
@@ -418,7 +418,6 @@
"seoDescriptionEdit": "ធ្វើបច្ចុប្បន្នភាពយុទ្ធនាការរបស់អ្នកនៅលើ {{appName}}។",
"loginGateTitle": "ចូលដើម្បីចាប់ផ្តើមយុទ្ធនាការ",
"loginGateBody": "យុទ្ធនាការគឺជាព្រឹត្តិការណ៍ Nostr ដែលបានចុះហត្ថលេខា។ អ្នកត្រូវការការចូល Nostr ដើម្បីផ្សព្វផ្សាយ។",
"goHome": "ត្រឡប់ទៅទំព័រដើម",
"invalidEditTitle": "តំណកែសម្រួលមិនត្រឹមត្រូវ",
"invalidEditBody": "តំណកែសម្រួលយុទ្ធនាការនេះមិនមានអាសយដ្ឋានយុទ្ធនាការត្រឹមត្រូវ។",
"startNewCampaign": "ចាប់ផ្តើមយុទ្ធនាការថ្មី",
-1
View File
@@ -418,7 +418,6 @@
"seoDescriptionEdit": "په {{appName}} کې خپل تمویل کمپاین تازه کړئ.",
"loginGateTitle": "د کمپاین پیلولو لپاره ننوځئ",
"loginGateBody": "کمپاینونه د لاسلیک‌شویو Nostr پیښو په توګه دي. د خپرولو لپاره د Nostr ننوتلو ته اړتیا لرئ.",
"goHome": "کور ته لاړ شه",
"invalidEditTitle": "د سمولو ناسم لینک",
"invalidEditBody": "د دې کمپاین د سمولو لینک د سمې پتې نه لري.",
"startNewCampaign": "نوی کمپاین پیل کړئ",
-1
View File
@@ -850,7 +850,6 @@
"seoDescriptionEdit": "Atualize sua campanha de arrecadação no {{appName}}.",
"loginGateTitle": "Entre para iniciar uma campanha",
"loginGateBody": "Campanhas são eventos Nostr assinados. Você precisa de um login Nostr para publicar uma.",
"goHome": "Ir para o início",
"invalidEditTitle": "Link de edição inválido",
"invalidEditBody": "Este link de edição de campanha não contém um endereço de campanha válido.",
"startNewCampaign": "Iniciar uma nova campanha",
-1
View File
@@ -850,7 +850,6 @@
"seoDescriptionEdit": "Обновите свою кампанию по сбору средств на {{appName}}.",
"loginGateTitle": "Войдите, чтобы запустить кампанию",
"loginGateBody": "Кампании — это подписанные события Nostr. Вам нужен вход Nostr, чтобы опубликовать её.",
"goHome": "На главную",
"invalidEditTitle": "Недействительная ссылка редактирования",
"invalidEditBody": "В этой ссылке редактирования кампании отсутствует действительный адрес кампании.",
"startNewCampaign": "Запустить новую кампанию",
-1
View File
@@ -418,7 +418,6 @@
"seoDescriptionEdit": "Vandudza campaign yako yekuunganidza mari pa{{appName}}.",
"loginGateTitle": "Pinda kuti utange campaign",
"loginGateBody": "Macampaign zviitiko zveNostr zvakasaina. Unoda kupinda muNostr kuti uburitse rimwe.",
"goHome": "Enda kumba",
"invalidEditTitle": "Rink yokugadzirisa haina kushanda",
"invalidEditBody": "Rink iyi yokugadzirisa campaign hapana nzvimbo yecampaign yakakodzera.",
"startNewCampaign": "Tanga campaign idzva",
-1
View File
@@ -849,7 +849,6 @@
"seoDescriptionEdit": "Sasisha kampeni yako ya kukusanya fedha kwenye {{appName}}.",
"loginGateTitle": "Ingia ili kuanza kampeni",
"loginGateBody": "Kampeni ni matukio ya Nostr yaliyotiwa saini. Unahitaji kuingia kwa Nostr ili kuchapisha moja.",
"goHome": "Nenda nyumbani",
"invalidEditTitle": "Kiungo cha kuhariri si halali",
"invalidEditBody": "Kiungo hiki cha kuhariri kampeni hakina anwani halali ya kampeni.",
"startNewCampaign": "Anza kampeni mpya",
-1
View File
@@ -849,7 +849,6 @@
"seoDescriptionEdit": "{{appName}}'daki fon toplama kampanyanızı güncelleyin.",
"loginGateTitle": "Kampanya başlatmak için giriş yapın",
"loginGateBody": "Kampanyalar imzalı Nostr event'leridir. Yayımlamak için bir Nostr girişi gerekir.",
"goHome": "Ana sayfaya dön",
"invalidEditTitle": "Geçersiz düzenleme bağlantısı",
"invalidEditBody": "Bu kampanya düzenleme bağlantısında geçerli bir kampanya adresi yok.",
"startNewCampaign": "Yeni bir kampanya başlat",
-1
View File
@@ -418,7 +418,6 @@
"seoDescriptionEdit": "在 {{appName}} 上更新你的募款活動。",
"loginGateTitle": "登入以發起活動",
"loginGateBody": "活動是簽名的 Nostr 事件。你需要 Nostr 登入才能釋出。",
"goHome": "返回首頁",
"invalidEditTitle": "編輯連結無效",
"invalidEditBody": "此活動編輯連結缺少有效的活動地址。",
"startNewCampaign": "發起一個新活動",
-1
View File
@@ -418,7 +418,6 @@
"seoDescriptionEdit": "在 {{appName}} 上更新你的募款活动。",
"loginGateTitle": "登录以发起活动",
"loginGateBody": "活动是签名的 Nostr 事件。你需要 Nostr 登录才能发布。",
"goHome": "返回首页",
"invalidEditTitle": "编辑链接无效",
"invalidEditBody": "此活动编辑链接缺少有效的活动地址。",
"startNewCampaign": "发起一个新活动",
+13 -10
View File
@@ -1,5 +1,5 @@
import { useEffect, useMemo, useState } from 'react';
import { Link, useNavigate, useSearchParams } from 'react-router-dom';
import { useNavigate, useSearchParams } from 'react-router-dom';
import { useSeoMeta } from '@unhead/react';
import { useMutation, useQueryClient } from '@tanstack/react-query';
import { useNostr } from '@nostrify/react';
@@ -19,6 +19,7 @@ import {
import { CoverImageField } from '@/components/CoverImageField';
import { FormSection } from '@/components/FormSection';
import { OrganizationContextChip } from '@/components/OrganizationContextChip';
import { LoginArea } from '@/components/auth/LoginArea';
import { Alert, AlertDescription } from '@/components/ui/alert';
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
import { Button } from '@/components/ui/button';
@@ -543,15 +544,17 @@ export function CreateCampaignPage() {
<main className="min-h-screen pb-16">
<div className="max-w-2xl mx-auto px-4 sm:px-6 py-12">
<Card>
<CardContent className="py-12 px-8 text-center space-y-4">
<HandHeart className="size-10 text-muted-foreground/60 mx-auto" />
<h2 className="text-xl font-semibold">{t('campaignsCreate.loginGateTitle')}</h2>
<p className="text-muted-foreground">
{t('campaignsCreate.loginGateBody')}
</p>
<Button asChild>
<Link to="/">{t('campaignsCreate.goHome')}</Link>
</Button>
<CardContent className="py-12 px-8 flex flex-col items-center gap-6 text-center">
<div className="p-4 rounded-full bg-primary/10">
<HandHeart className="size-8 text-primary" />
</div>
<div className="space-y-2 max-w-sm">
<h2 className="text-xl font-semibold">{t('campaignsCreate.loginGateTitle')}</h2>
<p className="text-muted-foreground text-sm">
{t('campaignsCreate.loginGateBody')}
</p>
</div>
<LoginArea className="max-w-60" />
</CardContent>
</Card>
</div>