|
1 | | -import { useState, MouseEvent, memo } from "react"; |
| 1 | +import { useState, MouseEvent } from "react"; |
2 | 2 | import { CheckButton } from "./CheckButton"; |
3 | 3 | import { ImageExtended, ImageProps } from "./types"; |
4 | 4 | import * as styles from "./styles"; |
5 | 5 | import { getStyle } from "./styles"; |
6 | 6 |
|
7 | | -const imagePropsAreEqual = (prevProps: ImageProps, currProps: ImageProps) => { |
8 | | - // states are the same iff the props are the same |
9 | | - |
10 | | - const { |
11 | | - item: prevItem, |
12 | | - index: prevIndex, |
13 | | - margin: prevMargin, |
14 | | - height: prevHeight, |
15 | | - isSelectable: prevIsSelectable, |
16 | | - } = prevProps; |
17 | | - |
18 | | - const { |
19 | | - item: currItem, |
20 | | - index: currIndex, |
21 | | - margin: currMargin, |
22 | | - height: currHeight, |
23 | | - isSelectable: currIsSelectable, |
24 | | - } = currProps; |
25 | | - |
26 | | - return ( |
27 | | - prevItem.src === currItem.src && |
28 | | - prevItem.width === currItem.width && |
29 | | - prevItem.height === currItem.height && |
30 | | - prevItem.scaledHeight === currItem.scaledHeight && |
31 | | - prevItem.scaledWidth === currItem.scaledWidth && |
32 | | - prevItem.viewportWidth === currItem.viewportWidth && |
33 | | - prevItem.marginLeft === currItem.marginLeft && |
34 | | - prevIndex === currIndex && |
35 | | - prevMargin === currMargin && |
36 | | - prevHeight === currHeight && |
37 | | - prevIsSelectable === currIsSelectable |
38 | | - ); |
39 | | -}; |
40 | | - |
41 | | -const ImageBase = <T extends ImageExtended>({ |
| 7 | +export const Image = <T extends ImageExtended>({ |
42 | 8 | item, |
43 | 9 | thumbnailImageComponent: ThumbnailImageComponent, |
44 | 10 | isSelectable = true, |
@@ -166,5 +132,3 @@ const ImageBase = <T extends ImageExtended>({ |
166 | 132 | </div> |
167 | 133 | ); |
168 | 134 | }; |
169 | | - |
170 | | -export const Image = memo(ImageBase, imagePropsAreEqual); |
0 commit comments