Skip to content

Commit 3f0d065

Browse files
authored
fix(ImageBase): rm ref (#9258)
1 parent 3f08de2 commit 3f0d065

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

packages/vkui/src/components/ImageBase/ImageBase.tsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
'use client';
22

3-
import { useRef } from 'react';
43
import * as React from 'react';
54
import { classNames } from '@vkontakte/vkjs';
65
import { mergeStyle } from '../../helpers/mergeStyle';
@@ -198,8 +197,8 @@ export const ImageBase: React.FC<ImageBaseProps> & {
198197
const [loaded, setLoaded] = React.useState(false);
199198
const [failed, setFailed] = React.useState(false);
200199

201-
const mouseOverHandlersRef = useRef<VoidFunction[]>([]);
202-
const mouseOutHandlersRef = useRef<VoidFunction[]>([]);
200+
const [mouseOverHandlers] = React.useState<VoidFunction[]>([]);
201+
const [mouseOutHandlers] = React.useState<VoidFunction[]>([]);
203202

204203
const hasSrc = src || srcSet;
205204
const fallbackIcon = failed || !hasSrc ? fallbackIconProp : null;
@@ -245,20 +244,20 @@ export const ImageBase: React.FC<ImageBaseProps> & {
245244
);
246245

247246
const onMouseOver = () => {
248-
mouseOverHandlersRef.current.forEach((fn) => fn());
247+
mouseOverHandlers.forEach((fn) => fn());
249248
};
250249

251250
const onMouseOut = () => {
252-
mouseOutHandlersRef.current.forEach((fn) => fn());
251+
mouseOutHandlers.forEach((fn) => fn());
253252
};
254253

255254
const contextValue = React.useMemo(
256255
() => ({
257256
size,
258-
onMouseOverHandlers: mouseOverHandlersRef.current,
259-
onMouseOutHandlers: mouseOutHandlersRef.current,
257+
onMouseOverHandlers: mouseOverHandlers,
258+
onMouseOutHandlers: mouseOutHandlers,
260259
}),
261-
[size],
260+
[mouseOutHandlers, mouseOverHandlers, size],
262261
);
263262

264263
const imgStyles:

0 commit comments

Comments
 (0)