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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | 4x 4x 4x 4x 4x 4x 4x 4x 4x 71x 71x 57x 2x 2x 71x 4x | /* * 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 { Icon, PopoverPosition } from '@blueprintjs/core' import { ButtonVariation } from '@harness/uicore' import React, { ReactElement } from 'react' import { useStrings } from 'framework/strings' import { FeatureIdentifier } from 'framework/featureStore/FeatureIdentifier' import RbacOptionsMenuButton from '@rbac/components/RbacOptionsMenuButton/RbacOptionsMenuButton' import { ResourceType } from '@rbac/interfaces/ResourceType' import { PermissionIdentifier } from '@rbac/interfaces/PermissionIdentifier' import type { Variation } from 'services/cf' import type { VariationColorMap } from '../../types' export interface AddTargetingButtonProps { targetingDropdownVariations: Variation[] addVariation: (newVariation: Variation) => void variationColorMap: VariationColorMap addPercentageRollout: () => void featureDisabled?: boolean disabled?: boolean } const AddTargetingButton = ({ targetingDropdownVariations, variationColorMap, addVariation, addPercentageRollout }: AddTargetingButtonProps): ReactElement => { const { getString } = useStrings() const items = [ ...targetingDropdownVariations.map(variation => ({ 'data-testid': `variation_option_${variation.identifier}`, onClick: () => addVariation(variation), icon: <Icon icon="full-circle" color={variationColorMap[variation.identifier]} />, text: variation.name || variation.identifier, permission: { resource: { resourceType: ResourceType.FEATUREFLAG }, permission: PermissionIdentifier.EDIT_FF_FEATUREFLAG }, featuresProps: { featuresRequest: { featureNames: [FeatureIdentifier.MAUS] } } })), { 'data-testid': 'variation_option_percentage_rollout', onClick: () => addPercentageRollout(), icon: <Icon icon="percentage" />, text: getString('cf.featureFlags.percentageRollout'), permission: { resource: { resourceType: ResourceType.FEATUREFLAG }, permission: PermissionIdentifier.EDIT_FF_FEATUREFLAG }, featuresProps: { featuresRequest: { featureNames: [FeatureIdentifier.MAUS] } } } ] return ( <RbacOptionsMenuButton icon="plus" rightIcon="chevron-down" variation={ButtonVariation.SECONDARY} text={getString('cf.featureFlags.rules.addTargeting')} items={items} tooltipProps={{ interactionKind: 'click', minimal: true, position: PopoverPosition.BOTTOM_LEFT }} /> ) } export default AddTargetingButton |