Skip to content

Commit ceabe12

Browse files
authored
docs(SB Footer): fix privacy popover (SAP#6433)
1 parent ed48142 commit ceabe12

File tree

1 file changed

+32
-19
lines changed

1 file changed

+32
-19
lines changed

.storybook/components/Footer.tsx

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,24 @@ import {
66
FlexBoxWrap,
77
Label,
88
Link,
9-
Popover
9+
Popover,
10+
Text
1011
} from '@ui5/webcomponents-react';
1112
import ButtonDesign from '@ui5/webcomponents/dist/types/ButtonDesign.js';
1213
import PopoverPlacement from '@ui5/webcomponents/dist/types/PopoverPlacement.js';
1314
import WrappingType from '@ui5/webcomponents/dist/types/WrappingType.js';
14-
import { useRef } from 'react';
15+
import { useRef, useState } from 'react';
1516
import { createPortal } from 'react-dom';
1617
import BestRunLogo from '../../assets/SAP_Best_R_grad_blk_scrn.png';
1718
import classes from './Footer.module.css';
1819

1920
export const Footer = ({ style }) => {
2021
const popoverRef = useRef(null);
2122
const footerRef = useRef(null);
23+
const [privacyPopoverOpen, setPPOpen] = useState(false);
2224
const showPrivacyPopover = (e) => {
23-
popoverRef.current.showAt(e.target);
25+
popoverRef.current.opener = e.target;
26+
setPPOpen((prev) => !prev);
2427
};
2528

2629
return createPortal(
@@ -41,7 +44,11 @@ export const Footer = ({ style }) => {
4144
</Label>
4245
</FlexBox>
4346
<FlexBox alignItems={FlexBoxAlignItems.Center} wrap={FlexBoxWrap.Wrap}>
44-
<Button design={ButtonDesign.Transparent} onClick={showPrivacyPopover}>
47+
<Button
48+
design={ButtonDesign.Transparent}
49+
onClick={showPrivacyPopover}
50+
accessibilityAttributes={{ hasPopup: 'dialog', expanded: privacyPopoverOpen }}
51+
>
4552
Privacy
4653
</Button>
4754
&nbsp;
@@ -59,21 +66,27 @@ export const Footer = ({ style }) => {
5966
</FlexBox>
6067
</FlexBox>
6168
</div>
62-
{createPortal(
63-
<Popover
64-
headerText={'Privacy Statement'}
65-
ref={popoverRef}
66-
placementType={PopoverPlacement.Top}
67-
data-ui5-compact-size
68-
style={{ width: '360px', maxWidth: '100%' }}
69-
>
70-
<Label wrappingType={WrappingType.Normal}>
71-
This site is hosted by <Link>GitHub Pages</Link>. Please see the <Link>GitHub Privacy Statement</Link> for
72-
any information how GitHub processes your personal data.
73-
</Label>
74-
</Popover>,
75-
document.body
76-
)}
69+
<Popover
70+
open={privacyPopoverOpen}
71+
headerText={'Privacy Statement'}
72+
ref={popoverRef}
73+
placement={PopoverPlacement.Top}
74+
data-ui5-compact-size
75+
style={{ width: '360px', maxWidth: '100%' }}
76+
onClose={() => setPPOpen(false)}
77+
>
78+
<Text>
79+
This site is hosted by{' '}
80+
<Link href="https://pages.github.com/" target="_blank">
81+
GitHub Pages
82+
</Link>
83+
. Please see the{' '}
84+
<Link href="https://docs.github.com/en/github/site-policy/github-privacy-statement" target="_blank">
85+
GitHub Privacy Statement
86+
</Link>{' '}
87+
for any information how GitHub processes your personal data.
88+
</Text>
89+
</Popover>
7790
</footer>,
7891
document.getElementById('storybook-docs')
7992
);

0 commit comments

Comments
 (0)