• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

inventree / InvenTree / 8535197168

03 Apr 2024 07:58AM CUT coverage: 90.342% (-2.2%) from 92.496%
8535197168

Pull #6881

github

web-flow
Merge a1722af93 into 6be2ede5e
Pull Request #6881: [PUI] Add coverage testing

227 of 631 branches covered (35.97%)

Branch coverage included in aggregate %.

0 of 1 new or added line in 1 file covered. (0.0%)

1 existing line in 1 file now uncovered.

31971 of 35009 relevant lines covered (91.32%)

1.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

12.0
/src/frontend/src/components/items/DocTooltip.tsx
1
import { Trans } from '@lingui/macro';
2
import { Anchor, Container, HoverCard, ScrollArea, Text } from '@mantine/core';
3
import { useEffect, useRef, useState } from 'react';
4

5
import { InvenTreeStyle } from '../../globalStyle';
6

7
export interface BaseDocProps {
8
  text: string | JSX.Element;
9
  detail?: string | JSX.Element;
10
  link?: string;
11
  docchildren?: React.ReactNode;
12
}
13

14
export interface DocTooltipProps extends BaseDocProps {
15
  children: React.ReactNode;
16
}
17

18
export function DocTooltip({
19
  children,
20
  text,
21
  detail,
22
  link,
23
  docchildren
24
}: DocTooltipProps) {
25
  const { classes } = InvenTreeStyle();
×
26

27
  return (
×
28
    <HoverCard
29
      shadow="md"
30
      openDelay={200}
31
      closeDelay={200}
32
      withinPortal={true}
33
      classNames={{ dropdown: classes.docHover }}
34
    >
35
      <HoverCard.Target>
36
        <div>{children}</div>
37
      </HoverCard.Target>
38
      <HoverCard.Dropdown>
39
        <ConstBody
40
          text={text}
41
          detail={detail}
42
          docchildren={docchildren}
43
          link={link}
44
        />
45
      </HoverCard.Dropdown>
46
    </HoverCard>
47
  );
48
}
2✔
49

50
function ConstBody({
4✔
51
  text,
52
  detail,
53
  docchildren,
54
  link
55
}: {
56
  text: string | JSX.Element;
57
  detail?: string | JSX.Element;
58
  docchildren?: React.ReactNode;
59
  link?: string;
60
}) {
×
61
  const [height, setHeight] = useState(0);
×
62
  const ref = useRef(null);
×
63

64
  // dynamically set height of scroll area based on content to remove unnecessary scroll bar
65
  useEffect(() => {
×
66
    if (ref.current == null) return;
×
67

68
    let height = ref.current['clientHeight'];
×
69
    if (height > 250) {
×
70
      setHeight(250);
×
71
    } else {
72
      setHeight(height + 1);
×
73
    }
74
  });
75

76
  return (
×
77
    <Container maw={400} p={0}>
78
      <Text>{text}</Text>
×
79
      {(detail || docchildren) && (
80
        <ScrollArea h={height} mah={250}>
81
          <div ref={ref}>
82
            {detail && (
×
83
              <Text size="xs" color="dimmed">
84
                {detail}
85
              </Text>
86
            )}
87
            {docchildren}
88
          </div>
89
        </ScrollArea>
90
      )}
91
      {link && (
×
92
        <Anchor href={link} target="_blank">
93
          <Text size={'sm'}>
94
            <Trans>Read More</Trans>
95
          </Text>
96
        </Anchor>
97
      )}
98
    </Container>
99
  );
100
}
2✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc