Skip to content

Commit

Permalink
Merge pull request #20368 from thebuilder/ui/fix-find-dom-node
Browse files Browse the repository at this point in the history
UI: fix deprecated ReactDOM.findDOMNode calls
  • Loading branch information
ndelangen committed Dec 23, 2022
2 parents a2ad903 + 0f293fa commit d2f66cb
Show file tree
Hide file tree
Showing 5 changed files with 236 additions and 268 deletions.
19 changes: 10 additions & 9 deletions code/addons/a11y/src/components/Report/Rules.tsx
Expand Up @@ -3,7 +3,7 @@ import React from 'react';
import { styled } from '@storybook/theming';
import { Badge } from '@storybook/components';
import type { CheckResult } from 'axe-core';
import ReactResizeDetector from 'react-resize-detector';
import { useResizeDetector } from 'react-resize-detector';

const List = styled.div({
display: 'flex',
Expand Down Expand Up @@ -53,6 +53,11 @@ const formatSeverityText = (severity: string) => {
};

const Rule: FC<RuleProps> = ({ rule }) => {
const { ref, width } = useResizeDetector({
refreshMode: 'debounce',
handleHeight: false,
handleWidth: true,
});
let badgeType: any = null;
switch (rule.impact) {
case ImpactValue.CRITICAL:
Expand All @@ -71,14 +76,10 @@ const Rule: FC<RuleProps> = ({ rule }) => {
break;
}
return (
<ReactResizeDetector handleWidth handleHeight refreshMode="debounce">
{(size) => (
<Item elementWidth={size.width || 0}>
<StyledBadge status={badgeType}>{formatSeverityText(rule.impact)}</StyledBadge>
<Message>{rule.message}</Message>
</Item>
)}
</ReactResizeDetector>
<Item ref={ref} elementWidth={width || 0}>
<StyledBadge status={badgeType}>{formatSeverityText(rule.impact)}</StyledBadge>
<Message>{rule.message}</Message>
</Item>
);
};

Expand Down
67 changes: 33 additions & 34 deletions code/addons/a11y/src/components/Tabs.tsx
Expand Up @@ -2,7 +2,7 @@ import * as React from 'react';

import { styled } from '@storybook/theming';
import type { NodeResult, Result } from 'axe-core';
import ReactResizeDetector from 'react-resize-detector';
import { useResizeDetector } from 'react-resize-detector';
import HighlightToggle from './Report/HighlightToggle';

import type { RuleType } from './A11YPanel';
Expand Down Expand Up @@ -99,6 +99,11 @@ function retrieveAllNodesFromResults(items: Result[]): NodeResult[] {
}

export const Tabs: React.FC<TabsProps> = ({ tabs }) => {
const { ref, width } = useResizeDetector({
refreshMode: 'debounce',
handleHeight: false,
handleWidth: true,
});
const { tab: activeTab, setTab } = useA11yContext();

const handleToggle = React.useCallback(
Expand All @@ -111,38 +116,32 @@ export const Tabs: React.FC<TabsProps> = ({ tabs }) => {
const highlightToggleId = `${tabs[activeTab].type}-global-checkbox`;
const highlightLabel = `Highlight results`;
return (
<ReactResizeDetector handleWidth handleHeight refreshMode="debounce">
{(size) => (
<Container>
<List>
<TabsWrapper>
{tabs.map((tab, index) => (
<Item
/* eslint-disable-next-line react/no-array-index-key */
key={index}
data-index={index}
active={activeTab === index}
onClick={handleToggle}
>
{tab.label}
</Item>
))}
</TabsWrapper>
</List>
{tabs[activeTab].items.length > 0 ? (
<GlobalToggle elementWidth={size.width || 0}>
<HighlightToggleLabel htmlFor={highlightToggleId}>
{highlightLabel}
</HighlightToggleLabel>
<HighlightToggle
toggleId={highlightToggleId}
elementsToHighlight={retrieveAllNodesFromResults(tabs[activeTab].items)}
/>
</GlobalToggle>
) : null}
{tabs[activeTab].panel}
</Container>
)}
</ReactResizeDetector>
<Container ref={ref}>
<List>
<TabsWrapper>
{tabs.map((tab, index) => (
<Item
/* eslint-disable-next-line react/no-array-index-key */
key={index}
data-index={index}
active={activeTab === index}
onClick={handleToggle}
>
{tab.label}
</Item>
))}
</TabsWrapper>
</List>
{tabs[activeTab].items.length > 0 ? (
<GlobalToggle elementWidth={width || 0}>
<HighlightToggleLabel htmlFor={highlightToggleId}>{highlightLabel}</HighlightToggleLabel>
<HighlightToggle
toggleId={highlightToggleId}
elementsToHighlight={retrieveAllNodesFromResults(tabs[activeTab].items)}
/>
</GlobalToggle>
) : null}
{tabs[activeTab].panel}
</Container>
);
};

0 comments on commit d2f66cb

Please sign in to comment.