fix lang и номер телефона не даст отправить данные ФК если короче положенного

This commit is contained in:
Nastya 2025-07-26 01:38:35 +03:00
parent 87f78ff8cf
commit b495974dba
4 changed files with 17 additions and 9 deletions

@ -2,6 +2,6 @@ services:
respondent: respondent:
container_name: respondent container_name: respondent
restart: unless-stopped restart: unless-stopped
image: gitea.pena/squiz/frontanswerer/main:latest image: gitea.pena/squiz/frontanswerer/main:202507260140
hostname: respondent hostname: respondent
tty: true tty: true

@ -179,15 +179,26 @@ export const ContactForm = ({ currentQuestion, onShowResult }: Props) => {
// Функция валидации телефона // Функция валидации телефона
const validatePhone = (phoneValue: string) => { const validatePhone = (phoneValue: string) => {
// Если номер не пустой и не полный (меньше 10 символов) - это ошибка // Убираем все нецифровые символы и считаем только цифры
if (phoneValue.length > 0 && phoneValue.length < 10) { const digitsOnly = phoneValue.replace(/\D/g, "");
// Для российских номеров (начинающихся с +7) нужно 11 цифр
// Для остальных стран - минимум 10 цифр
const isRussianNumber = phoneValue.startsWith("+7");
const minDigits = isRussianNumber ? 11 : 10;
// Если есть какие-то символы в инпуте, но цифр меньше минимума - это ошибка
if (phoneValue.trim().length > 0 && digitsOnly.length < minDigits) {
return t("Please complete the phone number"); return t("Please complete the phone number");
} }
return ""; return "";
}; };
// Проверяем валидность телефона при каждом изменении // Проверяем валидность телефона при каждом изменении
const isPhoneValid = phone.length === 0 || phone.length >= 10; const digitsOnly = phone.replace(/\D/g, "");
const isRussianNumber = phone.startsWith("+7");
const minDigits = isRussianNumber ? 11 : 10;
const isPhoneValid = phone.trim().length === 0 || digitsOnly.length >= minDigits;
// Обработчик изменения телефона // Обработчик изменения телефона
const handlePhoneChange = (newPhone: string) => { const handlePhoneChange = (newPhone: string) => {
@ -321,7 +332,7 @@ export const ContactForm = ({ currentQuestion, onShowResult }: Props) => {
</Box> </Box>
<Button <Button
disabled={!(ready && !fire)} disabled={!(ready && !fire && isPhoneValid)}
variant="contained" variant="contained"
onClick={handleShowResultsClick} onClick={handleShowResultsClick}
sx={{ sx={{

@ -26,7 +26,7 @@
"preview": "vite preview", "preview": "vite preview",
"cypress:open": "cypress open", "cypress:open": "cypress open",
"prepublishOnly": "npm run build:package", "prepublishOnly": "npm run build:package",
"deploy": "docker login gitea.pena && docker build -t gitea.pena/squiz/frontanswerer/main:latest . && docker push gitea.pena/squiz/frontanswerer/main:latest", "deploy": "docker login gitea.pena && docker build -t gitea.pena/squiz/frontanswerer/$(git branch --show-current):202507260140 . && docker push gitea.pena/squiz/frontanswerer/$(git branch --show-current):202507260140",
"prepare": "husky" "prepare": "husky"
}, },
"devDependencies": { "devDependencies": {

@ -67,9 +67,6 @@ const r = {
"Get results": "Получить результаты", "Get results": "Получить результаты",
"Data sent successfully": "Данные успешно отправлены", "Data sent successfully": "Данные успешно отправлены",
Step: "Шаг", Step: "Шаг",
of: "из",
Prev: "Пред",
Next: "След",
"questions are not ready yet": "Вопросы для аудитории пока не готовы. Подождите", "questions are not ready yet": "Вопросы для аудитории пока не готовы. Подождите",
"Add your image": "Добавьте своё изображение", "Add your image": "Добавьте своё изображение",
"select emoji": "выберите смайлик", "select emoji": "выберите смайлик",