From 981ea3a89317cb2905b26d689ceb7c5c21c97348 Mon Sep 17 00:00:00 2001 From: dmitriylaukhin Date: Wed, 11 Nov 2026 15:22:10 +0500 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B8=D1=82=D1=80=D0=B8=D0=BD=D0=B0:=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D0=B5=D1=84=D0=BE=D0=BD=20=D0=B2=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BA=D0=B0=D0=B7=D0=B5=20=D0=BE=D0=B1=D1=8F=D0=B7=D0=B0?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D0=B5=D0=BD,=20=D0=BF=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B7=D0=B0=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D0=BF=D1=80=D0=BE=D1=84=D0=B8=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit payment-router с 20261111 требует телефон (слово владельца: писать покупателю в Telegram, если оплата не прошла). Поле видимое, обязательное, подставляется User.phone, если есть. Co-Authored-By: Claude Opus 5.5 --- src/app/(student)/dashboard/page.tsx | 4 +-- .../student/store-checkout-modal.tsx | 30 ++++++++++++++++++- src/components/student/store-showcase.tsx | 2 +- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/app/(student)/dashboard/page.tsx b/src/app/(student)/dashboard/page.tsx index 528e5ed..045511a 100644 --- a/src/app/(student)/dashboard/page.tsx +++ b/src/app/(student)/dashboard/page.tsx @@ -14,7 +14,7 @@ export default async function StudentDashboard() { const dbUser = await prisma.user.findUnique({ where: { id: session.user.id }, - select: { archetype: true }, + select: { archetype: true, phone: true }, }); const enrollments = await prisma.courseEnrollment.findMany({ @@ -168,7 +168,7 @@ export default async function StudentDashboard() { {locked.length > 0 && ( )} diff --git a/src/components/student/store-checkout-modal.tsx b/src/components/student/store-checkout-modal.tsx index 9b1fa9f..0c9c5c0 100644 --- a/src/components/student/store-checkout-modal.tsx +++ b/src/components/student/store-checkout-modal.tsx @@ -30,7 +30,7 @@ interface PayMethod { interface Props { course: LockedCourse; entry: StoreCatalogEntry; - buyer: { name: string; email: string }; + buyer: { name: string; email: string; phone?: string | null }; onClose: () => void; } @@ -257,6 +257,34 @@ export function StoreCheckoutModal({ course, entry, buyer, onClose }: Props) { )} + {/* Phone — required by payment-router since 20261111 (owner messages buyers in Telegram) */} +
+ + (e.currentTarget.style.borderColor = "var(--foreground)")} + onBlur={(e) => (e.currentTarget.style.borderColor = "var(--border)")} + /> +

+ Напишу в Telegram, если с оплатой что-то пойдёт не так. +

+
+ {/* Promo code */}