Flamegraph: Make color by package the default color mode (#76137)

* Make package based the default color mode

* simplify the code a bit
This commit is contained in:
Andrej Ocenas
2023-10-09 10:16:00 +02:00
committed by GitHub
parent c238b1f02f
commit 20d64705f5
2 changed files with 7 additions and 18 deletions

View File

@@ -206,24 +206,13 @@ const FlameGraphContainer = ({
}; };
function useColorScheme(dataContainer: FlameGraphDataContainer | undefined) { function useColorScheme(dataContainer: FlameGraphDataContainer | undefined) {
const [colorScheme, setColorScheme] = useState<ColorScheme | ColorSchemeDiff>( const defaultColorScheme = dataContainer?.isDiffFlamegraph() ? ColorSchemeDiff.Default : ColorScheme.PackageBased;
dataContainer?.isDiffFlamegraph() ? ColorSchemeDiff.Default : ColorScheme.ValueBased const [colorScheme, setColorScheme] = useState<ColorScheme | ColorSchemeDiff>(defaultColorScheme);
);
useEffect(() => {
if (
dataContainer?.isDiffFlamegraph() &&
(colorScheme === ColorScheme.ValueBased || colorScheme === ColorScheme.PackageBased)
) {
setColorScheme(ColorSchemeDiff.Default);
}
if ( // This makes sure that if we change the data to/from diff profile we reset the color scheme.
!dataContainer?.isDiffFlamegraph() && useEffect(() => {
(colorScheme === ColorSchemeDiff.Default || colorScheme === ColorSchemeDiff.DiffColorBlind) setColorScheme(defaultColorScheme);
) { }, [defaultColorScheme]);
setColorScheme(ColorScheme.ValueBased);
}
}, [dataContainer, colorScheme]);
return [colorScheme, setColorScheme] as const; return [colorScheme, setColorScheme] as const;
} }

View File

@@ -132,8 +132,8 @@ function ColorSchemeButton(props: ColorSchemeButtonProps) {
const styles = getStyles(props.getTheme(), false); const styles = getStyles(props.getTheme(), false);
let menu = ( let menu = (
<Menu> <Menu>
<Menu.Item label="By value" onClick={() => props.onChange(ColorScheme.ValueBased)} />
<Menu.Item label="By package name" onClick={() => props.onChange(ColorScheme.PackageBased)} /> <Menu.Item label="By package name" onClick={() => props.onChange(ColorScheme.PackageBased)} />
<Menu.Item label="By value" onClick={() => props.onChange(ColorScheme.ValueBased)} />
</Menu> </Menu>
); );