All files / modules/72-triggers/pages/triggers TriggersPage.tsx

90.48% Statements 19/21
72.73% Branches 16/22
50% Functions 1/2
90.48% Lines 19/21

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              2x 2x 2x   2x 2x 2x 2x 2x             2x 5x                 4x 4x 4x                                     4x   4x                     4x   4x   4x                   2x  
/*
 * 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 from 'react'
import { useHistory, useParams } from 'react-router-dom'
import routes from '@common/RouteDefinitions'
import type { GitQueryParams, PipelineType } from '@common/interfaces/RouteInterfaces'
import { useStrings } from 'framework/strings'
import { useGetPipelineSummary } from 'services/pipeline-ng'
import { useDocumentTitle } from '@common/hooks/useDocumentTitle'
import { useQueryParams } from '@common/hooks'
import TriggersList from './views/TriggersList'
import type { TriggerDataInterface } from './utils/TriggersListUtils'
 
// interface TriggerDataInterface {
//   triggerType: string
//   sourceRepo?: string
// }
const TriggersPage: React.FC = (): React.ReactElement => {
  const { orgIdentifier, projectIdentifier, accountId, pipelineIdentifier, module } = useParams<
    PipelineType<{
      projectIdentifier: string
      orgIdentifier: string
      accountId: string
      pipelineIdentifier: string
      triggerIdentifier: string
    }>
  >()
  const history = useHistory()
  const { repoIdentifier, branch } = useQueryParams<GitQueryParams>()
  const onNewTriggerClick = (val: TriggerDataInterface): void => {
    const { triggerType, sourceRepo, manifestType, artifactType } = val
    history.push(
      routes.toTriggersWizardPage({
        accountId,
        orgIdentifier,
        projectIdentifier,
        pipelineIdentifier,
        triggerIdentifier: 'new', // new is a reserved identifier
        triggerType,
        sourceRepo,
        manifestType,
        artifactType,
        module,
        repoIdentifier,
        branch
      })
    )
  }
  const { getString } = useStrings()
 
  const { data: pipeline } = useGetPipelineSummary({
    pipelineIdentifier,
    queryParams: {
      accountIdentifier: accountId,
      orgIdentifier,
      projectIdentifier,
      repoIdentifier,
      branch
    }
  })
 
  useDocumentTitle([pipeline?.data?.name || getString('pipelines'), getString('common.triggersLabel')])
 
  const isPipelineInvalid = pipeline?.data?.entityValidityDetails?.valid === false
 
  return (
    <TriggersList
      onNewTriggerClick={onNewTriggerClick}
      repoIdentifier={repoIdentifier}
      branch={branch}
      isPipelineInvalid={isPipelineInvalid}
    />
  )
}
 
export default TriggersPage