Saytda yozishmalar ishlamay qoldi. Belgi bitta va juda yoqimsiz edi: odam «Yozish» tugmasini bosadi va umuman hech narsa bo'lmaydi.
Bunday nosozlik halol «bo'lmadi» dan yomonroq. Matnli xato nima qilish kerakligini aytadi, sukut esa hech narsa aytmaydi.
Uchta sabab bor edi. Birinchi: server amali rad javobini qaytarish o'rniga istisno tashlashi mumkin — sessiya tugaganda shunday bo'ladi. try/catch bo'lmasa, u yo'qoladi.
Ikkinchi: amal ishladi, lekin o'tish bo'lmadi. Uchinchi: o'tish olib boradigan sahifaning o'zi server xatosi bilan qulardi.
Xulosa: interfeysda «hech narsa bo'lmadi» holati bo'lmasligi kerak.
React · TSX
1functionwrite(userId: string) {2start(async () => {3try {4constresult = awaitopenConversation(userId);56if (result.ok && result.conversationId) {7// Обычный переход, а не router.push: тот, вызванный сразу8// после серверного действия, молча не срабатывал.9window.location.assign(10`/${locale}/account/messages/${result.conversationId}`,11 );12 } else {13setSearchNote(result.message ?? "Не удалось открыть переписку");14 }15 } catch {16// Действие может БРОСИТЬ, а не вернуть отказ — например, когда17// истекла сессия. Без перехвата кнопка молча не делала бы ничего.18setSearchNote(19"Не получилось — возможно, истёк вход. Обновите страницу и войдите заново.",20 );21 }22 });23}