BasicMenu.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <template>
  2. <editor-menu-bar
  3. :editor="editor"
  4. v-slot="{ commands, isActive }">
  5. <div class="menubar">
  6. <button
  7. class="menubar__button"
  8. :class="{ 'is-active': isActive.bullet_list() }"
  9. @click="commands.bullet_list">
  10. <icon name="list-ul" size="large" />
  11. </button>
  12. <button
  13. class="menubar__button"
  14. :class="{ 'is-active': isActive.ordered_list() }"
  15. @click="commands.ordered_list">
  16. <icon name="list-ol" size="large" />
  17. </button>
  18. <button
  19. class="menubar__button"
  20. :class="{ 'is-active': isActive.blockquote() }"
  21. @click="commands.blockquote">
  22. <icon name="quote-right" size="large" />
  23. </button>
  24. <button
  25. class="menubar__button"
  26. :class="{ 'is-active': isActive.code_block() }"
  27. @click="commands.code_block">
  28. <icon name="file-code" size="large" />
  29. </button>
  30. <button
  31. class="menubar__button"
  32. @click="commands.horizontal_rule">
  33. <icon name="ruler-horizontal" size="large" />
  34. </button>
  35. <button
  36. class="menubar__button"
  37. @click="commands.undo">
  38. <icon name="undo-alt" size="large" />
  39. </button>
  40. <button
  41. class="menubar__button"
  42. @click="commands.redo">
  43. <icon name="redo" size="large" />
  44. </button>
  45. <button class="button is-success button-save">
  46. Save
  47. </button>
  48. </div>
  49. </editor-menu-bar>
  50. </template>
  51. <script>
  52. import { EditorMenuBar } from 'tiptap'
  53. import Icon from '~/components/shared/Icon'
  54. export default {
  55. components: {EditorMenuBar, Icon},
  56. props: {
  57. editor: Object
  58. }
  59. }
  60. </script>
  61. <style scoped lang="scss">
  62. .button-save {
  63. float: right;
  64. background-color: #23d160;
  65. &:hover {
  66. background-color: #2bc76c;
  67. }
  68. &:disabled {
  69. cursor: not-allowed;
  70. }
  71. }
  72. </style>