From d50d24a9591462bb1cc56f0d40a95ff57659e9f1 Mon Sep 17 00:00:00 2001 From: Adam Trotta Date: Mon, 25 Mar 2024 14:08:33 -0400 Subject: [PATCH 1/6] refactor: Convert filteredAppMap from computed to data property --- .../components/src/pages/VsCodeExtension.vue | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/components/src/pages/VsCodeExtension.vue b/packages/components/src/pages/VsCodeExtension.vue index 442257ed48..b40ce82cc1 100644 --- a/packages/components/src/pages/VsCodeExtension.vue +++ b/packages/components/src/pages/VsCodeExtension.vue @@ -372,6 +372,7 @@ import { filterStringToFilterState, base64UrlEncode, AppMapFilter, + AppMap, } from '@appland/models'; import { unparseDiagram } from '@appland/sequence-diagram'; @@ -504,6 +505,7 @@ export default { isFullscreen: false, showDetailsPanel: false, rightColumnWidth: 0, + filteredAppMap: this.emptyFilteredAppMap(), }; }, mixins: [EmitLinkMixin], @@ -554,6 +556,17 @@ export default { }, }, watch: { + '$store.state.filters': { + handler(filters) { + this.applyFilters(filters, this.$store.state.appMap); + }, + deep: true, + }, + '$store.state.appMap': { + handler(appMap) { + this.applyFilters(this.filters, appMap); + }, + }, '$store.state.currentView': { handler(view) { this.$refs.tabs.activateTab(this.$refs[view]); @@ -675,10 +688,6 @@ export default { filters() { return this.$store.state.filters; }, - filteredAppMap() { - const { appMap } = this.$store.state; - return this.filters.filter(appMap, this.findings); - }, viewState() { return this.getStateObject(); }, @@ -884,6 +893,12 @@ export default { }, }, methods: { + applyFilters(filter, appMap) { + this.filteredAppMap = filter.filter(appMap, this.findings); + }, + emptyFilteredAppMap() { + return new AppMapFilter().filter(new AppMap()); + }, detailsPanelTransitionEnd() { this.rightColumnWidth = this.$refs.mainColumnRight.offsetWidth; }, From c6ee367ba887de7aee2859eab666d2c24d58a0d2 Mon Sep 17 00:00:00 2001 From: Adam Trotta Date: Tue, 26 Mar 2024 14:07:07 -0400 Subject: [PATCH 2/6] feat: Lazy load diagrams --- .../components/src/components/LazyLoader.vue | 40 +++++++++++ .../src/components/LoadingSpinner.vue | 40 +++++++++++ .../components/src/pages/VsCodeExtension.vue | 72 +++++++++++-------- packages/components/tsconfig.json | 2 +- 4 files changed, 123 insertions(+), 31 deletions(-) create mode 100644 packages/components/src/components/LazyLoader.vue create mode 100644 packages/components/src/components/LoadingSpinner.vue diff --git a/packages/components/src/components/LazyLoader.vue b/packages/components/src/components/LazyLoader.vue new file mode 100644 index 0000000000..55740fdd76 --- /dev/null +++ b/packages/components/src/components/LazyLoader.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/packages/components/src/components/LoadingSpinner.vue b/packages/components/src/components/LoadingSpinner.vue new file mode 100644 index 0000000000..064fff4275 --- /dev/null +++ b/packages/components/src/components/LoadingSpinner.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/packages/components/src/pages/VsCodeExtension.vue b/packages/components/src/pages/VsCodeExtension.vue index b40ce82cc1..e779944ed5 100644 --- a/packages/components/src/pages/VsCodeExtension.vue +++ b/packages/components/src/pages/VsCodeExtension.vue @@ -80,10 +80,12 @@ :tabName="VIEW_COMPONENT" :ref="VIEW_COMPONENT" > - + + + - + + +
- + + +
@@ -125,13 +131,15 @@ :tabName="VIEW_FLAMEGRAPH" :allow-scroll="false" > - + + +