Skip to content

Commit e2854a5

Browse files
authored
fix inverted horizontal list performance laggy (Shopify#851)
1 parent f91bcb1 commit e2854a5

5 files changed

Lines changed: 7 additions & 1 deletion

File tree

src/FlashList.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,9 @@ class FlashList<T> extends React.PureComponent<
7070
private stickyContentContainerRef?: PureComponentWrapper;
7171
private listFixedDimensionSize = 0;
7272
private transformStyle = PlatformConfig.invertedTransformStyle;
73-
private transformStyleHorizontal = { transform: [{ scaleX: -1 }] };
73+
private transformStyleHorizontal =
74+
PlatformConfig.invertedTransformStyleHorizontal;
75+
7476
private distanceFromWindow = 0;
7577
private contentStyle: ContentStyleExplicit = {
7678
paddingBottom: 0,

src/native/config/PlatformHelper.android.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const PlatformConfig = {
44
defaultDrawDistance: 250,
55
// Using rotate instead of scaleY on Android to avoid performance issues. Issue: https://github.com/Shopify/flash-list/issues/751
66
invertedTransformStyle: { transform: [{ rotate: "180deg" }] },
7+
invertedTransformStyleHorizontal: { transform: [{ rotate: "180deg" }] },
78
};
89
const getCellContainerPlatformStyles = (
910
inverted: boolean,

src/native/config/PlatformHelper.ios.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { BaseItemAnimator } from "recyclerlistview";
33
const PlatformConfig = {
44
defaultDrawDistance: 250,
55
invertedTransformStyle: { transform: [{ scaleY: -1 }] },
6+
invertedTransformStyleHorizontal: { transform: [{ scaleX: -1 }] },
67
};
78
const getCellContainerPlatformStyles = (
89
inverted: boolean,

src/native/config/PlatformHelper.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { DefaultJSItemAnimator } from "recyclerlistview/dist/reactnative/platfor
44
const PlatformConfig = {
55
defaultDrawDistance: 250,
66
invertedTransformStyle: { transform: [{ scaleY: -1 }] },
7+
invertedTransformStyleHorizontal: { transform: [{ scaleX: -1 }] },
78
};
89
const getCellContainerPlatformStyles = (
910
inverted: boolean,

src/native/config/PlatformHelper.web.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { DefaultJSItemAnimator } from "recyclerlistview/dist/reactnative/platfor
66
const PlatformConfig = {
77
defaultDrawDistance: 2000,
88
invertedTransformStyle: { transform: [{ scaleY: -1 }] },
9+
invertedTransformStyleHorizontal: { transform: [{ scaleX: -1 }] },
910
};
1011
const getCellContainerPlatformStyles = (
1112
inverted: boolean,

0 commit comments

Comments
 (0)