Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(): w3c validation and position text validation #3463

Open
wants to merge 7 commits into
base: 5.x
Choose a base branch
from

Conversation

SchwJ
Copy link
Member

@SchwJ SchwJ commented Jul 8, 2024

Проблема

Было несколько проблем связанных со span или его убиранием:

  • Tooltip с сообщением валидации не выравнивается по тексту
  • Сломана валидация W3C при оборачивании дочернего компонента, который содержит div
  • Текстовая валидация не закреплена за полем и может съезжать (при отсутствии span)
  • У контролов не работает ширина в процентах. НЕ УДАЛОСЬ ИСПРАВИТЬ

Решение

Заменила использование span на div в ValidationContainer, ValidationContextWrapper, ValidationText, ValidationWrapperInternal.

Решение занесла под фиче-флаг, который включен. Сделала так, для проверки всех тестов. Если будем успевать влить решение до выпуска 5.0, фиче-флаг стоит убрать.

ValidationContainer -- добавлены тесты на:

  • прокидывание data-tid'а
  • обновление валидации в случае одного поля
  • обновление валидации в случае нескольких полей

ErrorRenderer -- закомментировала тесты 'should not render text error message when validationInfo is not provided' и 'should not render tooltip error message when validationInfo is not provided', так как сейчас у нас нет возможности тестировать по data-tid'у отсутствие валидации.

Ссылки

IF-1692 -- Tooltip выравнивается по тексту -> теперь Tooltip выравнивается по тексту
IF-1689 -- заменить span на div под фиче-флагом -> теперь не ломается валидация W3C, текстовая валидация закреплена за полем. НО ширина в процентах по прежнему не работает. Обсуждали этот момент с Мишей, но не удалось придумать решения для этого пункта.
IF-1684 -- удаление span под фиче-флагом вызывает неправильное позиционирование текста ошибки -> span решили не удалять, а заменить на inline div.

Чек-лист перед запросом ревью

  1. Добавлены тесты на все изменения
    ✅ unit-тесты для логики
    ⬜ скриншоты для верстки и кросс-браузерности
    ⬜ нерелевантно

  2. Добавлена (обновлена) документация
    ✅ styleguidist для пропов и примеров использования компонентов
    ⬜ jsdoc для утилит и хелперов
    ⬜ комментарии для неочевидных мест в коде
    ⬜ прочие инструкции (README.md, contributing.md и др.)
    ⬜ нерелевантно

  3. Изменения корректно типизированы
    ✅ без использования any (см. PR 2856)
    ⬜ нерелевантно

  4. Прочее
    ✅ все тесты и линтеры на CI проходят
    ✅ в коде нет лишних изменений
    ✅ заголовок PR кратко и доступно отражает суть изменений (он попадет в changelog)

@SchwJ SchwJ changed the title fix: some fixes fix(): w3c validation and position text validation Jul 14, 2024
<ValidationContainer ref={this.refContainer}>
<ValidationWrapper validationInfo={this.validateSex()}>
<Checkbox
checked={this.state.checked ? this.state.checked : false}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

как будто checked={this.state.checked ? this.state.checked : false} можно поменять на checked={this.state.checked}

@@ -4,7 +4,7 @@ import ValidationType from './ValidationType/ValidationType.md';
import ErrorMessages from './ErrorMessages/ErrorMessages.md';
import FormValidity from './FormValidity/FormValidity.md';
import ScrollToValidation from './ScrollToValidation/ScrollToValidation.md';
// import FeatureFlagsContext from './FeatureFlags/FeatureFlagsContext.md'; // TODO включить когда появятся фиче-флаги
import FeatureFlagsContext from './FeatureFlags/FeatureFlagsContext.md'; // TODO включить когда появятся фиче-флаги
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// TODO включить когда появятся фиче-флаги теперь не нужно?

@@ -38,6 +38,10 @@ describe('ErrorRenderer', () => {
expect(screen.getByTestId(dataTid)).toBeInTheDocument();
});

/*
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

мб лучше удалить тесты? какой смысл комментированными оставлять?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants