Черновик- js: потеря курсора с нередактируемыми компонентами сущности - PullRequest
1 голос
/ 28 марта 2020

У меня есть редактор, который должен иметь сущности с реквизитом name, color, start, end. В редакторе текст в позициях, обозначенных start и end, будет заменен на name, и он будет отображаться пользовательским компонентом с contentEditable=false.

. Это прекрасно работает с черновиком js в целом, но есть несколько проблем:

  • При перемещении курсора с помощью стрелок на клавиатуре объекты пропускаются, что хорошо. Но когда объект находится в самом конце ввода, и я пытаюсь пройти вправо мимо него (либо с помощью стрелки вправо, либо с помощью параметра, либо cmd + вправо), курсор исчезает и не возвращается, когда я снова двигаюсь влево.
  • Если I go справа от объекта и pu sh shift + option + стрелка вправо, объект выбирается, как и ожидалось. Но если я затем нажму стрелку влево, курсор также потеряется.

Я мог бы это исправить, убедившись, что после такой последней сущности всегда есть пробел, но это кажется хакерским и, вероятно, имеет крайние случаи.

Другой вариант - не использовать contentEditable=false, но это создает другие проблемы с моим реальным приложением, которое имеет более сложный компонент сущности, включая раскрывающийся список, и мне придется вручную убедиться, что пользователь не сможет изменить текст внутри сущностей и т. д. c.

Вот репродукция вопроса: https://codesandbox.io/s/competent-surf-st77i

Есть идеи?

...