UNPKG

@shopify/react-native-skia

Version:

High-performance React Native Graphics using Skia

43 lines (38 loc) 1.12 kB
import type { CanvasKit } from "canvaskit-wasm"; import type { ParagraphBuilderFactory, SkParagraphStyle, SkTypefaceFontProvider, } from "../types"; import { Host } from "./Host"; import { JsiSkParagraphBuilder } from "./JsiSkParagraphBuilder"; import { JsiSkParagraphStyle } from "./JsiSkParagraphStyle"; import { JsiSkTypeface } from "./JsiSkTypeface"; export class JsiSkParagraphBuilderFactory extends Host implements ParagraphBuilderFactory { constructor(CanvasKit: CanvasKit) { super(CanvasKit); } Make( paragraphStyle: SkParagraphStyle, typefaceProvider?: SkTypefaceFontProvider ) { const style = new this.CanvasKit.ParagraphStyle( JsiSkParagraphStyle.toParagraphStyle(this.CanvasKit, paragraphStyle ?? {}) ); if (typefaceProvider === undefined) { throw new Error( "SkTypefaceFontProvider is required on React Native Web." ); } return new JsiSkParagraphBuilder( this.CanvasKit, this.CanvasKit.ParagraphBuilder.MakeFromFontProvider( style, JsiSkTypeface.fromValue(typefaceProvider) ) ); } }