All files / modules/85-cv/hooks/useLogContentHook/views/ExecutionLog ExecutionLogSearch.tsx

100% Statements 10/10
100% Branches 0/0
100% Functions 1/1
100% Lines 10/10

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              17x 17x 17x   17x   17x 45x 45x   45x   45x                                 17x  
/*
 * 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 React from 'react'
import { Container, ExpandingSearchInput, ExpandingSearchInputHandle } from '@harness/uicore'
import { useGlobalEventListener } from '@common/hooks'
import type { ExecutionLogSearchProps } from './ExecutionLog.types'
import { getKeyDownListener, handleKeyDown, handleSearchChange } from './ExecutionLog.utils'
 
const ExecutionLogSearch: React.FC<ExecutionLogSearchProps> = ({ state, actions }) => {
  const { currentIndex, linesWithResults } = state.searchData
  const searchRef = React.useRef<ExpandingSearchInputHandle>()
 
  useGlobalEventListener('keydown', getKeyDownListener(searchRef))
 
  return (
    <Container height="fit-content" onKeyDown={handleKeyDown(actions)}>
      <ExpandingSearchInput
        flip
        theme="dark"
        ref={searchRef}
        showPrevNextButtons
        onChange={handleSearchChange(actions)}
        fixedText={`${Math.min(currentIndex + 1, linesWithResults.length)} / ${linesWithResults.length}`}
        onNext={/* istanbul ignore next */ () => actions.goToNextSearchResult()}
        onPrev={/* istanbul ignore next */ () => actions.goToPrevSearchResult()}
        onEnter={/* istanbul ignore next */ () => actions.goToNextSearchResult()}
      />
    </Container>
  )
}
 
export default ExecutionLogSearch