-
head authored
В Wizard.tsx я вызывал server action через обычный await без transition. createLotAction на успехе делает redirect(), который бросает NEXT_REDIRECT. Без React transition / useActionState Next не перехватывает это как навигацию — exception уходит в promise rejection, submitting остаётся true, юзер видит «Создаю...» бесконечно. Fix: заменил useState(submitting) → useTransition. Оборачиваю await createLotAction(...) в startSubmit(async () => {...}). Теперь Next умеет обработать redirect в рамках transition → реальная навигация на /me?created=<id>. localStorage draft чистится на успехе (если до сюда дошли — значит ошибка). Ручное смоке: - Заполняешь все 4 шага → «Опубликовать» → редирект на /me → лот появляется в «Моих лотах» (на модерации).head authoredВ Wizard.tsx я вызывал server action через обычный await без transition. createLotAction на успехе делает redirect(), который бросает NEXT_REDIRECT. Без React transition / useActionState Next не перехватывает это как навигацию — exception уходит в promise rejection, submitting остаётся true, юзер видит «Создаю...» бесконечно. Fix: заменил useState(submitting) → useTransition. Оборачиваю await createLotAction(...) в startSubmit(async () => {...}). Теперь Next умеет обработать redirect в рамках transition → реальная навигация на /me?created=<id>. localStorage draft чистится на успехе (если до сюда дошли — значит ошибка). Ручное смоке: - Заполняешь все 4 шага → «Опубликовать» → редирект на /me → лот появляется в «Моих лотах» (на модерации).
Loading