create-expo-cljs-app
Version:
Create a react native application with Expo and Shadow-CLJS!
51 lines (50 loc) • 2.38 kB
Flow
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
* @format
*/
import type { TurboModule } from '../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
type EndResult = {
finished: boolean,
...
};
type EndCallback = (result: EndResult) => void;
type SaveValueCallback = (value: number) => void;
export type EventMapping = {|
nativeEventPath: Array<string>,
animatedValueTag: ?number,
|}; // The config has different keys depending on the type of the Node
// TODO(T54896888): Make these types strict
export type AnimatedNodeConfig = Object;
export type AnimatingNodeConfig = Object;
export interface Spec extends TurboModule {
+startOperationBatch: () => void,
+finishOperationBatch: () => void,
+createAnimatedNode: (tag: number, config: AnimatedNodeConfig) => void,
+getValue: (tag: number, saveValueCallback: SaveValueCallback) => void,
+startListeningToAnimatedNodeValue: (tag: number) => void,
+stopListeningToAnimatedNodeValue: (tag: number) => void,
+connectAnimatedNodes: (parentTag: number, childTag: number) => void,
+disconnectAnimatedNodes: (parentTag: number, childTag: number) => void,
+startAnimatingNode: (animationId: number, nodeTag: number, config: AnimatingNodeConfig, endCallback: EndCallback) => void,
+stopAnimation: (animationId: number) => void,
+setAnimatedNodeValue: (nodeTag: number, value: number) => void,
+setAnimatedNodeOffset: (nodeTag: number, offset: number) => void,
+flattenAnimatedNodeOffset: (nodeTag: number) => void,
+extractAnimatedNodeOffset: (nodeTag: number) => void,
+connectAnimatedNodeToView: (nodeTag: number, viewTag: number) => void,
+disconnectAnimatedNodeFromView: (nodeTag: number, viewTag: number) => void,
+restoreDefaultValues: (nodeTag: number) => void,
+dropAnimatedNode: (tag: number) => void,
+addAnimatedEventToView: (viewTag: number, eventName: string, eventMapping: EventMapping) => void,
+removeAnimatedEventFromView: (viewTag: number, eventName: string, animatedNodeTag: number) => void,
// Events
+addListener: (eventName: string) => void,
+removeListeners: (count: number) => void,
}
export default (TurboModuleRegistry.get<Spec>('NativeAnimatedModule'): ?Spec);