Skip to content

Commit f155979

Browse files
feat: color mapping for when the cell color family is updated. (#3562)
1 parent a3f971e commit f155979

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

src/visualization/types/Graph/options.tsx

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import React, {FC} from 'react'
2-
1+
// Libraries
2+
import React, {FC, useMemo} from 'react'
33
import {
44
Input,
55
Grid,
@@ -11,9 +11,11 @@ import {
1111
ComponentStatus,
1212
ButtonShape,
1313
} from '@influxdata/clockface'
14+
import {createGroupIDColumn} from '@influxdata/giraffe'
1415

15-
import AutoDomainInput from 'src/shared/components/AutoDomainInput'
1616
import {AXES_SCALE_OPTIONS} from 'src/visualization/constants'
17+
18+
// Utils
1719
import {
1820
FORMAT_OPTIONS,
1921
resolveTimeFormat,
@@ -23,6 +25,11 @@ import {
2325
defaultYColumn,
2426
parseYBounds,
2527
} from 'src/shared/utils/vis'
28+
import {generateSeriesToColorHex} from 'src/visualization/utils/colorMappingUtils'
29+
import {isFlagEnabled} from 'src/shared/utils/featureFlag'
30+
31+
// Components
32+
import AutoDomainInput from 'src/shared/components/AutoDomainInput'
2633
import ColorSchemeDropdown from 'src/visualization/components/internal/ColorSchemeDropdown'
2734
import HoverLegend from 'src/visualization/components/internal/HoverLegend'
2835
import StaticLegend from 'src/visualization/components/internal/StaticLegend'
@@ -48,6 +55,10 @@ const GraphViewOptions: FC<Props> = ({properties, results, update}) => {
4855
return columnType === 'time' || columnType === 'number'
4956
})
5057

58+
const groupKey = useMemo(() => [...results.fluxGroupKeyUnion, 'result'], [
59+
results,
60+
])
61+
5162
const xColumn = defaultXColumn(results?.table, properties.xColumn)
5263
const yColumn = defaultYColumn(results?.table, properties.yColumn)
5364
const getGeomLabel = (geom: string): string => {
@@ -195,7 +206,20 @@ const GraphViewOptions: FC<Props> = ({properties, results, update}) => {
195206
<ColorSchemeDropdown
196207
value={properties.colors?.filter(c => c.type === 'scale') ?? []}
197208
onChange={colors => {
198-
update({colors})
209+
if (isFlagEnabled('graphColorMapping')) {
210+
const [, fillColumnMap] = createGroupIDColumn(
211+
results.table,
212+
groupKey
213+
)
214+
const colorMapping = generateSeriesToColorHex(
215+
fillColumnMap,
216+
properties
217+
)
218+
219+
update({colors, colorMapping})
220+
} else {
221+
update({colors})
222+
}
199223
}}
200224
/>
201225
</Form.Element>

src/visualization/utils/colorMappingUtils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ const getSeriesId = (graphLine, columnKeys) => {
150150
* @returns - a map that contains the series ID and it's color hex value
151151
*/
152152

153-
const generateSeriesToColorHex = (
153+
export const generateSeriesToColorHex = (
154154
columnGroupMap,
155155
properties: XYViewProperties
156156
) => {

0 commit comments

Comments
 (0)