Skip to content

Commit 8a5fe01

Browse files
committed
fixes
1 parent a2cbc6e commit 8a5fe01

File tree

4 files changed

+45
-42
lines changed

4 files changed

+45
-42
lines changed

public/locales/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,8 @@
333333
"errors": {
334334
"installError": "Install error",
335335
"syncError": "Sync error",
336-
"error": "Error"
336+
"error": "Error",
337+
"notHealthy": "Not healthy"
337338
},
338339
"buttons": {
339340
"viewResource": "View resource",

src/components/Helper/AnimatedHoverTextButton.tsx

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
1-
import { Button, FlexBox, FlexBoxAlignItems, Text } from '@ui5/webcomponents-react';
1+
import { Button, ButtonDomRef, FlexBox, FlexBoxAlignItems, Text } from '@ui5/webcomponents-react';
22
import '@ui5/webcomponents-icons/dist/copy';
3-
import { JSX, useState } from 'react';
3+
import { JSX, RefObject, useState } from 'react';
44
import ButtonDesign from '@ui5/webcomponents/dist/types/ButtonDesign.js';
55

66
export function AnimatedHoverTextButton({
77
text,
88
icon,
9-
onClick,
9+
10+
ref,
1011
}: {
1112
text: string;
1213
icon: JSX.Element;
13-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
14-
onClick: (e: any) => void;
14+
15+
ref?: RefObject<ButtonDomRef | null>;
1516
}) {
1617
const [hover, setHover] = useState(false);
1718
return (
1819
<Button
20+
ref={ref}
1921
design={ButtonDesign.Transparent}
20-
onClick={onClick}
2122
onMouseOver={() => setHover(true)}
2223
onMouseLeave={() => setHover(false)}
2324
>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
.message {
2+
max-width: 60ch;
3+
text-align: left;
4+
line-height: 1.5em;
5+
}
6+
7+
.wrapper {
8+
border-top: 1px solid gray;
9+
padding-top: 1rem;
10+
margin-top: 1rem;
11+
}
12+
13+
.subheader {
14+
max-width: 60ch;
15+
text-align: left;
16+
line-height: 1.5em;
17+
font-weight: bold;
18+
}

src/components/Shared/ResourceStatusCell.tsx

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { FlexBox, Icon, PopoverDomRef, ResponsivePopover, Text } from '@ui5/webcomponents-react';
1+
import { ButtonDomRef, FlexBox, Icon, ResponsivePopover, Text } from '@ui5/webcomponents-react';
22
import { timeAgo } from '../../utils/i18n/timeAgo';
3-
import { MouseEvent, useRef, useState } from 'react';
3+
import { RefObject, useRef, useState } from 'react';
44
import { AnimatedHoverTextButton } from '../Helper/AnimatedHoverTextButton.tsx';
55
import PopoverPlacement from '@ui5/webcomponents/dist/types/PopoverPlacement.js';
6-
6+
import styles from './ResourceStatusCell.module.css';
77
export interface ResourceStatusCellProps {
88
isOk: boolean;
99
transitionTime: string;
@@ -18,19 +18,17 @@ export const ResourceStatusCell = ({
1818
positiveText,
1919
negativeText,
2020
}: ResourceStatusCellProps) => {
21-
const popoverRef = useRef<PopoverDomRef>(null);
22-
const [open, setOpen] = useState(false);
21+
const btnRef = useRef<ButtonDomRef>(null);
22+
const [popoverIsOpen, setPopoverIsOpen] = useState(false);
2323

24-
const handleOpenerClick = (e: MouseEvent<HTMLButtonElement>) => {
25-
if (popoverRef.current) {
26-
(popoverRef.current as unknown as { opener: EventTarget | null }).opener = e.target;
27-
setOpen((prev) => !prev);
28-
}
24+
const handleClose = () => {
25+
setPopoverIsOpen(false);
2926
};
3027

3128
return (
3229
<span>
3330
<AnimatedHoverTextButton
31+
ref={btnRef}
3432
icon={
3533
<Icon
3634
design={isOk ? 'Positive' : 'Negative'}
@@ -40,41 +38,26 @@ export const ResourceStatusCell = ({
4038
/>
4139
}
4240
text={isOk ? positiveText : negativeText}
43-
onClick={handleOpenerClick}
4441
/>
45-
<ResponsivePopover ref={popoverRef} open={open} placement={PopoverPlacement.Bottom}>
46-
<Text
47-
style={{
48-
maxWidth: '60ch',
49-
textAlign: 'left',
50-
lineHeight: '1.5em',
51-
}}
52-
>
53-
{message}
54-
</Text>
42+
<ResponsivePopover
43+
opener={btnRef.current}
44+
open={popoverIsOpen}
45+
placement={PopoverPlacement.Bottom}
46+
onClose={handleClose}
47+
>
48+
<Text className={styles.message}>{message}</Text>
5549

56-
<FlexBox
57-
style={{
58-
borderTop: '1px solid gray',
59-
paddingTop: '1rem',
60-
marginTop: '1rem',
61-
}}
62-
justifyContent={'Start'}
63-
alignItems={'Center'}
64-
gap={12}
65-
>
50+
<FlexBox className={styles.wrapper} justifyContent={'Start'} alignItems={'Center'} gap={12}>
6651
<Icon
6752
name={'date-time'}
6853
style={{
6954
color: isOk ? 'var(--sapPositiveTextColor)' : 'var(--sapNegativeTextColor)',
7055
}}
56+
design={isOk ? 'Positive' : 'Negative'}
7157
/>
7258
<Text
59+
className={styles.subheader}
7360
style={{
74-
maxWidth: '60ch',
75-
textAlign: 'left',
76-
lineHeight: '1.5em',
77-
fontWeight: 'bold',
7861
color: isOk ? 'var(--sapPositiveTextColor)' : 'var(--sapNegativeTextColor)',
7962
}}
8063
>

0 commit comments

Comments
 (0)