components.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. window.Vue = require('vue');
  2. import BootstrapVue from 'bootstrap-vue'
  3. Vue.use(BootstrapVue);
  4. window.InfiniteScroll = require('infinite-scroll');
  5. window.filesize = require('filesize');
  6. window.axios = require('axios');
  7. window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
  8. import swal from 'sweetalert';
  9. let token = document.head.querySelector('meta[name="csrf-token"]');
  10. if (token) {
  11. window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
  12. } else {
  13. console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
  14. }
  15. require('./components/localstorage');
  16. require('./components/likebutton');
  17. require('./components/commentform');
  18. require('./components/searchform');
  19. require('./components/bookmarkform');
  20. require('./components/statusform');
  21. require('./components/embed');
  22. require('./components/notifications');
  23. // import Echo from "laravel-echo"
  24. // window.io = require('socket.io-client');
  25. // window.pixelfed.bootEcho = function() {
  26. // window.Echo = new Echo({
  27. // broadcaster: 'socket.io',
  28. // host: window.location.hostname + ':2096',
  29. // auth: {
  30. // headers: {
  31. // Authorization: 'Bearer ' + token.content,
  32. // },
  33. // },
  34. // });
  35. // }
  36. Vue.component(
  37. 'follow-suggestions',
  38. require('./components/FollowSuggestions.vue')
  39. );
  40. Vue.component(
  41. 'discover-component',
  42. require('./components/DiscoverComponent.vue')
  43. );
  44. // Vue.component(
  45. // 'circle-panel',
  46. // require('./components/CirclePanel.vue')
  47. // );
  48. Vue.component(
  49. 'post-component',
  50. require('./components/PostComponent.vue')
  51. );
  52. Vue.component(
  53. 'post-presenter',
  54. require('./components/PostPresenter.vue')
  55. );
  56. Vue.component(
  57. 'post-comments',
  58. require('./components/PostComments.vue')
  59. );
  60. Vue.component(
  61. 'passport-clients',
  62. require('./components/passport/Clients.vue')
  63. );
  64. Vue.component(
  65. 'passport-authorized-clients',
  66. require('./components/passport/AuthorizedClients.vue')
  67. );
  68. Vue.component(
  69. 'passport-personal-access-tokens',
  70. require('./components/passport/PersonalAccessTokens.vue')
  71. );
  72. window.pixelfed.copyToClipboard = (str) => {
  73. const el = document.createElement('textarea');
  74. el.value = str;
  75. el.setAttribute('readonly', '');
  76. el.style.position = 'absolute';
  77. el.style.left = '-9999px';
  78. document.body.appendChild(el);
  79. const selected =
  80. document.getSelection().rangeCount > 0
  81. ? document.getSelection().getRangeAt(0)
  82. : false;
  83. el.select();
  84. document.execCommand('copy');
  85. document.body.removeChild(el);
  86. if (selected) {
  87. document.getSelection().removeAllRanges();
  88. document.getSelection().addRange(selected);
  89. }
  90. };
  91. $(document).ready(function() {
  92. $(function () {
  93. $('[data-toggle="tooltip"]').tooltip()
  94. });
  95. });