Skip to content

[BREAKING CHANGE][restProps]: перенести в корневой элемент у File #9044

@inomdzhon

Description

@inomdzhon

Для File

  • перенести ...restProps в корневой элемент
  • для скрытого инпута определить специфичные для него свойства и деструктуризировать их

Свойства для скрытого инпута

Состояния

  • disabled
  • readOnly
  • required
  • autoFocus

Идентификаторы и данные

  • id
  • name
  • value

Прием файлов

  • accept
  • capture
  • multiple
  • size

Разное

  • tabIndex
  • form

События

  • onChange – в типе сохраняем ChangEvent<HTMLInputElement>
  • Остальные события будут всплывать. В случае бага, будем точечно переносить. Поэтому в Кодмоде пропускаем on<event>. UPD 03.02.2026 пользователи могут использовать *.currentTarget и типы, поэтому нужно занести в кодмод события:
    • onInput
    • onInputCapture
    • onClick
    • onClickCapture
    • onPaste
    • onPasteCapture
    • onKeyDown
    • onKeyDownCapture
    • onKeyUp
    • onKeyUpCapture

Нюансы про свойства на родителе

  • onClick на родителе нужно обрабатывать так:

    if (onClickProp && event.target.tagName === 'INPUT')
      onClickProp(event);
    }

    Иначе будет двойной вызов из-за <label>

  • onFocus/onBlur в event.target будут отдавать <input />, кроме случае, когда передали tabIndex – тогда event.target будет родительский <label />.

Кодмод

Помимо свойств из секции Кодмод в задаче #2342 (comment) ниже список из InputHTMLAttributes, который потенциально может передаваться – переносим их в slotProps.input при нахождении.

Исключения:
см. Свойства для скрытого инпута

Metadata

Metadata

Projects

Status

✅ Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions