Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 30x 30x 30x 30x 30x 63x 62x 62x 62x 62x 62x 53x 53x 62x | /*
* Copyright 2022 Harness Inc. All rights reserved.
* Use of this source code is governed by the PolyForm Shield 1.0.0 license
* that can be found in the licenses directory at the root of this repository, also available at
* https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt.
*/
import { useState } from 'react'
import { flatten } from 'lodash-es'
import { useStrings } from 'framework/strings'
import type {
CreatedMetricsWithSelectedIndex,
CustomSelectedAndMappedMetrics,
GroupedCreatedMetrics
} from '@cv/pages/health-source/common/CustomMetric/CustomMetric.types'
import {
initializeSelectedMetricsMap,
initializeCreatedMetrics,
initGroupedCreatedMetrics
} from '@cv/pages/health-source/common/CustomMetric/CustomMetric.utils'
interface UseGroupedSideNaveHookInterface {
defaultCustomMetricName: string
initCustomMetricData: any
mappedServicesAndEnvs: Map<string, any>
}
export default function useGroupedSideNaveHook(props: UseGroupedSideNaveHookInterface) {
const { getString } = useStrings()
const { defaultCustomMetricName, initCustomMetricData, mappedServicesAndEnvs } = props
const [{ selectedMetric, mappedMetrics }, setMappedMetrics] = useState<CustomSelectedAndMappedMetrics>(
initializeSelectedMetricsMap(defaultCustomMetricName, initCustomMetricData, mappedServicesAndEnvs)
)
const [{ createdMetrics, selectedMetricIndex }, setCreatedMetrics] = useState<CreatedMetricsWithSelectedIndex>(
initializeCreatedMetrics(defaultCustomMetricName, selectedMetric, mappedMetrics)
)
const [groupedCreatedMetrics, setGroupedCreatedMetrics] = useState<GroupedCreatedMetrics>(
initGroupedCreatedMetrics(mappedMetrics, getString)
)
const groupedCreatedMetricsList = flatten(Object.values(groupedCreatedMetrics))
.map(item => item.metricName)
.filter(item => Boolean(item)) as string[]
return {
createdMetrics,
mappedMetrics,
selectedMetric,
selectedMetricIndex,
groupedCreatedMetrics,
groupedCreatedMetricsList,
setMappedMetrics,
setCreatedMetrics,
setGroupedCreatedMetrics
}
}
|