From a0f9e0b8898dfbf0a6d66bb7650ac61ce9772eae Mon Sep 17 00:00:00 2001 From: nns Date: Mon, 12 Oct 2026 00:32:37 +0500 Subject: [PATCH] =?UTF-8?q?fix(site):=20=D1=86=D0=B5=D0=BD=D0=B0=20=C2=AB?= =?UTF-8?q?=D1=81=D1=83=D0=BC=D0=BC=D0=B0=20+=20=E2=82=B8=20+=20/=D0=BC?= =?UTF-8?q?=D0=B5=D1=81=C2=BB=20=D0=BD=D0=B5=20=D1=80=D0=B0=D0=B7=D1=80?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B0=D0=BC=20(320=E2=80=93402px?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Круг 3 закрыл только /pricing. Прогон в Safari на iPhone 17 (ширина 402) нашёл ещё два разрыва: главная (hero: «5 / 000 ₸/мес») и /signup после конфигуратора «Бизнес» (итог «14 000 ₸/ | мес» рвётся на слэше, плитки тарифов тоже). Системно, а не точечно: - fmtKzt: разряды и пробел перед «₸» — неразрывные (U+00A0); - новый fmtKztMonth: сумма + «₸» + «/мес» одним куском (word-joiner U+2060 вокруг «/»), используется в SignupForm (плитки + итог «Бизнес»); - index.astro: hero-строка и карточки «Старт»/«Бизнес» — whitespace-nowrap +  ; - BusinessTariffBuilder: подпись «База 10 000 ₸» — nowrap; - контент kb/billing.md, kb/faq.md, blog/launch.md, FAQ.tsx — nbsp + word-joiner в суммах, чтобы цена не рвалась и в тексте. Co-Authored-By: Claude Opus 4.8 --- .../src/components/BusinessTariffBuilder.tsx | 2 +- src/food-market.public/src/components/FAQ.tsx | 2 +- src/food-market.public/src/components/SignupForm.tsx | 8 ++++---- src/food-market.public/src/content/blog/launch.md | 2 +- src/food-market.public/src/content/kb/billing.md | 4 ++-- src/food-market.public/src/content/kb/faq.md | 2 +- src/food-market.public/src/lib/pricing.ts | 8 +++++++- src/food-market.public/src/pages/index.astro | 6 +++--- 8 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/food-market.public/src/components/BusinessTariffBuilder.tsx b/src/food-market.public/src/components/BusinessTariffBuilder.tsx index 2915622..9850702 100644 --- a/src/food-market.public/src/components/BusinessTariffBuilder.tsx +++ b/src/food-market.public/src/components/BusinessTariffBuilder.tsx @@ -51,7 +51,7 @@ export default function BusinessTariffBuilder() {

Конструктор «Бизнес»

-

База 10 000 ₸ + ваши параметры

+

База 10 000 ₸ + ваши параметры

{fmt.format(total)} ₸
diff --git a/src/food-market.public/src/components/FAQ.tsx b/src/food-market.public/src/components/FAQ.tsx index cf0175c..5541fa8 100644 --- a/src/food-market.public/src/components/FAQ.tsx +++ b/src/food-market.public/src/components/FAQ.tsx @@ -7,7 +7,7 @@ const ITEMS = [ }, { q: 'Сколько стоит подписка?', - a: 'Тариф «Старт» — 5 000 ₸/мес (1 магазин, 1 касса, 1 склад). Тариф «Бизнес» — от 10 000 ₸, цена настраивается через конструктор (до 3 магазинов, 5 касс, 5 складов). Тариф «Сеть» — индивидуально для крупных сетей. Все тарифы — 90 дней бесплатно.', + a: 'Тариф «Старт» — 5 000 ₸⁠/⁠мес (1 магазин, 1 касса, 1 склад). Тариф «Бизнес» — от 10 000 ₸, цена настраивается через конструктор (до 3 магазинов, 5 касс, 5 складов). Тариф «Сеть» — индивидуально для крупных сетей. Все тарифы — 90 дней бесплатно.', }, { q: 'Нужно покупать какое-то железо?', diff --git a/src/food-market.public/src/components/SignupForm.tsx b/src/food-market.public/src/components/SignupForm.tsx index 2888046..fd447a9 100644 --- a/src/food-market.public/src/components/SignupForm.tsx +++ b/src/food-market.public/src/components/SignupForm.tsx @@ -1,7 +1,7 @@ import { useState, useEffect } from 'react' import { validateEmail, validatePassword, validatePhone } from '@/lib/validation' import { PhoneInput } from '@/components/PhoneInput' -import { PRICING, businessPrice, clamp, fmtKzt, type BusinessConfig } from '@/lib/pricing' +import { PRICING, businessPrice, clamp, fmtKztMonth, type BusinessConfig } from '@/lib/pricing' const VALID_PLANS = ['start', 'business', 'network'] as const type PlanId = (typeof VALID_PLANS)[number] @@ -223,8 +223,8 @@ export default function SignupForm({ defaultPlan = 'start' }: Props) {
Тариф
{[ - { id: 'start', name: 'Старт', price: `${fmtKzt(PRICING.startPrice)}/мес` }, - { id: 'business', name: 'Бизнес', price: `${fmtKzt(businessTotal)}/мес` }, + { id: 'start', name: 'Старт', price: fmtKztMonth(PRICING.startPrice) }, + { id: 'business', name: 'Бизнес', price: fmtKztMonth(businessTotal) }, { id: 'network', name: 'Сеть', price: 'по запросу' }, ].map((p) => (