From 7d9d2f4f00379acff70bb525a3c961d319df40ba Mon Sep 17 00:00:00 2001 From: andrewwallacespeckle Date: Tue, 7 Oct 2025 23:14:27 +0100 Subject: [PATCH 1/3] feat(fe): improved reset isolations/hidden button --- .../components/viewer/AnchoredPoints.vue | 7 ++- .../viewer/GlobalIsolationHiddenReset.vue | 53 +++++++++++++++++++ .../viewer/GlobalIsolationReset.vue | 22 -------- .../viewer/composables/filtering/filtering.ts | 20 +++++++ 4 files changed, 78 insertions(+), 24 deletions(-) create mode 100644 packages/frontend-2/components/viewer/GlobalIsolationHiddenReset.vue delete mode 100644 packages/frontend-2/components/viewer/GlobalIsolationReset.vue diff --git a/packages/frontend-2/components/viewer/AnchoredPoints.vue b/packages/frontend-2/components/viewer/AnchoredPoints.vue index dcffc66cd..36f6c013f 100644 --- a/packages/frontend-2/components/viewer/AnchoredPoints.vue +++ b/packages/frontend-2/components/viewer/AnchoredPoints.vue @@ -124,7 +124,9 @@ :class="showFollowerMessage ? 'top-24' : 'top-14'" > - + @@ -163,7 +165,8 @@ const { users } = useViewerUserActivityTracking({ anchoredPointsParentEl: parent const { isOpenThread, open, closeAllThreads } = useThreadUtilities() const { filters: { hasAnyFiltersApplied }, - hasAnyIsolationsApplied + hasAnyIsolationsApplied, + hasAnyHiddenApplied } = useFilterUtilities({ state: viewerState }) const canPostComment = useCheckViewerCommentingAccess() const breakpoints = useBreakpoints(TailwindBreakpoints) diff --git a/packages/frontend-2/components/viewer/GlobalIsolationHiddenReset.vue b/packages/frontend-2/components/viewer/GlobalIsolationHiddenReset.vue new file mode 100644 index 000000000..967d8bfa2 --- /dev/null +++ b/packages/frontend-2/components/viewer/GlobalIsolationHiddenReset.vue @@ -0,0 +1,53 @@ + + diff --git a/packages/frontend-2/components/viewer/GlobalIsolationReset.vue b/packages/frontend-2/components/viewer/GlobalIsolationReset.vue deleted file mode 100644 index 78ec93e95..000000000 --- a/packages/frontend-2/components/viewer/GlobalIsolationReset.vue +++ /dev/null @@ -1,22 +0,0 @@ - - diff --git a/packages/frontend-2/lib/viewer/composables/filtering/filtering.ts b/packages/frontend-2/lib/viewer/composables/filtering/filtering.ts index 83adab352..879d45b83 100644 --- a/packages/frontend-2/lib/viewer/composables/filtering/filtering.ts +++ b/packages/frontend-2/lib/viewer/composables/filtering/filtering.ts @@ -86,6 +86,13 @@ export function useFilterUtilities( filters.isolatedObjectIds.value = [] } + const resetHiddenAndIsolations = () => { + clearHighlightedObjects() + clearSelection() + filters.isolatedObjectIds.value = [] + filters.hiddenObjectIds.value = [] + } + const hasAnyIsolationsApplied = computed(() => { return filters.isolatedObjectIds.value.length > 0 }) @@ -111,6 +118,16 @@ export function useFilterUtilities( filters.hiddenObjectIds.value = difference(filters.hiddenObjectIds.value, objectIds) } + const resetHidden = () => { + clearHighlightedObjects() + clearSelection() + filters.hiddenObjectIds.value = [] + } + + const hasAnyHiddenApplied = computed(() => { + return filters.hiddenObjectIds.value.length > 0 + }) + /** * Gets ALL values for a property using pre-computed data (used for filtering logic) */ @@ -928,9 +945,12 @@ export function useFilterUtilities( isolateObjects, unIsolateObjects, resetIsolations, + resetHiddenAndIsolations, hideObjects, showObjects, + resetHidden, hasAnyIsolationsApplied, + hasAnyHiddenApplied, filters, addActiveFilter, updateFilterProperty, From 8a6cbc364a7ed6e218895765dccdb0ee85378bd3 Mon Sep 17 00:00:00 2001 From: andrewwallacespeckle Date: Tue, 7 Oct 2025 23:42:14 +0100 Subject: [PATCH 2/3] fix(fe): always reset filter serialization --- packages/frontend-2/lib/viewer/composables/serialization.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/frontend-2/lib/viewer/composables/serialization.ts b/packages/frontend-2/lib/viewer/composables/serialization.ts index 83c781ae3..62fd3cf38 100644 --- a/packages/frontend-2/lib/viewer/composables/serialization.ts +++ b/packages/frontend-2/lib/viewer/composables/serialization.ts @@ -296,9 +296,13 @@ export function useApplySerializedState() { } const filters = formattedState.ui?.filters || {} + + resetFilters() + if (filters.hiddenObjectIds?.length) { - resetFilters() hideObjects(filters.hiddenObjectIds, { replace: true }) + } else { + hideObjects([], { replace: true }) } if (filters.propertyFilters?.length) { From 3fd0da9e5c9bac89c8b1df43a436a7f84677a4da Mon Sep 17 00:00:00 2001 From: andrewwallacespeckle Date: Tue, 7 Oct 2025 23:44:36 +0100 Subject: [PATCH 3/3] tidyup --- .../viewer/GlobalIsolationHiddenReset.vue | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/packages/frontend-2/components/viewer/GlobalIsolationHiddenReset.vue b/packages/frontend-2/components/viewer/GlobalIsolationHiddenReset.vue index 967d8bfa2..c543782bf 100644 --- a/packages/frontend-2/components/viewer/GlobalIsolationHiddenReset.vue +++ b/packages/frontend-2/components/viewer/GlobalIsolationHiddenReset.vue @@ -18,14 +18,11 @@ const { resetHiddenAndIsolations, hasAnyIsolationsApplied, hasAnyHiddenApplied } useFilterUtilities({ state: viewerState }) const buttonText = computed(() => { - const hasIsolations = hasAnyIsolationsApplied.value - const hasHidden = hasAnyHiddenApplied.value - - if (hasIsolations && hasHidden) { + if (hasAnyIsolationsApplied.value && hasAnyHiddenApplied.value) { return 'Reset isolations/hidden' - } else if (hasIsolations) { + } else if (hasAnyIsolationsApplied.value) { return 'Reset isolations' - } else if (hasHidden) { + } else if (hasAnyHiddenApplied.value) { return 'Reset hidden' } return 'Reset' @@ -33,20 +30,17 @@ const buttonText = computed(() => { const mp = useMixpanel() const trackAndReset = () => { - const hasIsolations = hasAnyIsolationsApplied.value - const hasHidden = hasAnyHiddenApplied.value - resetHiddenAndIsolations() - if (hasIsolations && hasHidden) { + if (hasAnyIsolationsApplied.value && hasAnyHiddenApplied.value) { mp.track('Viewer Action', { type: 'action', name: 'isolations-hidden', action: 'reset' }) - } else if (hasIsolations) { + } else if (hasAnyIsolationsApplied.value) { mp.track('Viewer Action', { type: 'action', name: 'isolations', action: 'reset' }) - } else if (hasHidden) { + } else if (hasAnyHiddenApplied.value) { mp.track('Viewer Action', { type: 'action', name: 'hidden', action: 'reset' }) } }