style: overlay scroller

This commit is contained in:
jialin
2025-04-28 10:05:06 +08:00
parent 838e0f9910
commit 4b748ee43a
18 changed files with 144 additions and 149 deletions
-5
View File
@@ -25,8 +25,3 @@
}
}
}
.simplebar-scrollbar::before {
background: var(--color-scroll-bg);
width: var(--scrollbar-size);
}
+30 -33
View File
@@ -3,10 +3,10 @@ import { StatusType } from '@/config/types';
import { InfoCircleOutlined } from '@ant-design/icons';
import { Button, Divider, Tooltip } from 'antd';
import classNames from 'classnames';
import React, { useEffect, useMemo, useState } from 'react';
import React, { useMemo } from 'react';
import 'simplebar-react/dist/simplebar.min.css';
import CopyButton from '../copy-button';
import SimpleOverlay from '../simple-overlay';
import { TooltipOverlayScroller } from '../overlay-scroller';
import CopyStyle from './copy-btn.less';
import './index.less';
@@ -47,17 +47,13 @@ const StatusTag: React.FC<StatusTagProps> = ({
type = 'tag'
}) => {
const { text, status } = statusValue;
const [statusColor, setStatusColor] = useState<{
const statusColor = useMemo<{
text: string;
bg: string;
border?: string;
}>({
text: '',
bg: ''
});
useEffect(() => {
setStatusColor(StatusColorMap[status]);
}>(() => {
return StatusColorMap[status];
}, [status]);
const statusMessage = useMemo(() => {
@@ -85,6 +81,7 @@ const StatusTag: React.FC<StatusTagProps> = ({
}
return <span>{text}</span>;
};
const renderTitle = useMemo(() => {
return (
<div className={CopyStyle['status-content-wrapper']}>
@@ -118,24 +115,21 @@ const StatusTag: React.FC<StatusTagProps> = ({
})}
</div>
<SimpleOverlay style={{ maxHeight: 200 }}>
<div
style={{
width: 'max-content',
maxWidth: 250,
paddingInline: 10,
whiteSpace: 'pre-wrap',
wordBreak: 'break-word'
}}
>
{statusMessage}
{statusMessage && <span className="m-r-5"></span>}
{extra}
{messageLink && (
<span dangerouslySetInnerHTML={{ __html: messageLink }}></span>
)}
</div>
</SimpleOverlay>
<div
style={{
width: 'max-content',
maxWidth: 250,
whiteSpace: 'pre-wrap',
wordBreak: 'break-word'
}}
>
{statusMessage}
{statusMessage && <span className="m-r-5"></span>}
{extra}
{messageLink && (
<span dangerouslySetInnerHTML={{ __html: messageLink }}></span>
)}
</div>
</div>
);
}, [statusValue]);
@@ -150,11 +144,14 @@ const StatusTag: React.FC<StatusTagProps> = ({
}}
>
{statusValue.message ? (
<Tooltip
trigger={['hover']}
<TooltipOverlayScroller
title={renderTitle}
destroyTooltipOnHide={true}
overlayInnerStyle={{ paddingInline: 0 }}
scrollbars={{
autoHide: 'never'
}}
toolTipProps={{
destroyTooltipOnHide: true
}}
>
<span className="txt err">
<span className="m-r-5">
@@ -162,7 +159,7 @@ const StatusTag: React.FC<StatusTagProps> = ({
</span>
{renderContent()}
</span>
</Tooltip>
</TooltipOverlayScroller>
) : (
<span className="txt">{renderContent()}</span>
)}