UNPKG

@shopify/react-native-skia

Version:

High-performance React Native Graphics using Skia

32 lines (31 loc) 1.46 kB
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;