Skip to content

Commit 0d5c3a8

Browse files
authored
fix: rm useEffectDev (#9271)
1 parent b7acf31 commit 0d5c3a8

File tree

5 files changed

+44
-25
lines changed

5 files changed

+44
-25
lines changed

packages/vkui/src/components/ActionSheet/ActionSheetDropdownMenu.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import * as React from 'react';
44
import { classNames } from '@vkontakte/vkjs';
55
import { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';
6-
import { useEffectDev } from '../../hooks/useEffectDev';
76
import { usePlatform } from '../../hooks/usePlatform';
87
import { useDOM } from '../../lib/dom';
98
import { isRefObject } from '../../lib/isRefObject';
@@ -39,10 +38,12 @@ export const ActionSheetDropdownMenu = ({
3938
const { sizeY } = useAdaptivityWithJSMediaQueries();
4039
const elementRef = React.useRef<HTMLDivElement | null>(null);
4140

42-
useEffectDev(() => {
43-
const toggleEl = getEl(toggleRef);
44-
if (!toggleEl) {
45-
warn(`Свойство "toggleRef" не передано`, 'error');
41+
React.useEffect(() => {
42+
if (process.env.NODE_ENV === 'development') {
43+
const toggleEl = getEl(toggleRef);
44+
if (!toggleEl) {
45+
warn(`Свойство "toggleRef" не передано`, 'error');
46+
}
4647
}
4748
}, [toggleRef]);
4849

packages/vkui/src/components/OnboardingTooltip/OnboardingTooltip.test.tsx

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,16 +130,40 @@ describe(OnboardingTooltip, () => {
130130
setNodeEnv('development');
131131
const warn = vi.spyOn(console, 'warn').mockImplementation(noop);
132132

133-
const component = render(<OnboardingTooltip onClose={noop} title="title" />);
133+
const component = render(
134+
<OnboardingTooltipContainer>
135+
<OnboardingTooltip onClose={noop} title="title">
136+
<div />
137+
</OnboardingTooltip>
138+
</OnboardingTooltipContainer>,
139+
);
134140
expect(warn).not.toHaveBeenCalled();
135141

136-
component.rerender(<OnboardingTooltip onClose={noop} aria-label="title" />);
142+
component.rerender(
143+
<OnboardingTooltipContainer>
144+
<OnboardingTooltip onClose={noop} aria-label="title">
145+
<div />
146+
</OnboardingTooltip>
147+
</OnboardingTooltipContainer>,
148+
);
137149
expect(warn).not.toHaveBeenCalled();
138150

139-
component.rerender(<OnboardingTooltip onClose={noop} aria-labelledby="labelId" />);
151+
component.rerender(
152+
<OnboardingTooltipContainer>
153+
<OnboardingTooltip onClose={noop} aria-labelledby="labelId">
154+
<div />
155+
</OnboardingTooltip>
156+
</OnboardingTooltipContainer>,
157+
);
140158
expect(warn).not.toHaveBeenCalled();
141159

142-
component.rerender(<OnboardingTooltip onClose={noop} />);
160+
component.rerender(
161+
<OnboardingTooltipContainer>
162+
<OnboardingTooltip onClose={noop}>
163+
<div />
164+
</OnboardingTooltip>
165+
</OnboardingTooltipContainer>,
166+
);
143167

144168
expect(warn.mock.calls[0][0]).toBe(
145169
'%c[VKUI/OnboardingTooltip] Если "title" не используется, то необходимо задать либо "aria-label", либо "aria-labelledby" (см. правило axe aria-dialog-name)',

packages/vkui/src/hooks/useEffectDev.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

packages/vkui/src/hooks/usePatchChildren.test.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ vi.mock('../lib/warnOnce', () => ({
4646
warnOnce: () => () => console.error('custom-error'),
4747
}));
4848

49-
vi.mock('./useEffectDev', () => ({
50-
useEffectDev: React.useEffect,
51-
}));
49+
vi.stubEnv('NODE_ENV', 'development');
5250

5351
type ConsoleErrorArgs = Parameters<typeof console.error>;
5452

packages/vkui/src/hooks/usePatchChildren.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
} from '../lib/utils';
88
import { warnOnce } from '../lib/warnOnce';
99
import type { HasRootRef } from '../types';
10-
import { useEffectDev } from './useEffectDev';
1110
import { useExternRef } from './useExternRef';
1211

1312
const warn = warnOnce('usePatchChildren');
@@ -77,14 +76,16 @@ export const usePatchChildren = <ElementType extends HTMLElement = HTMLElement>(
7776

7877
const patchedChildren = isValidElementResult ? React.cloneElement(children, props) : children;
7978

80-
useEffectDev(() => {
81-
if (!childRef.current && !shouldUseRef) {
82-
warn(
83-
'Кажется, в children передан компонент, который не поддерживает свойство getRootRef. Мы не можем получить ссылку на корневой dom-элемент этого компонента',
84-
'error',
85-
);
79+
React.useEffect(() => {
80+
if (process.env.NODE_ENV === 'development') {
81+
if (!childRef.current && !shouldUseRef) {
82+
warn(
83+
'Кажется, в children передан компонент, который не поддерживает свойство getRootRef. Мы не можем получить ссылку на корневой dom-элемент этого компонента',
84+
'error',
85+
);
86+
}
8687
}
87-
}, [isValidElementResult ? children.type : null, shouldUseRef, childRef]);
88+
}, [shouldUseRef, childRef]);
8889

8990
return [childRef, patchedChildren];
9091
};

0 commit comments

Comments
 (0)