From 56af0b2f7e2421eb13502343b6e3f8c36df3a5c7 Mon Sep 17 00:00:00 2001 From: Dimitris-Rafail Katsampas Date: Tue, 4 Feb 2025 23:24:46 +0200 Subject: [PATCH] fix(core): added missing length property equality comparers (#10689) [skip ci] --- packages/core/ui/image/image-common.ts | 2 ++ .../ui/layouts/absolute-layout/absolute-layout-common.ts | 6 ++++-- packages/core/ui/layouts/wrap-layout/wrap-layout-common.ts | 6 ++++-- packages/core/ui/list-view/index.ios.ts | 2 +- packages/core/ui/list-view/list-view-common.ts | 3 ++- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/core/ui/image/image-common.ts b/packages/core/ui/image/image-common.ts index 7ef7ddf9d..f15db7f85 100644 --- a/packages/core/ui/image/image-common.ts +++ b/packages/core/ui/image/image-common.ts @@ -182,6 +182,7 @@ tintColorProperty.register(Style); export const decodeHeightProperty = new Property({ name: 'decodeHeight', defaultValue: { value: 0, unit: 'dip' }, + equalityComparer: Length.equals, valueConverter: Length.parse, }); decodeHeightProperty.register(ImageBase); @@ -189,6 +190,7 @@ decodeHeightProperty.register(ImageBase); export const decodeWidthProperty = new Property({ name: 'decodeWidth', defaultValue: { value: 0, unit: 'dip' }, + equalityComparer: Length.equals, valueConverter: Length.parse, }); decodeWidthProperty.register(ImageBase); diff --git a/packages/core/ui/layouts/absolute-layout/absolute-layout-common.ts b/packages/core/ui/layouts/absolute-layout/absolute-layout-common.ts index 50eedc1a9..eabc13c5e 100644 --- a/packages/core/ui/layouts/absolute-layout/absolute-layout-common.ts +++ b/packages/core/ui/layouts/absolute-layout/absolute-layout-common.ts @@ -61,7 +61,8 @@ export const leftProperty = new Property({ layout.onLeftChanged(target, oldValue, newValue); } }, - valueConverter: (v) => Length.parse(v), + equalityComparer: Length.equals, + valueConverter: Length.parse, }); leftProperty.register(View); @@ -75,6 +76,7 @@ export const topProperty = new Property({ layout.onTopChanged(target, oldValue, newValue); } }, - valueConverter: (v) => Length.parse(v), + equalityComparer: Length.equals, + valueConverter: Length.parse, }); topProperty.register(View); diff --git a/packages/core/ui/layouts/wrap-layout/wrap-layout-common.ts b/packages/core/ui/layouts/wrap-layout/wrap-layout-common.ts index 071052bea..6aeda1ebc 100644 --- a/packages/core/ui/layouts/wrap-layout/wrap-layout-common.ts +++ b/packages/core/ui/layouts/wrap-layout/wrap-layout-common.ts @@ -22,7 +22,8 @@ export const itemWidthProperty = new Property Length.parse(v), + equalityComparer: Length.equals, + valueConverter: Length.parse, valueChanged: (target, oldValue, newValue) => (target.effectiveItemWidth = Length.toDevicePixels(newValue, -1)), }); itemWidthProperty.register(WrapLayoutBase); @@ -31,7 +32,8 @@ export const itemHeightProperty = new Property Length.parse(v), + equalityComparer: Length.equals, + valueConverter: Length.parse, valueChanged: (target, oldValue, newValue) => (target.effectiveItemHeight = Length.toDevicePixels(newValue, -1)), }); itemHeightProperty.register(WrapLayoutBase); diff --git a/packages/core/ui/list-view/index.ios.ts b/packages/core/ui/list-view/index.ios.ts index e9f6f1a79..eff89c416 100644 --- a/packages/core/ui/list-view/index.ios.ts +++ b/packages/core/ui/list-view/index.ios.ts @@ -527,7 +527,7 @@ export class ListView extends ListViewBase { } [iosEstimatedRowHeightProperty.setNative](value: CoreTypes.LengthType) { const nativeView = this.nativeViewProtected; - const estimatedHeight = Length.toDevicePixels(value, 0); + const estimatedHeight = layout.toDeviceIndependentPixels(Length.toDevicePixels(value, 0)); nativeView.estimatedRowHeight = estimatedHeight < 0 ? DEFAULT_HEIGHT : estimatedHeight; } } diff --git a/packages/core/ui/list-view/list-view-common.ts b/packages/core/ui/list-view/list-view-common.ts index 04f1bbddb..dac45642e 100644 --- a/packages/core/ui/list-view/list-view-common.ts +++ b/packages/core/ui/list-view/list-view-common.ts @@ -237,7 +237,8 @@ rowHeightProperty.register(ListViewBase); export const iosEstimatedRowHeightProperty = new Property({ name: 'iosEstimatedRowHeight', - valueConverter: (v) => Length.parse(v), + equalityComparer: Length.equals, + valueConverter: Length.parse, }); iosEstimatedRowHeightProperty.register(ListViewBase);