diff --git a/arkoala-arkts/arkui/sdk/src/DataChangeListener.ets b/arkoala-arkts/arkui/sdk/src/DataChangeListener.ets deleted file mode 100644 index 1d4feef2dc4de06d71efc3190729f0048a9efb70..0000000000000000000000000000000000000000 --- a/arkoala-arkts/arkui/sdk/src/DataChangeListener.ets +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { DataOperation } from "./component/lazyForEach"; - -export declare interface DataChangeListener { - onDataReloaded(): void; - onDataAdded(index: number): void; - onDataAdd(index: number): void; - onDataMoved(from: number, to: number): void; - onDataMove(from: number, to: number): void; - onDataDeleted(index: number): void; - onDataDelete(index: number): void; - onDataChanged(index: number): void; - onDataChange(index: number): void; - onDatasetChange(dataOperations: DataOperation[]): void; -} diff --git a/arkoala-arkts/arkui/sdk/src/component/lazyForEach.ets b/arkoala-arkts/arkui/sdk/src/component/lazyForEach.ets index 8f6b1a833cb8bb74de6c80425cc11a0da4a1b66a..a67a52f86a2fbef6099c694e7c0ee8912548ff7f 100644 --- a/arkoala-arkts/arkui/sdk/src/component/lazyForEach.ets +++ b/arkoala-arkts/arkui/sdk/src/component/lazyForEach.ets @@ -14,8 +14,15 @@ */ import { Builder } from "../stateAnnotations" -import { DataChangeListener } from "../DataChangeListener" -export { DataChangeListener } from "../DataChangeListener" + +export declare interface DataChangeListener { + onDataReloaded(): void; + onDataAdd(index: number): void; + onDataMove(from: number, to: number): void; + onDataDelete(index: number): void; + onDataChange(index: number): void; + onDatasetChange(dataOperations: DataOperation[]): void; +} /** * Developers need to implement this interface to provide data to LazyForEach component. diff --git a/arkoala-arkts/arkui/src/DataChangeListener.ets b/arkoala-arkts/arkui/src/DataChangeListener.ets index 7e955c7602c0cc2a43ae5278f85cca0fae67ed5e..b765c82ceb599d19f78dd2767249c199be1ddcf6 100644 --- a/arkoala-arkts/arkui/src/DataChangeListener.ets +++ b/arkoala-arkts/arkui/src/DataChangeListener.ets @@ -17,19 +17,7 @@ import { pointer } from "@koalaui/interop"; import { DataOperation, DataOperationType, DataAddOperation, DataDeleteOperation, DataChangeOperation, DataMoveOperation, DataExchangeOperation, LazyForEachOps } from "#generated"; import { int32 } from "@koalaui/common" import { MutableState } from "@koalaui/runtime"; - -export interface DataChangeListener { - onDataReloaded(): void; - onDataAdded(index: number): void; - onDataAdd(index: number): void; - onDataMoved(from: number, to: number): void; - onDataMove(from: number, to: number): void; - onDataDeleted(index: number): void; - onDataDelete(index: number): void; - onDataChanged(index: number): void; - onDataChange(index: number): void; - onDatasetChange(dataOperations: DataOperation[]): void; -} +import { DataChangeListener } from "./component/lazyForEach"; export class InternalListener implements DataChangeListener { parent: pointer @@ -156,18 +144,4 @@ export class InternalListener implements DataChangeListener { this.endIndex = endIndex this.changeCount = changeCount } - - /* deprecated */ - onDataAdded(index: number): void { - this.onDataAdd(index) - } - onDataMoved(from: number, to: number): void { - this.onDataMove(from, to) - } - onDataDeleted(index: number): void { - this.onDataDelete(index) - } - onDataChanged(index: number): void { - this.onDataChange(index) - } } diff --git a/arkoala-arkts/arkui/src/component/lazyForEach.ets b/arkoala-arkts/arkui/src/component/lazyForEach.ets index 3cbd17124177b127e3e78cc6028cf3519a8e5e5c..132b2cefe065c71bba58f1f4d45e8c5fb0cae5b8 100644 --- a/arkoala-arkts/arkui/src/component/lazyForEach.ets +++ b/arkoala-arkts/arkui/src/component/lazyForEach.ets @@ -19,9 +19,16 @@ import { hashCodeFromString, int32, KoalaCallsiteKey } from "@koalaui/common" import { nullptr, pointer } from "@koalaui/interop"; import { LazyForEachType, PeerNode, PeerNodeType } from "../PeerNode"; import { LazyForEachOps } from "#generated" -import { DataChangeListener, InternalListener } from "../DataChangeListener"; - -export { DataChangeListener } from "../DataChangeListener"; +import { InternalListener } from "../DataChangeListener"; + +export interface DataChangeListener { + onDataReloaded(): void; + onDataAdd(index: number): void; + onDataMove(from: number, to: number): void; + onDataDelete(index: number): void; + onDataChange(index: number): void; + onDatasetChange(dataOperations: DataOperation[]): void; +} /** * Developers need to implement this interface to provide data to LazyForEach component. @@ -154,8 +161,13 @@ function getOffset(parent: PeerNode, id: KoalaCallsiteKey): int32 { return offset // DataNode not found, maybe throw error? } +export interface LazyForEachAttribute {} + @memo -export function LazyForEach(dataSource: IDataSource, +export function LazyForEach( + @memo + style: ((attributes: LazyForEachAttribute) => void) | undefined, + dataSource: IDataSource, @memo itemGenerator: (item: T, index: number) => void, keyGenerator?: (item: T, index: number) => string,