import { Button, Modal, Tabs, Tooltip, Typography } from 'antd'; import Editor from 'components/Editor'; import { StyledSpace } from 'components/Styled'; import { QueryParams } from 'constants/query'; import ROUTES from 'constants/routes'; import { useIsDarkMode } from 'hooks/useDarkMode'; import createQueryParams from 'lib/createQueryParams'; import history from 'lib/history'; import { useMemo, useState } from 'react'; import { useSelector } from 'react-redux'; import { useParams } from 'react-router-dom'; import { AppState } from 'store/reducers'; import { ITraceTree } from 'types/api/trace/getTraceItem'; import { GlobalReducer } from 'types/reducer/globalTime'; import { getTraceToLogsQuery } from './config'; import Events from './Events'; import { CardContainer, CustomSubText, CustomText, CustomTitle, styles, } from './styles'; import Tags from './Tags'; function SelectedSpanDetails(props: SelectedSpanDetailsProps): JSX.Element { const { tree, firstSpanStartTime } = props; const { maxTime, minTime } = useSelector( (state) => state.globalTime, ); const { id: traceId } = useParams(); const isDarkMode = useIsDarkMode(); const OverLayComponentName = useMemo(() => tree?.name, [tree?.name]); const OverLayComponentServiceName = useMemo(() => tree?.serviceName, [ tree?.serviceName, ]); const [isOpen, setIsOpen] = useState(false); const [text, setText] = useState({ text: '', subText: '', }); const onToggleHandler = (state: boolean): void => { setIsOpen(state); }; if (!tree) { return
; } const { tags, nonChildReferences } = tree; const items = [ { label: 'Tags', key: '1', children: ( ), }, { label: 'Events', key: '2', children: ( ), }, ]; const onLogsHandler = (): void => { const query = getTraceToLogsQuery(traceId, minTime, maxTime); history.push( `${ROUTES.LOGS_EXPLORER}?${createQueryParams({ [QueryParams.compositeQuery]: JSON.stringify(query), [QueryParams.startTime]: minTime, [QueryParams.endTime]: maxTime, })}`, ); }; return ( Details for selected Span Service {tree.serviceName} Operation {tree.name} onToggleHandler(false)} title={text.text} open={isOpen} destroyOnClose footer={[]} width="70vw" centered > {text.text === 'exception.stacktrace' ? ( {}} readOnly value={text.subText} /> ) : ( {text.subText} )} ); } interface SelectedSpanDetailsProps { tree?: ITraceTree; firstSpanStartTime: number; } SelectedSpanDetails.defaultProps = { tree: undefined, }; export interface ModalText { text: string; subText: string; } interface Params { id: string; } export default SelectedSpanDetails;