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 | 8x 8x 8x 8x 8x 14x 14x 14x 14x 122x 14x 7x 5x 1x 1x 1x 1x 1x 1x 4x 4x 2x 14x 10x | /* * Copyright 2021 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 React, { useEffect, useState } from 'react' import { useParams } from 'react-router-dom' import { Select, SelectOption, SelectProps } from '@wings-software/uicore' import { EnvironmentResponseDTO, useGetEnvironmentListForProject } from 'services/cd-ng' export interface UseEnvironmentSelectV2Params { selectedEnvironmentIdentifier?: string onChange: (opt: SelectOption, environment: EnvironmentResponseDTO, userEvent: boolean) => void onEmpty?: () => void } export const useEnvironmentSelectV2 = (params: UseEnvironmentSelectV2Params) => { const { onChange, onEmpty, selectedEnvironmentIdentifier } = params const { projectIdentifier, orgIdentifier, accountId } = useParams<Record<string, string>>() const { data, loading, error, refetch } = useGetEnvironmentListForProject({ queryParams: { accountId, orgIdentifier, projectIdentifier } }) const [selectedEnvironment, setSelectedEnvironment] = useState<SelectOption>() const selectOptions: SelectOption[] = data?.data?.content?.map<SelectOption>(elem => ({ label: elem.name as string, value: elem.identifier as string })) || [] useEffect(() => { if (data?.data?.content?.length) { if (selectedEnvironmentIdentifier) { const found = data?.data?.content?.find(env => env.identifier === selectedEnvironmentIdentifier) Eif (found) { const newValue = { label: found.name as string, value: found.identifier as string } setSelectedEnvironment(newValue) onChange(newValue, found, false) return } } setSelectedEnvironment(selectOptions[0]) onChange(selectOptions[0], data?.data?.content?.[0], false) } else Iif (data?.data?.content?.length === 0) { onEmpty?.() } }, [data?.data?.content?.length, data?.data?.content?.find, selectedEnvironmentIdentifier]) // eslint-disable-line return { EnvironmentSelect: function EnvironmentSelect(props: Partial<SelectProps>) { return ( <Select value={selectedEnvironment} items={selectOptions} onChange={opt => { if (selectedEnvironment?.value !== opt.value) { setSelectedEnvironment(opt) onChange( opt, data?.data?.content?.find(env => env.identifier === opt.value) as EnvironmentResponseDTO, true ) } }} {...props} /> ) }, loading, error, refetch, environments: data?.data?.content } } |