LivewireTab.vue 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <template>
  2. <div class="tab-content">
  3. <div class="layout-col">
  4. <DefinitionList title="Component" class="tab-content-section">
  5. <DefinitionListRow
  6. v-for="(value, key) in livewire"
  7. v-if="key.startsWith('component_')"
  8. :key="key"
  9. :label="lookupKey(key)"
  10. >{{ value }}</DefinitionListRow
  11. >
  12. </DefinitionList>
  13. <DefinitionList title="Updates" class="tab-content-section">
  14. <DefinitionListRow
  15. v-for="(value, key) in livewire.updates"
  16. :key="key"
  17. :label="value['type']"
  18. >
  19. <DefinitionList>
  20. <DefinitionListRow
  21. v-for="(parameter, key) in value['payload'] || []"
  22. :label="key"
  23. :key="key"
  24. >
  25. <code class="code-inline">
  26. <pre>{{ parameter }}</pre>
  27. </code>
  28. </DefinitionListRow>
  29. </DefinitionList>
  30. </DefinitionListRow>
  31. </DefinitionList>
  32. <DefinitionList title="Data" class="tab-content-section">
  33. <DefinitionListRow v-for="(value, key) in livewire.data" :key="key" :label="key">
  34. <template v-if="typeof value === 'string'">
  35. {{ value }}
  36. </template>
  37. <code v-else class="code-inline">
  38. <pre>{{ value }}</pre>
  39. </code>
  40. </DefinitionListRow>
  41. </DefinitionList>
  42. </div>
  43. </div>
  44. </template>
  45. <script>
  46. import DefinitionList from '../Shared/DefinitionList';
  47. import DefinitionListRow from '../Shared/DefinitionListRow.js';
  48. import upperFirst from 'lodash/upperFirst';
  49. const predefinedKeys = {
  50. component_alias: 'Alias',
  51. component_id: 'Id',
  52. component_class: 'Class',
  53. };
  54. export default {
  55. inject: ['report'],
  56. components: { DefinitionListRow, DefinitionList },
  57. filters: {
  58. upperFirst,
  59. },
  60. computed: {
  61. livewire() {
  62. return this.report.context.livewire;
  63. },
  64. data() {
  65. return this.report.context.livewire.data;
  66. },
  67. updates() {
  68. return this.report.context.livewire.updates;
  69. },
  70. },
  71. methods: {
  72. lookupKey(key) {
  73. return predefinedKeys[key] || key;
  74. },
  75. },
  76. };
  77. </script>