@shopify/react-native-skia
Version:
High-performance React Native Graphics using Skia
32 lines (31 loc) • 1.46 kB
TypeScript
import type { FC, RefObject } from "react";
import React from "react";
import type { MeasureInWindowOnSuccessCallback, MeasureOnSuccessCallback, ViewProps } from "react-native";
import type { SharedValue } from "react-native-reanimated";
import type { SkImage, SkRect, SkSize } from "../skia/types";
export interface CanvasRef extends FC<CanvasProps> {
makeImageSnapshot(rect?: SkRect): SkImage;
makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;
redraw(): void;
getNativeId(): number;
measure(callback: MeasureOnSuccessCallback): void;
measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;
}
export declare const useCanvasRef: () => RefObject<CanvasRef | null>;
export declare const useCanvasSize: (userRef?: RefObject<CanvasRef | null>) => {
ref: RefObject<CanvasRef | null>;
size: SkSize;
};
export declare const isFabric: boolean;
export interface CanvasProps extends Omit<ViewProps, "onLayout"> {
debug?: boolean;
/** @deprecated Not supported on Fabric. Use `onSize` or `useCanvasSize()` instead. */
onLayout?: ViewProps["onLayout"];
opaque?: boolean;
onSize?: SharedValue<SkSize>;
colorSpace?: "p3" | "srgb";
ref?: React.Ref<CanvasRef>;
androidWarmup?: boolean;
__destroyWebGLContextAfterRender?: boolean;
}
export declare const Canvas: ({ debug, opaque, children, onSize, colorSpace, androidWarmup, ref, onLayout, ...viewProps }: CanvasProps) => React.JSX.Element;