Olddevs UI3.38.0
Рецепты

Автосохранение и Строка статуса

Сохранение по уходу фокуса, «Сохранено» для скринридера и число слов под полем.

Строка под Документом делится на два места: Строка статуса — то, что кладёт экран (status), и счётчик кита у maxLength. Рецепт сохраняет Документ, когда автор ушёл из поля, и говорит об этом.

0 words

Поправьте текст и щёлкните мимо поля: появится «Saving…», затем «Saved». Счётчик символов кита появится, когда текст подойдёт к 80 % предела.

Как устроено

  • onBlur — о Фокусе поля целиком. Переход в Панель, поповер ссылки и обратно его не вызывает. Перед onBlur кит выталкивает отложенный onChange, но состояние экрана ещё не перерисовано — поэтому свежий Документ берётся из Хэндла: ref.current.getHTML().
  • Живой регион стоит постоянно. Меняется только текст внутри role="status": регион, вставленный вместе с текстом, скринридеры часто не читают.
  • Число слов — без role. Иначе оно звучало бы на каждую правку. Кит сам строку не озвучивает.
  • Ошибку сохранения показывайте там же, где экран показывает ошибки формы. showNotice — для событий самого поля (отказ вставки, загрузка файла).

На этой странице