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

patch(v5): pr6274 #6402

Commits on Jan 18, 2024

  1. fix[CustomSelect]: Disable autocomplete tooltip on iOS in readonly mo…

    …de (#6274)
    
    Согласно #6205 в мобильном iOS при клике на селект, в обычном режиме (не `searchable`), в верхней части страницы появляется тултип `Автозаполнение`. Появляется иммено в этом режиме, потому что в обычном режиме мы тоже показываем `input`, но он `readonly`.
    Ни одно из свойств, типа `autoComplete` и пр., не помогают, iOS их, в некотором смысле игнорирует.
    
    В других библиотеках обычный селект просто не рендерит `input`, а довольствуется `div`.
    
    Не хочется менять input на div, потому что это может привезти к тому, что при клике на связанный лэйбл `div` фокус не попадёт на селект.
    
    Изменения
    - решил, что лучшим решением будет спрятать инпут в режиме `readonly`. Это позволит избавится от назойливого тултипа. В то же время, это не изменит ничего во взаимодействии с селектом. Это не помешает фокусу на инпуте при клике, не помешает навигации с клавиатуры, фокус при клике на label продолжит работать. Всё потому, что у нас есть обёртка, которая всегда ловит клик и передаёт фокус инпуту.
    Альтернативный вариант решения это отключение `pointer-events`. Но хотелось этого избежать, потому что Playwright тогда не может по инпуту попасть. Пока искал решенеие пришел к `VisuallyHidden`. В целом можно и c `pointer-events: none`, результат будет тот же.
    
    В режиме `searchable` input остаётся как есть, там тултип появляется в нормальном месте.
    
    - в тоже время добавил свойства, которые по идее тоже должны были бы помочь, такие же свойства мы используем в ChipsSelect.
    - переместил эти дополнительные свойства выше, до `{...restProps}`, чтобы их мог бы задать/поменять пользователь.
    mendrew committed Jan 18, 2024
    Configuration menu
    Copy the full SHA
    e356ce3 View commit details
    Browse the repository at this point in the history