Измените значение раскрывающегося списка Quilljs с помощью выбора

#javascript #wysiwyg #quill

Вопрос:

Я создал пользовательское выпадающее меню для своего редактора перьев, в котором применяются классы css (oracle_text, game_mechanics, обычный). Он работает так, как было объявлено, выберите класс в раскрывающемся списке, и он будет применен в Quill. Классы являются стилями уровня блока, применяемыми ко всему абзацу.

Как я могу изменить значение раскрывающегося списка, если пользователь помещает курсор в строку с указанным классом. Например: если пользователь помещает курсор в строку с классом game_mechanics, как я могу изменить выпадающее меню на game_mechanics (Механика)?

 /* Initialize Quill editor */
const Block = Quill.import('blots/block');

class OracleText extends Block {}
OracleText.blotName = 'oracle_text';
OracleText.className = 'oracle_text';
OracleText.tagName = 'blockquote';
Quill.register(OracleText);

class GameMechanics extends Block {}
GameMechanics.blotName = 'game_mechanics';
GameMechanics.className = 'game_mechanics';
GameMechanics.tagName = 'blockquote';
Quill.register(GameMechanics);

let quill = new Quill('#LogBook', {
  theme: 'snow',
  modules: {
    toolbar: {
      container: [
        [{ 'placeholder': ['oracle_text', 'game_mechanics', 'normal'] }],
        ['bold', 'italic', 'underline', 'strike'],
        [{ 'size': ['small', false, 'large', 'huge'] }],
        [{ 'header': [1, 2, 3, 4, 5, 6, false] }],
        ['clean']
      ],
      handlers: {
        "placeholder": function (value) { 
          if (value) {
            switch (value) {
              case "normal":
                var range = quill.getSelection();
                quill.removeFormat(range.index, range.length);
              default:
                quill.format(value, true);
            }
          }
        }
      }
    }
  }
});