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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 13x 83x 83x 83x 7x 5x 5x 83x 7x 7x 83x | /*
* 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, { useState } from 'react'
import cx from 'classnames'
import { useModalHook } from '@harness/use-modal'
import { Classes } from '@blueprintjs/core'
import { Dialog } from '@harness/uicore'
import VerifyStepLogContent from './views/VerifyStepLogContent'
import SLOLogContent from './views/SLOLogContent'
import MonitoredServiceLogContent from './views/MonitoredServiceLogContent'
import { LogTypes, UseLogContentHookProps, UseLogContentHookReturn } from './useLogContentHook.types'
import css from './useLogContentHook.module.scss'
export const useLogContentHook = ({
verifyStepExecutionId,
sloIdentifier,
serviceName,
envName,
monitoredServiceIdentifier,
monitoredServiceStartTime,
monitoredServiceEndTime,
showTimelineSlider
}: UseLogContentHookProps): UseLogContentHookReturn => {
const [isFullScreen, setIsFullScreen] = useState(false)
const [logType, setLogType] = useState<LogTypes>(LogTypes.ExecutionLog)
const [showModal, hideModal] = useModalHook(
() => (
<Dialog
isOpen
enforceFocus={false}
onClose={() => {
setIsFullScreen(false)
hideModal()
}}
className={cx(css.dialog, { [css.fullScreen]: isFullScreen }, Classes.DIALOG)}
>
<div>
{verifyStepExecutionId && (
<VerifyStepLogContent
logType={logType}
isFullScreen={isFullScreen}
setIsFullScreen={setIsFullScreen}
verifyStepExecutionId={verifyStepExecutionId}
/>
)}
{!verifyStepExecutionId && sloIdentifier && (
<SLOLogContent
logType={logType}
identifier={sloIdentifier}
serviceName={serviceName}
envName={envName}
isFullScreen={isFullScreen}
setIsFullScreen={setIsFullScreen}
/>
)}
{!verifyStepExecutionId && !sloIdentifier && monitoredServiceIdentifier && (
<MonitoredServiceLogContent
logType={logType}
monitoredServiceIdentifier={monitoredServiceIdentifier}
serviceName={serviceName}
envName={envName}
isFullScreen={isFullScreen}
setIsFullScreen={setIsFullScreen}
startTime={monitoredServiceStartTime}
endTime={monitoredServiceEndTime}
showTimelineSlider={showTimelineSlider}
/>
)}
</div>
</Dialog>
),
[
verifyStepExecutionId,
sloIdentifier,
serviceName,
envName,
isFullScreen,
setIsFullScreen,
logType,
monitoredServiceIdentifier,
monitoredServiceStartTime,
monitoredServiceEndTime
]
)
const open = (_logType: LogTypes): void => {
setLogType(_logType)
showModal()
}
return {
openLogContentHook: open,
closeLogContentHook: hideModal
}
}
|