Skip to content

Commit 2f99ecc

Browse files
authored
fix(ui): Collapse groups by default (#1212)
1 parent d37f71e commit 2f99ecc

2 files changed

Lines changed: 17 additions & 14 deletions

File tree

web/app/src/views/Home.vue

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
class="endpoint-group-header flex items-center justify-between p-4 bg-card border-b cursor-pointer hover:bg-accent/50 transition-colors"
6060
>
6161
<div class="flex items-center gap-3">
62-
<ChevronDown v-if="!collapsedGroups.has(group)" class="h-5 w-5 text-muted-foreground" />
62+
<ChevronDown v-if="uncollapsedGroups.has(group)" class="h-5 w-5 text-muted-foreground" />
6363
<ChevronUp v-else class="h-5 w-5 text-muted-foreground" />
6464
<h2 class="text-xl font-semibold text-foreground">{{ group }}</h2>
6565
</div>
@@ -73,7 +73,7 @@
7373
</div>
7474

7575
<!-- Group Content -->
76-
<div v-if="!collapsedGroups.has(group)" class="endpoint-group-content p-4">
76+
<div v-if="uncollapsedGroups.has(group)" class="endpoint-group-content p-4">
7777
<div class="grid gap-3 grid-cols-1 sm:grid-cols-2 lg:grid-cols-3">
7878
<EndpointCard
7979
v-for="endpoint in endpoints"
@@ -169,7 +169,7 @@ const showRecentFailures = ref(false)
169169
const showAverageResponseTime = ref(true)
170170
const groupByGroup = ref(false)
171171
const sortBy = ref(localStorage.getItem('gatus:sort-by') || 'name')
172-
const collapsedGroups = ref(new Set())
172+
const uncollapsedGroups = ref(new Set())
173173
174174
const filteredEndpoints = computed(() => {
175175
let filtered = [...endpointStatuses.value]
@@ -356,26 +356,29 @@ const calculateUnhealthyCount = (endpoints) => {
356356
}
357357
358358
const toggleGroupCollapse = (groupName) => {
359-
if (collapsedGroups.value.has(groupName)) {
360-
collapsedGroups.value.delete(groupName)
359+
if (uncollapsedGroups.value.has(groupName)) {
360+
uncollapsedGroups.value.delete(groupName)
361361
} else {
362-
collapsedGroups.value.add(groupName)
362+
uncollapsedGroups.value.add(groupName)
363363
}
364364
// Save to localStorage
365-
const collapsed = Array.from(collapsedGroups.value)
366-
localStorage.setItem('gatus:collapsed-groups', JSON.stringify(collapsed))
365+
const uncollapsed = Array.from(uncollapsedGroups.value)
366+
localStorage.setItem('gatus:uncollapsed-groups', JSON.stringify(uncollapsed))
367+
localStorage.removeItem('gatus:collapsed-groups') // Remove old key if it exists
367368
}
368369
369370
const initializeCollapsedGroups = () => {
370-
// Get saved collapsed groups from localStorage
371+
// Get saved uncollapsed groups from localStorage
371372
try {
372-
const saved = localStorage.getItem('gatus:collapsed-groups')
373+
const saved = localStorage.getItem('gatus:uncollapsed-groups')
373374
if (saved) {
374-
collapsedGroups.value = new Set(JSON.parse(saved))
375+
uncollapsedGroups.value = new Set(JSON.parse(saved))
375376
}
377+
// If no saved state, uncollapsedGroups stays empty (all collapsed by default)
376378
} catch (e) {
377-
console.warn('Failed to parse saved collapsed groups:', e)
378-
localStorage.removeItem('gatus:collapsed-groups')
379+
console.warn('Failed to parse saved uncollapsed groups:', e)
380+
localStorage.removeItem('gatus:uncollapsed-groups')
381+
// On error, uncollapsedGroups stays empty (all collapsed by default)
379382
}
380383
}
381384

0 commit comments

Comments
 (0)