diff --git a/src/components/crew/CordnNativePanel.tsx b/src/components/crew/CordnNativePanel.tsx index a0ef03c..eefeee4 100644 --- a/src/components/crew/CordnNativePanel.tsx +++ b/src/components/crew/CordnNativePanel.tsx @@ -448,6 +448,18 @@ export function CordnNativePanel({ setAwaiting(true); }, [native, user?.pubkey]); + const handleApprove = useCallback(async (request: { pk: string; kp_ref: string; at: number }) => { + const ok = await native.approve( + request.kp_ref || request.pk, + request.pk, + { pk: request.pk, at: request.at }, + ); + if (ok) { + setNotice(t('cordnUi.requestHandled')); + window.setTimeout(() => setNotice(null), 2500); + } + }, [native, t]); + const handleCheckInvite = useCallback(async () => { if (native.busy) return; setNotice(null); @@ -1129,7 +1141,7 @@ export function CordnNativePanel({ key={`${req.pk}-${req.kp_ref}`} pubkey={req.pk} disabled={native.busy} - onApprove={() => void native.approve(req.kp_ref || req.pk, req.pk, { pk: req.pk, at: req.at })} + onApprove={() => void handleApprove(req)} botPubkey={botPubkey} botName={copy.botName} /> diff --git a/src/i18n/ca/batch1.ts b/src/i18n/ca/batch1.ts index adc98f1..8c3d7a1 100644 --- a/src/i18n/ca/batch1.ts +++ b/src/i18n/ca/batch1.ts @@ -919,6 +919,7 @@ const batch1 = { "create": "Crea el xat privat", "requestJoin": "Demana d'unir-t'hi", "requestAgain": "Request again", + "requestHandled": "Request handled", "cordnWebCaveat": "Cordn web may stall after sign-in; the in-app join is more reliable.", "checkInvite": "Comprova si hi ha invitació", "requested": "Sol·licitud enviada: un administrador de la colla l'aprovarà.", diff --git a/src/i18n/cs/drift.ts b/src/i18n/cs/drift.ts index 4c9326c..4525b2f 100644 --- a/src/i18n/cs/drift.ts +++ b/src/i18n/cs/drift.ts @@ -308,6 +308,7 @@ const drift = { "create": "Vytvořit soukromý chat", "requestJoin": "Požádat o připojení", "requestAgain": "Request again", + "requestHandled": "Request handled", "cordnWebCaveat": "Cordn web may stall after sign-in; the in-app join is more reliable.", "checkInvite": "Zkontrolovat pozvánku", "requested": "Žádost odeslána — administrátor crew ji schválí.", diff --git a/src/i18n/de/drift.ts b/src/i18n/de/drift.ts index 8607a94..39ce04b 100644 --- a/src/i18n/de/drift.ts +++ b/src/i18n/de/drift.ts @@ -310,6 +310,7 @@ const drift = { create: "Privaten Chat erstellen", requestJoin: "Um Beitritt bitten", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Nach Einladung suchen", requested: "Anfrage gesendet – ein Crew-Admin wird sie genehmigen.", diff --git a/src/i18n/el/drift.ts b/src/i18n/el/drift.ts index f2125d4..096b0ad 100644 --- a/src/i18n/el/drift.ts +++ b/src/i18n/el/drift.ts @@ -312,6 +312,7 @@ const drift = { create: "Δημιουργία ιδιωτικής συνομιλίας", requestJoin: "Ζήτα συμμετοχή", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Έλεγχος πρόσκλησης", requested: "Το αίτημα στάλθηκε — ένας διαχειριστής του crew θα το εγκρίνει.", diff --git a/src/i18n/eu/batch1.ts b/src/i18n/eu/batch1.ts index cf9de93..6998997 100644 --- a/src/i18n/eu/batch1.ts +++ b/src/i18n/eu/batch1.ts @@ -919,6 +919,7 @@ const batch1 = { create: "Sortu txat pribatua", requestJoin: "Eskatu sartzea", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Egiaztatu gonbidapena", requested: "Eskaera bidali da — taldeko administratzaile batek onartuko du.", diff --git a/src/i18n/fr/drift.ts b/src/i18n/fr/drift.ts index af75f4b..a757d37 100644 --- a/src/i18n/fr/drift.ts +++ b/src/i18n/fr/drift.ts @@ -310,6 +310,7 @@ const drift = { create: "Créer le chat privé", requestJoin: "Demander à rejoindre", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Vérifier l'invitation", requested: "Demande envoyée — un admin de la Crew l'approuvera.", diff --git a/src/i18n/gl/batch1.ts b/src/i18n/gl/batch1.ts index c9b5fcf..45e6ff8 100644 --- a/src/i18n/gl/batch1.ts +++ b/src/i18n/gl/batch1.ts @@ -919,6 +919,7 @@ const batch1 = { create: "Crear o chat privado", requestJoin: "Pedir acceso", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Comprobar se hai invitación", requested: "Solicitude enviada: un administrador da crew aprobaraa.", diff --git a/src/i18n/hi/batch1.ts b/src/i18n/hi/batch1.ts index 8432b23..3a40396 100644 --- a/src/i18n/hi/batch1.ts +++ b/src/i18n/hi/batch1.ts @@ -919,6 +919,7 @@ const batch1 = { "create": "निजी चैट बनाएँ", "requestJoin": "शामिल होने का अनुरोध करें", "requestAgain": "Request again", + "requestHandled": "Request handled", "cordnWebCaveat": "Cordn web may stall after sign-in; the in-app join is more reliable.", "checkInvite": "निमंत्रण जाँचें", "requested": "अनुरोध भेजा गया — क्रू एडमिन इसे स्वीकृत करेगा।", diff --git a/src/i18n/id/drift.ts b/src/i18n/id/drift.ts index 3829cc7..b202d1b 100644 --- a/src/i18n/id/drift.ts +++ b/src/i18n/id/drift.ts @@ -304,6 +304,7 @@ const driftStrings = { create: 'Buat chat privat', requestJoin: 'Minta gabung', requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: 'Periksa undangan', requested: 'Permintaan terkirim — admin crew akan menyetujuinya.', diff --git a/src/i18n/it/drift.ts b/src/i18n/it/drift.ts index fb904ff..79f3872 100644 --- a/src/i18n/it/drift.ts +++ b/src/i18n/it/drift.ts @@ -310,6 +310,7 @@ const drift = { create: "Crea la chat privata", requestJoin: "Chiedi di unirti", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Controlla l'invito", requested: "Richiesta inviata — un admin della crew la approverà.", diff --git a/src/i18n/ja/drift.ts b/src/i18n/ja/drift.ts index c9f5773..7cb777e 100644 --- a/src/i18n/ja/drift.ts +++ b/src/i18n/ja/drift.ts @@ -320,6 +320,7 @@ const drift: Dict = { create: 'プライベートチャットを作成', requestJoin: '参加をリクエスト', requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: '招待を確認', requested: 'リクエストを送信しました — クルー管理者が承認します。', diff --git a/src/i18n/ko/drift.ts b/src/i18n/ko/drift.ts index f65db13..d59e630 100644 --- a/src/i18n/ko/drift.ts +++ b/src/i18n/ko/drift.ts @@ -320,6 +320,7 @@ const drift: Dict = { create: '비공개 채팅 만들기', requestJoin: '참여 요청', requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: '초대 확인', requested: '요청을 보냈습니다 — 크루 관리자가 승인합니다.', diff --git a/src/i18n/legacy/cordnUi.ts b/src/i18n/legacy/cordnUi.ts index f8c0e4e..aa9b57f 100644 --- a/src/i18n/legacy/cordnUi.ts +++ b/src/i18n/legacy/cordnUi.ts @@ -17,6 +17,7 @@ const cordnUi = { create: 'Create the private chat', requestJoin: 'Ask to join', requestAgain: 'Request again', + requestHandled: 'Request handled', cordnWebCaveat: 'Cordn web may stall after sign-in; the in-app join is more reliable.', checkInvite: 'Check for invite', requested: 'Request sent — a crew admin will approve it.', @@ -121,6 +122,7 @@ const cordnUi = { create: 'Crear el chat privado', requestJoin: 'Pedir entrar', requestAgain: 'Volver a pedir', + requestHandled: 'Solicitud gestionada', cordnWebCaveat: 'Cordn web puede quedarse colgado tras iniciar sesión; entrar desde la app es más fiable.', checkInvite: 'Buscar invitación', requested: 'Solicitud enviada: un administrador la aprobará.', diff --git a/src/i18n/nl/drift.ts b/src/i18n/nl/drift.ts index ee042a7..bf32874 100644 --- a/src/i18n/nl/drift.ts +++ b/src/i18n/nl/drift.ts @@ -308,6 +308,7 @@ const drift = { "create": "De privéchat aanmaken", "requestJoin": "Vragen om deel te nemen", "requestAgain": "Request again", + "requestHandled": "Request handled", "cordnWebCaveat": "Cordn web may stall after sign-in; the in-app join is more reliable.", "checkInvite": "Op uitnodiging controleren", "requested": "Verzoek verzonden — een crew-admin keurt het goed.", diff --git a/src/i18n/pl/drift.ts b/src/i18n/pl/drift.ts index 71b9f6d..56e407c 100644 --- a/src/i18n/pl/drift.ts +++ b/src/i18n/pl/drift.ts @@ -308,6 +308,7 @@ const drift = { "create": "Utwórz prywatny czat", "requestJoin": "Poproś o dołączenie", "requestAgain": "Request again", + "requestHandled": "Request handled", "cordnWebCaveat": "Cordn web may stall after sign-in; the in-app join is more reliable.", "checkInvite": "Sprawdź zaproszenie", "requested": "Prośba wysłana — administrator crew ją zatwierdzi.", diff --git a/src/i18n/pt/drift.ts b/src/i18n/pt/drift.ts index cc752f6..d16efb9 100644 --- a/src/i18n/pt/drift.ts +++ b/src/i18n/pt/drift.ts @@ -310,6 +310,7 @@ const drift = { create: "Criar o chat privado", requestJoin: "Pedir para entrar", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Verificar convite", requested: "Solicitação enviada — um admin da crew vai aprovar.", diff --git a/src/i18n/ro/drift.ts b/src/i18n/ro/drift.ts index 71b5d27..23fea1c 100644 --- a/src/i18n/ro/drift.ts +++ b/src/i18n/ro/drift.ts @@ -308,6 +308,7 @@ const drift = { "create": "Creează chatul privat", "requestJoin": "Cere să te alături", "requestAgain": "Request again", + "requestHandled": "Request handled", "cordnWebCaveat": "Cordn web may stall after sign-in; the in-app join is more reliable.", "checkInvite": "Verifică invitația", "requested": "Cerere trimisă — un admin de crew o va aproba.", diff --git a/src/i18n/ru/drift.ts b/src/i18n/ru/drift.ts index 7c60d1a..7349502 100644 --- a/src/i18n/ru/drift.ts +++ b/src/i18n/ru/drift.ts @@ -312,6 +312,7 @@ const drift = { create: "Создать приватный чат", requestJoin: "Попросить присоединиться", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Проверить приглашение", requested: "Запрос отправлен — администратор Crew одобрит его.", diff --git a/src/i18n/sv/drift.ts b/src/i18n/sv/drift.ts index 680bd97..1ec5151 100644 --- a/src/i18n/sv/drift.ts +++ b/src/i18n/sv/drift.ts @@ -312,6 +312,7 @@ const drift = { create: "Skapa den privata chatten", requestJoin: "Be om att gå med", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Kontrollera inbjudan", requested: "Begäran skickad — en crewadmin godkänner den.", diff --git a/src/i18n/th/drift.ts b/src/i18n/th/drift.ts index ec94033..933cc9b 100644 --- a/src/i18n/th/drift.ts +++ b/src/i18n/th/drift.ts @@ -304,6 +304,7 @@ const driftStrings = { create: 'สร้างแชทส่วนตัว', requestJoin: 'ขอเข้าร่วม', requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: 'ตรวจสอบคำเชิญ', requested: 'ส่งคำขอแล้ว — แอดมิน crew จะอนุมัติ', diff --git a/src/i18n/tr/drift.ts b/src/i18n/tr/drift.ts index d107cd5..ca64228 100644 --- a/src/i18n/tr/drift.ts +++ b/src/i18n/tr/drift.ts @@ -304,6 +304,7 @@ const driftStrings = { create: 'Özel sohbeti oluştur', requestJoin: 'Katılmayı iste', requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: 'Davetiye kontrol et', requested: 'İstek gönderildi — bir crew yöneticisi onaylayacak.', diff --git a/src/i18n/uk/drift.ts b/src/i18n/uk/drift.ts index a630166..e82a0f2 100644 --- a/src/i18n/uk/drift.ts +++ b/src/i18n/uk/drift.ts @@ -312,6 +312,7 @@ const drift = { create: "Створити приватний чат", requestJoin: "Попросити приєднатися", requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: "Перевірити запрошення", requested: "Запит надіслано — адміністратор команди його схвалить.", diff --git a/src/i18n/vi/drift.ts b/src/i18n/vi/drift.ts index 9cacbe2..14b5565 100644 --- a/src/i18n/vi/drift.ts +++ b/src/i18n/vi/drift.ts @@ -304,6 +304,7 @@ const driftStrings = { create: 'Tạo chat riêng tư', requestJoin: 'Xin tham gia', requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: 'Kiểm tra lời mời', requested: 'Đã gửi yêu cầu — quản trị viên crew sẽ duyệt.', diff --git a/src/i18n/zh-CN/drift.ts b/src/i18n/zh-CN/drift.ts index 0e7f336..1894174 100644 --- a/src/i18n/zh-CN/drift.ts +++ b/src/i18n/zh-CN/drift.ts @@ -320,6 +320,7 @@ const drift: Dict = { create: '创建私密聊天', requestJoin: '请求加入', requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: '检查邀请', requested: '请求已发送——Crew 管理员会批准。', diff --git a/src/i18n/zh-TW/drift.ts b/src/i18n/zh-TW/drift.ts index b4ce0f2..34aa765 100644 --- a/src/i18n/zh-TW/drift.ts +++ b/src/i18n/zh-TW/drift.ts @@ -320,6 +320,7 @@ const drift: Dict = { create: '建立私密聊天', requestJoin: '要求加入', requestAgain: "Request again", + requestHandled: "Request handled", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: '檢查邀請', requested: '要求已送出——Crew 管理員會批准。',