@react-native-ohos/sample-package
Version:
react native harmony sample package
45 lines (38 loc) • 1.5 kB
text/typescript
/*
* Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
* Use of this source code is governed by a MIT license that can be
* found in the LICENSE file.
*/
import {
TurboModulesFactory,
RNPackage} from '@rnoh/react-native-openharmony/ts';
import type {
TurboModule,
TurboModuleContext,
DescriptorWrapperFactoryByDescriptorTypeCtx,
DescriptorWrapperFactoryByDescriptorType
} from '@rnoh/react-native-openharmony/ts';
import { SampleViewArkTS } from "./generated/components/ts"
import { SampleTurboModule } from "./generated/turboModules/ts"
import { TurboModuleSample } from './TurboModule';
class SampleTurboModulesFactory extends TurboModulesFactory {
createTurboModule(name: string): TurboModule | null {
if (name === SampleTurboModule.NAME) {
return new TurboModuleSample(this.ctx);
}
return null;
}
hasTurboModule(name: string): boolean {
return name === SampleTurboModule.NAME;
}
}
export class SamplePackage extends RNPackage {
createTurboModulesFactory(ctx: TurboModuleContext): TurboModulesFactory {
return new SampleTurboModulesFactory(ctx);
}
createDescriptorWrapperFactoryByDescriptorType(ctx: DescriptorWrapperFactoryByDescriptorTypeCtx): DescriptorWrapperFactoryByDescriptorType {
const result: DescriptorWrapperFactoryByDescriptorType = {}
result[SampleViewArkTS.NAME] = (ctx) => new SampleViewArkTS.DescriptorWrapper(ctx.descriptor)
return result
}
}