fix(style): tooltip shown when no content

This commit is contained in:
jialin
2024-10-25 22:36:26 +08:00
parent a185bd9463
commit f730548c8f
6 changed files with 57 additions and 48 deletions
+1
View File
@@ -47,6 +47,7 @@
"overlayscrollbars": "^2.10.0", "overlayscrollbars": "^2.10.0",
"overlayscrollbars-react": "^0.5.6", "overlayscrollbars-react": "^0.5.6",
"query-string": "^9.0.0", "query-string": "^9.0.0",
"rc-virtual-list": "^3.14.8",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"react-hotkeys-hook": "^4.5.0", "react-hotkeys-hook": "^4.5.0",
+12 -9
View File
@@ -104,6 +104,9 @@ dependencies:
query-string: query-string:
specifier: ^9.0.0 specifier: ^9.0.0
version: 9.0.0 version: 9.0.0
rc-virtual-list:
specifier: ^3.14.8
version: 3.14.8(react-dom@18.2.0)(react@18.2.0)
react: react:
specifier: ^18.2.0 specifier: ^18.2.0
version: 18.2.0 version: 18.2.0
@@ -15258,7 +15261,7 @@ packages:
rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0)
rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0) rc-trigger: 5.3.4(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-virtual-list: 3.14.5(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: 3.14.8(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: false dev: false
@@ -15276,7 +15279,7 @@ packages:
rc-motion: 2.9.2(react-dom@18.2.0)(react@18.2.0) rc-motion: 2.9.2(react-dom@18.2.0)(react@18.2.0)
rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.43.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.43.0(react-dom@18.2.0)(react@18.2.0)
rc-virtual-list: 3.14.5(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: 3.14.8(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: false dev: false
@@ -15416,7 +15419,7 @@ packages:
classnames: 2.5.1 classnames: 2.5.1
rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.43.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.43.0(react-dom@18.2.0)(react@18.2.0)
rc-virtual-list: 3.14.5(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: 3.14.8(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: false dev: false
@@ -15565,7 +15568,7 @@ packages:
classnames: 2.5.1 classnames: 2.5.1
rc-motion: 2.9.2(react-dom@18.2.0)(react@18.2.0) rc-motion: 2.9.2(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0)
rc-virtual-list: 3.14.5(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: 3.14.8(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: false dev: false
@@ -15581,7 +15584,7 @@ packages:
classnames: 2.5.1 classnames: 2.5.1
rc-motion: 2.9.2(react-dom@18.2.0)(react@18.2.0) rc-motion: 2.9.2(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.43.0(react-dom@18.2.0)(react@18.2.0) rc-util: 5.43.0(react-dom@18.2.0)(react@18.2.0)
rc-virtual-list: 3.14.5(react-dom@18.2.0)(react@18.2.0) rc-virtual-list: 3.14.8(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: false dev: false
@@ -15677,17 +15680,17 @@ packages:
react-is: 18.3.1 react-is: 18.3.1
dev: false dev: false
/rc-virtual-list@3.14.5(react-dom@18.2.0)(react@18.2.0): /rc-virtual-list@3.14.8(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==, tarball: https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz} resolution: {integrity: sha512-8D0KfzpRYi6YZvlOWIxiOm9BGt4Wf2hQyEaM6RXlDDiY2NhLheuYI+RA+7ZaZj1lq+XQqy3KHlaeeXQfzI5fGg==, tarball: https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.14.8.tgz}
engines: {node: '>=8.x'} engines: {node: '>=8.x'}
peerDependencies: peerDependencies:
react: '>=16.9.0' react: '>=16.9.0'
react-dom: '>=16.9.0' react-dom: '>=16.9.0'
dependencies: dependencies:
'@babel/runtime': 7.24.7 '@babel/runtime': 7.25.7
classnames: 2.5.1 classnames: 2.5.1
rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0)
rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) rc-util: 5.43.0(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
dev: false dev: false
+11 -7
View File
@@ -74,13 +74,17 @@ const AutoTooltip: React.FC<AutoTooltipProps> = ({
overlayInnerStyle={{ paddingInline: 0 }} overlayInnerStyle={{ paddingInline: 0 }}
destroyTooltipOnHide={false} destroyTooltipOnHide={false}
title={ title={
<TitleTip isOverflowing || showTitle ? (
isOverflowing={isOverflowing} <TitleTip
title={title} isOverflowing={isOverflowing}
showTitle={showTitle} title={title}
> showTitle={showTitle}
{children} >
</TitleTip> {children}
</TitleTip>
) : (
''
)
} }
{...tooltipProps} {...tooltipProps}
> >
+2 -3
View File
@@ -4,7 +4,6 @@ import '@xterm/xterm/css/xterm.css';
import classNames from 'classnames'; import classNames from 'classnames';
import _ from 'lodash'; import _ from 'lodash';
import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
import CopyButton from '../copy-button';
import './index.less'; import './index.less';
import useParseAnsi from './parse-ansi'; import useParseAnsi from './parse-ansi';
@@ -127,9 +126,9 @@ const LogsViewer: React.FC<LogsViewerProps> = (props) => {
return ( return (
<div className="logs-viewer-wrap-w2"> <div className="logs-viewer-wrap-w2">
<span className="copy"> {/* <span className="copy">
<CopyButton text={copyText} type="text" size="small"></CopyButton> <CopyButton text={copyText} type="text" size="small"></CopyButton>
</span> </span> */}
<div <div
className="wrap" className="wrap"
style={{ height: height }} style={{ height: height }}
@@ -246,25 +246,26 @@ const MessageInput: React.FC<MessageInputProps> = ({
}; };
const handleOnPaste = (e: any) => { const handleOnPaste = (e: any) => {
e.preventDefault(); // e.preventDefault();
const text = e.clipboardData.getData('text'); const text = e.clipboardData.getData('text');
if (text) { if (text) {
const startPos = e.target.selectionStart; // const startPos = e.target.selectionStart;
const endPos = e.target.selectionEnd; // const endPos = e.target.selectionEnd;
setMessage?.({ // setMessage?.({
...message, // ...message,
content: // content:
message.content.slice(0, startPos) + // message.content.slice(0, startPos) +
text + // text +
message.content.slice(endPos) // message.content.slice(endPos)
}); // });
if (endPos !== startPos) { // if (endPos !== startPos) {
setTimeout(() => { // setTimeout(() => {
e.target.setSelectionRange(endPos, endPos); // e.target.setSelectionRange(endPos, endPos);
}, 0); // }, 0);
} // }
} else { } else {
e.preventDefault();
getPasteContent(e); getPasteContent(e);
} }
}; };
@@ -105,23 +105,24 @@ const ContentItem: React.FC<MessageItemProps> = ({
); );
const handleOnPaste = (e: any) => { const handleOnPaste = (e: any) => {
e.preventDefault(); // e.preventDefault();
const text = e.clipboardData.getData('text'); const text = e.clipboardData.getData('text');
if (text) { if (text) {
const startPos = e.target.selectionStart; // const startPos = e.target.selectionStart;
const endPos = e.target.selectionEnd; // const endPos = e.target.selectionEnd;
updateMessage?.({ // updateMessage?.({
role: data.role, // role: data.role,
content: // content:
data.content.slice(0, startPos) + text + data.content.slice(endPos), // data.content.slice(0, startPos) + text + data.content.slice(endPos),
uid: data.uid // uid: data.uid
}); // });
if (endPos !== startPos) { // if (endPos !== startPos) {
setTimeout(() => { // setTimeout(() => {
e.target.setSelectionRange(endPos, endPos); // e.target.setSelectionRange(endPos, endPos);
}, 0); // }, 0);
} // }
} else { } else {
e.preventDefault();
getPasteContent(e); getPasteContent(e);
} }
}; };