В последней стабильной версии при нажатии кнопки «Создать ссылку для приглашения» на странице /u/user_name/invited/pending возникает ошибка JavaScript.
В консоли отображается:
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘slice’)
at h.shortKey (chunk.f105ceace2ad381ddb2f.d41d8cd9.js:241:61588)
Если объект приглашения отображается до того, как поле invite_key будет заполнено данными с сервера, то invite_key оказывается неопределённым (undefined), и приложение падает при попытке вызвать .slice() для пустого значения.
В файле invite.js функция shortKey пытается сократить ключ приглашения:
shortKey(key) {
return key.slice(0, 4) + "…";
}
Мне не удалось воспроизвести эту ошибку на meta, возможно, я сталкиваюсь с ней из-за меньшей скорости моего сервера или сети. Однако проверка наличия ключа перед использованием, похоже, решает проблему:
Я посмотрел код и не уверен, откуда может появиться частично заполненный объект, даже когда я добавил задержку 400 мс в сети здесь — воспроизвести не удалось.
Думаю, нам нужен какой-то сценарий воспроизведения перед исправлением, так как это исправление в итоге позволит людям скопировать нерабочую ссылку приглашения.
Приглашение добавляется в список сразу после вызова save(), но до того, как invite_key будет заполнен данными с сервера. Оно всё ещё присутствует в latest, поэтому я открыл PR #35679