@@ -18,9 +18,7 @@ import {
1818 Code ,
1919 Divider ,
2020 Group ,
21- Kbd ,
2221 Text ,
23- Tooltip ,
2422} from '@mantine/core' ;
2523import {
2624 IconChevronDown ,
@@ -673,18 +671,26 @@ export function DBTraceWaterfallChartContainer({
673671
674672 setCollapsedIds ( prev => {
675673 const newSet = new Set ( prev ) ;
676- if ( newSet . has ( id ) ) {
674+ const isCollapsed = newSet . has ( id ) ;
675+
676+ if ( isCollapsed ) {
677677 newSet . delete ( id ) ;
678678 } else {
679679 newSet . add ( id ) ;
680- if ( event . altKey ) {
681- const node = nodesMap . get ( id ) ;
680+ }
682681
683- if ( node ?. children ?. length ) {
684- getDescendantIds ( node ) . forEach ( descId => newSet . add ( descId ) ) ;
682+ if ( event . altKey ) {
683+ const node = nodesMap . get ( id ) ;
684+ if ( node ?. children ?. length ) {
685+ const descendantIds = getDescendantIds ( node ) ;
686+ if ( isCollapsed ) {
687+ descendantIds . forEach ( descId => newSet . delete ( descId ) ) ;
688+ } else {
689+ descendantIds . forEach ( descId => newSet . add ( descId ) ) ;
685690 }
686691 }
687692 }
693+
688694 return newSet ;
689695 } ) ;
690696 } ,
@@ -796,41 +802,30 @@ export function DBTraceWaterfallChartContainer({
796802 > </ div >
797803 ) ) }
798804
799- < Tooltip
800- disabled = { ! result . children . length }
801- openDelay = { 500 }
802- label = {
803- < >
804- < Kbd > ⌥/Alt</ Kbd > + < Kbd > click</ Kbd > to collapse children
805- </ >
805+ < Center
806+ style = { {
807+ opacity : result . children . length > 0 ? 1 : 0 ,
808+ } }
809+ onClick = {
810+ result . children . length > 0
811+ ? e => {
812+ toggleCollapse ( id , e ) ;
813+ }
814+ : undefined
806815 }
807- withArrow
808816 >
809- < Center
810- style = { {
811- opacity : result . children . length > 0 ? 1 : 0 ,
812- } }
813- onClick = {
814- result . children . length > 0
815- ? e => {
816- toggleCollapse ( id , e ) ;
817- }
818- : undefined
819- }
820- >
821- { collapsedIds . has ( id ) ? (
822- < IconChevronRight
823- size = { 16 }
824- className = "me-1 text-muted-hover"
825- />
826- ) : (
827- < IconChevronDown
828- size = { 16 }
829- className = "me-1 text-muted-hover"
830- />
831- ) } { ' ' }
832- </ Center >
833- </ Tooltip >
817+ { collapsedIds . has ( id ) ? (
818+ < IconChevronRight
819+ size = { 16 }
820+ className = "me-1 text-muted-hover"
821+ />
822+ ) : (
823+ < IconChevronDown
824+ size = { 16 }
825+ className = "me-1 text-muted-hover"
826+ />
827+ ) } { ' ' }
828+ </ Center >
834829
835830 { ! isFilterActive && (
836831 < Text span size = "xxs" me = "xs" pt = "2px" >
0 commit comments