Sha256: c48e5e76acd56a9780ec7f2bc5fbe2bfaf762ebca715a0d55def341af7a38df1

Contents?: true

Size: 1.56 KB

Versions: 11

Compression:

Stored size: 1.56 KB

Contents

//= require thredded/core/thredded
//= require thredded/core/escape_html

(() => {
  const Thredded = window.Thredded;

  Thredded.UserTextcomplete = {
    DROPDOWN_CLASS_NAME: 'thredded--textcomplete-dropdown',

    formatUser({avatar_url, name}) {
      return "<div class='thredded--textcomplete-user-result'>" +
        `<img class='thredded--textcomplete-user-result__avatar' src='${Thredded.escapeHtml(avatar_url)}' >` +
        `<span class='thredded--textcomplete-user-result__name'>${Thredded.escapeHtml(name)}</span>` +
        '</div>';
    },

    searchFn({url, autocompleteMinLength}) {
      return function search(term, callback, match) {
        if (term.length < autocompleteMinLength) {
          callback([]);
          return;
        }
        const request = new XMLHttpRequest();
        request.open('GET', `${url}?q=${term}`, /* async */ true);
        request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
        request.onload = () => {
          // Ignore errors
          if (request.status < 200 || request.status >= 400) {
            callback([]);
            return;
          }
          callback(JSON.parse(request.responseText).results.map(({avatar_url, id, name}) => {
            return {avatar_url, id, name, match};
          }));
        };
        request.send();
      }
    }
  };

  document.addEventListener('turbolinks:before-cache', () => {
    Array.prototype.forEach.call(
      document.getElementsByClassName(Thredded.UserTextcomplete.DROPDOWN_CLASS_NAME), (node) => {
        node.parentNode.removeChild(node);
      });
  });
})();

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
thredded-0.14.1 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.14.0 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.13.8 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.13.7 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.13.6 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.13.5 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.13.4 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.13.3 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.13.2 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.13.1 app/assets/javascripts/thredded/components/user_textcomplete.es6
thredded-0.13.0 app/assets/javascripts/thredded/components/user_textcomplete.es6