๐Ÿ“ฆ airbnb / react-sketchapp

๐Ÿ“„ entrypoint.ts ยท 45 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45import { render as _render } from './render';
import { renderToJSON as _renderToJSON } from './renderToJSON';
import { makeSymbol as _makeSymbol, SymbolMasterProps } from './symbol';

import {
  SketchLayer,
  WrappedSketchLayer,
  SketchDocumentData,
  WrappedSketchDocument,
  SketchDocument,
  PlatformBridge,
} from './types';

import { TextStyles as _TextStyles } from './sharedStyles/TextStyles';

function getDefaultPlatformBridge() {
  return require('./platformBridges/macos').default;
}

export function render(
  element: React.ReactElement,
  container?: SketchLayer | WrappedSketchLayer,
  platformBridge: PlatformBridge = getDefaultPlatformBridge(),
) {
  return _render(platformBridge)(element, container);
}

export function renderToJSON(
  element: React.ReactElement,
  platformBridge: PlatformBridge = getDefaultPlatformBridge(),
) {
  return _renderToJSON(platformBridge)(element);
}

export function makeSymbol(
  Component: React.ComponentType<any>,
  symbolProps: string | SymbolMasterProps,
  document: SketchDocumentData | SketchDocument | WrappedSketchDocument | undefined,
  bridge: PlatformBridge = getDefaultPlatformBridge(),
) {
  return _makeSymbol(bridge)(Component, symbolProps, document);
}

export const TextStyles = _TextStyles(() => getDefaultPlatformBridge());