From 0c41adccffb73d3ce04ddd6766a96d941c26d890 Mon Sep 17 00:00:00 2001
From: Roger Braun <roger@rogerbraun.net>
Date: Mon, 24 Apr 2017 20:30:09 +0200
Subject: [PATCH] Remove tributejs

Alternative autocompletion is in the works and this one has injection problems.
---
 package.json                                  |  1 -
 .../post_status_form/post_status_form.js      | 61 -------------------
 yarn.lock                                     |  4 --
 3 files changed, 66 deletions(-)

diff --git a/package.json b/package.json
index 74706389a..3c10483a4 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,6 @@
     "object-path": "^0.11.3",
     "sanitize-html": "^1.13.0",
     "sass-loader": "^4.0.2",
-    "tributejs": "^2.1.0",
     "vue": "^2.1.0",
     "vue-router": "^2.2.0",
     "vue-template-compiler": "^2.1.10",
diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js
index 01aeeb686..cba080eae 100644
--- a/src/components/post_status_form/post_status_form.js
+++ b/src/components/post_status_form/post_status_form.js
@@ -1,8 +1,6 @@
 import statusPoster from '../../services/status_poster/status_poster.service.js'
 import MediaUpload from '../media_upload/media_upload.vue'
 import fileTypeService from '../../services/file_type/file_type.service.js'
-import Tribute from '../../../node_modules/tributejs/src/Tribute.js'
-require('../../../node_modules/tributejs/scss/tribute.scss')
 
 import { merge, reject, map, uniqBy } from 'lodash'
 
@@ -21,50 +19,6 @@ const buildMentionsString = ({user, attentions}, currentUser) => {
   return mentions.join(' ') + ' '
 }
 
-const defaultCollection = {
-  // symbol that starts the lookup
-  trigger: '@',
-
-  // element to target for @mentions
-  iframe: null,
-
-  // class added in the flyout menu for active item
-  selectClass: 'highlight',
-
-  // function called on select that returns the content to insert
-  selectTemplate: function (item) {
-    return '@' + item.original.screen_name
-  },
-
-  // template for displaying item in menu
-  menuItemTemplate: function (item) {
-    return `<img src="${item.original.profile_image_url}"></img> <div class='name'>${item.string}</div>`
-  },
-
-  // template for when no match is found (optional),
-  // If no template is provided, menu is hidden.
-  noMatchTemplate: null,
-
-  // specify an alternative parent container for the menu
-  menuContainer: document.body,
-
-  // column to search against in the object (accepts function or string)
-  lookup: ({name, screen_name}) => `${name} (@${screen_name})`, // eslint-disable-line camelcase
-
-  // column that contains the content to insert by default
-  fillAttr: 'screen_name',
-
-  // REQUIRED: array of objects to match
-  values: [],
-
-  // specify whether a space is required before the trigger character
-  requireLeadingSpace: true,
-
-  // specify whether a space is allowed in the middle of mentions
-  allowSpaces: false
-}
-
-const tribute = new Tribute({ collection: [] })
 
 const PostStatusForm = {
   props: [
@@ -95,23 +49,8 @@ const PostStatusForm = {
   computed: {
     users () {
       return this.$store.state.users.users
-    },
-    completions () {
-      let users = this.users
-      users = merge({values: users}, defaultCollection)
-      return [users]
-    }
-  },
-  watch: {
-    completions () {
-      tribute.collection = this.completions
     }
   },
-  mounted () {
-    const textarea = this.$el.querySelector('textarea')
-    tribute.collection = this.completions
-    tribute.attach(textarea)
-  },
   methods: {
     postStatus (newStatus) {
       statusPoster.postStatus({
diff --git a/yarn.lock b/yarn.lock
index 677c96905..6249966e8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5500,10 +5500,6 @@ tough-cookie@~2.3.0:
   dependencies:
     punycode "^1.4.1"
 
-tributejs@^2.1.0:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/tributejs/-/tributejs-2.3.3.tgz#ec3b9ae3edd0f7e2bc5ca56d11ae43fdd7a8cd28"
-
 trim-newlines@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
-- 
GitLab