feeds.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <template>
  2. <div v-if="fb.currentFeeds.length !== 0" class="virtual-list">
  3. <ul
  4. v-for="feed in fb.currentFeeds"
  5. :key="feed.id"
  6. class="flex-col py-2 border-b border-dashed border-brdColor"
  7. >
  8. <div class="show-on-large-screen">
  9. <li class="info">
  10. <label>
  11. {{ feed.label || $t("no_label") }}
  12. </label>
  13. </li>
  14. <button class="icon" @click="deleteFeed(feed)">
  15. <deleteIcon class="material-icons" />
  16. </button>
  17. </div>
  18. <div class="show-on-large-screen">
  19. <li class="info clamb-3">
  20. <label>{{ feed.message || $t("empty") }}</label>
  21. </li>
  22. </div>
  23. </ul>
  24. </div>
  25. <ul v-else class="flex-col">
  26. <li>
  27. <label class="info">{{ $t("empty") }}</label>
  28. </li>
  29. </ul>
  30. </template>
  31. <style scoped lang="scss">
  32. .virtual-list {
  33. max-height: calc(100vh - 296px);
  34. }
  35. .clamb-3 {
  36. display: -webkit-box;
  37. -webkit-line-clamp: 3;
  38. -webkit-box-orient: vertical;
  39. @apply overflow-hidden;
  40. }
  41. </style>
  42. <script>
  43. import { fb } from "~/helpers/fb"
  44. import deleteIcon from "~/static/icons/delete-24px.svg?inline"
  45. export default {
  46. components: { deleteIcon },
  47. data() {
  48. return {
  49. fb,
  50. }
  51. },
  52. methods: {
  53. deleteFeed(feed) {
  54. fb.deleteFeed(feed.id)
  55. this.$toast.error(this.$t("deleted"), {
  56. icon: "delete",
  57. })
  58. },
  59. },
  60. }
  61. </script>