diff --git a/frontend/src/components/Logs/RawLogView/index.tsx b/frontend/src/components/Logs/RawLogView/index.tsx index e926e73643..7c630a2939 100644 --- a/frontend/src/components/Logs/RawLogView/index.tsx +++ b/frontend/src/components/Logs/RawLogView/index.tsx @@ -21,8 +21,6 @@ import { useMemo, useState, } from 'react'; -// interfaces -import { ILog } from 'types/api/logs/log'; // styles import { @@ -31,19 +29,17 @@ import { RawLogContent, RawLogViewContainer, } from './styles'; +import { RawLogViewProps } from './types'; const convert = new Convert(); -interface RawLogViewProps { - isActiveLog?: boolean; - isReadOnly?: boolean; - data: ILog; - linesPerRow: number; -} - -function RawLogView(props: RawLogViewProps): JSX.Element { - const { isActiveLog = false, isReadOnly = false, data, linesPerRow } = props; - +function RawLogView({ + isActiveLog, + isReadOnly, + data, + linesPerRow, + isTextOverflowEllipsisDisabled, +}: RawLogViewProps): JSX.Element { const { isHighlighted, isLogsExplorerPage, onLogCopy } = useCopyLogLink( data.id, ); @@ -143,6 +139,7 @@ function RawLogView(props: RawLogViewProps): JSX.Element { @@ -181,6 +178,7 @@ function RawLogView(props: RawLogViewProps): JSX.Element { RawLogView.defaultProps = { isActiveLog: false, isReadOnly: false, + isTextOverflowEllipsisDisabled: false, }; export default RawLogView; diff --git a/frontend/src/components/Logs/RawLogView/styles.ts b/frontend/src/components/Logs/RawLogView/styles.ts index b4be783a2a..4944d05f74 100644 --- a/frontend/src/components/Logs/RawLogView/styles.ts +++ b/frontend/src/components/Logs/RawLogView/styles.ts @@ -3,10 +3,12 @@ import { Col, Row, Space } from 'antd'; import styled from 'styled-components'; import { getActiveLogBackground, getDefaultLogBackground } from 'utils/logs'; +import { RawLogContentProps } from './types'; + export const RawLogViewContainer = styled(Row)<{ $isDarkMode: boolean; - $isReadOnly: boolean; - $isActiveLog: boolean; + $isReadOnly?: boolean; + $isActiveLog?: boolean; }>` position: relative; width: 100%; @@ -31,32 +33,29 @@ export const ExpandIconWrapper = styled(Col)` font-size: 12px; `; -interface RawLogContentProps { - linesPerRow: number; - $isReadOnly: boolean; - $isActiveLog: boolean; -} - export const RawLogContent = styled.div` margin-bottom: 0; font-family: Fira Code, monospace; font-weight: 300; - overflow: hidden; - text-overflow: ellipsis; - display: -webkit-box; - -webkit-line-clamp: ${(props): number => props.linesPerRow}; - line-clamp: ${(props): number => props.linesPerRow}; - -webkit-box-orient: vertical; + ${({ $isTextOverflowEllipsisDisabled, linesPerRow }): string => + $isTextOverflowEllipsisDisabled + ? 'white-space: nowrap' + : `overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: ${linesPerRow}; + line-clamp: ${linesPerRow}; + -webkit-box-orient: vertical;`}; font-size: 1rem; line-height: 2rem; - cursor: ${(props): string => - props.$isActiveLog || props.$isReadOnly ? 'initial' : 'pointer'}; + cursor: ${({ $isActiveLog, $isReadOnly }): string => + $isActiveLog || $isReadOnly ? 'initial' : 'pointer'}; - ${(props): string => - props.$isReadOnly && !props.$isActiveLog ? 'padding: 0 1.5rem;' : ''} + ${({ $isActiveLog, $isReadOnly }): string => + $isReadOnly && $isActiveLog ? 'padding: 0 1.5rem;' : ''} `; export const ActionButtonsWrapper = styled(Space)` diff --git a/frontend/src/components/Logs/RawLogView/types.ts b/frontend/src/components/Logs/RawLogView/types.ts new file mode 100644 index 0000000000..2c70c0ddb2 --- /dev/null +++ b/frontend/src/components/Logs/RawLogView/types.ts @@ -0,0 +1,16 @@ +import { ILog } from 'types/api/logs/log'; + +export interface RawLogViewProps { + isActiveLog?: boolean; + isReadOnly?: boolean; + isTextOverflowEllipsisDisabled?: boolean; + data: ILog; + linesPerRow: number; +} + +export interface RawLogContentProps { + linesPerRow: number; + $isReadOnly?: boolean; + $isActiveLog?: boolean; + $isTextOverflowEllipsisDisabled?: boolean; +} diff --git a/frontend/src/container/LogsContextList/index.tsx b/frontend/src/container/LogsContextList/index.tsx index 7037a386aa..25e0414498 100644 --- a/frontend/src/container/LogsContextList/index.tsx +++ b/frontend/src/container/LogsContextList/index.tsx @@ -154,7 +154,13 @@ function LogsContextList({ const getItemContent = useCallback( (_: number, log: ILog): JSX.Element => ( - + ), [], ); diff --git a/frontend/src/container/LogsExplorerContext/index.tsx b/frontend/src/container/LogsExplorerContext/index.tsx index 746148f3d1..0631c78ea6 100644 --- a/frontend/src/container/LogsExplorerContext/index.tsx +++ b/frontend/src/container/LogsExplorerContext/index.tsx @@ -9,7 +9,7 @@ import { useIsDarkMode } from 'hooks/useDarkMode'; import { memo, useCallback, useMemo, useState } from 'react'; import { Query, TagFilter } from 'types/api/queryBuilder/queryBuilderData'; -import { EditButton, TitleWrapper } from './styles'; +import { EditButton, LogContainer, TitleWrapper } from './styles'; import { LogsExplorerContextProps } from './types'; import useInitialQuery from './useInitialQuery'; @@ -96,7 +96,15 @@ function LogsExplorerContext({ // eslint-disable-next-line react/jsx-props-no-spreading {...contextListParams} /> - + + + ` ? getAlphaColor(themeColors.white)[45] : getAlphaColor(themeColors.black)[45]}; `; + +export const LogContainer = styled.div` + overflow-x: auto; +`; diff --git a/frontend/src/utils/logs.ts b/frontend/src/utils/logs.ts index 66a6ba28a6..bfe79a3177 100644 --- a/frontend/src/utils/logs.ts +++ b/frontend/src/utils/logs.ts @@ -3,8 +3,8 @@ import { themeColors } from 'constants/theme'; import getAlphaColor from 'utils/getAlphaColor'; export const getDefaultLogBackground = ( - isReadOnly: boolean, - isDarkMode: boolean, + isReadOnly?: boolean, + isDarkMode?: boolean, ): string => { if (isReadOnly) return ''; return `&:hover {